Should one be a specialist or a generalist? Is it better to become great at one thing or good at several? A Jack of all trades and a master of none? Or be the go-to-tech-guy on projects?

It’s a question that has plaque me for some time.

Should I continue to invest in the art of web development? Learn all the various Ajax toolkits out there? Google GWT? Dojo? DWR? Script.aculo.us? Master the intricacies of compliant HTML development? How about the DOM or CSS?

Or should I diversify my skills? Be good at the technical stuff. At the same time, be good at communicating, selling, marketing, design & graphics, planning, management etc?

The pure economists would probably espouse the benefits of specialisation and division of labour – the concept that a team can be more efficient when individuals concentrate on a given task which together would produce more throughput and better quality.

That’s what I used to think also. But I’m not so sure anymore.

These days all the rage with software development is Agile practices. Over the last few years we’ve seen lightweight frameworks and the advent of Extreme Programming and similar methodologies. Being Agile has allowed smaller outfits to produce great results with very little costs and in short timeframes. They are essentially out maneuvering and out innovating the big companies.

However, to be small and Agile means you need individuals who are generalists – those who are great at several things. They can cut code, make the best UI decisions, communicate with users and help plan upcoming releases. Such tasks are traditionally fulfilled by several players – the Business Analyst, the System Architect, the Lead Developer, the Customer Support Person and so forth.

Why should a member of a team just do coding when they can contribute to the UI design? For example, if they think editing is best done through a self-loading inline form via Ajax instead, they should be able to make that call. Or why can’t the person who deals with customer complaints also be capable of making a code change to fix a problem once and for all?

In an Agile company, I call such a person a Multitasker. I’d rather have a good coder who can multitask than a great coder who can’t do much else. That’s the kind of person I’d hire and the kind of person I’d like to work with.

It’s also the kind of person I’d like to become and my motivation for transitioning from just a Software Engineer to an Entrepreneur. As an Entrepreneur on his own and with limited funds, I’d have to do the research, recognise the opportunities, design the UI, implement the technology and operate the business myself. Sure I can get people to do these, but think about the costs and feasibility. And not just that, I think there is something to be written about managing things we know a little bit about.

So how do we become Multitaskers? Stay tuned, I’ll write more about this in a later post.

Related Posts