Web This site

Sunday, May 29, 2005

What makes a good software developer?

Yesterday i was asked "what do you think makes a good software developer?" I think my answer surprised the person asking the question. It went something like this:

"Fundamentally a good developer has a high proficiency in programming with an innate ability to create well-crafted code - code that is simple, extensible, optimized and robust. He has fulfilled other roles in the project lifecycle, experiencing development from other perspectives - analysis (especially right up at the business end), architecture, configuration/build management, non-functional and user acceptance testing, operational roll-out, etc. He harnesses these experiences and distils knowledge, coupling it to his core programming skills. "

Fairly standard stuff, so far.

"Just as importantly - and this is where a lot of developers fall short - a good developer posesses excellent soft skills - communication; time management; awareness; tactical and strategic thinking (detailed planning with an eye on the big picture); an ability to identify risk, weigh-up options and make decisions quickly; objectivity and pragmatism. He also has the courage of his convictions. A good software developer has the ability to 'think' in different dimensions."

I believe an ordinary developer with poor soft skills can survive as a programmer. You'll find him in a cubicle. An agile developer won't get out of the starting blocks without strong soft skills. An agile developer thinks in different dimensions and is conscious of his relationships with others. He understands his contribution to the team and the contribution of others. An agile developer lives by the values of agile and is guided by the principles in everything he does.
An agile team can self-organise because every agile developer is a unification of at least the following roles: software craftsman, tester, team leader and project manager.


Tags:

0 Comments:

Post a Comment

Links to this post:

Create a Link

<< Home