Software development teams should be flat organizations, that means that there should be just one role in the team, the software developer, (or whatever you want to name it: programmer, engineer..). This will align with Raymond’s article.

The Software Developer has two main skill sets, Programming Skills, and Relevant Non Programming Skills. This will align with Eric’s article.

In summary:

The Programming Skills tell us how good a software developer is designing, coding and testing.

The Relevant Non Programming Skills tell us how good a software developer is finding risks, understanding requirements, coaching other people, facilitating work in the team, planning…

The programming skills are taught at school, so you can’t expect from junior developers good Non Programming Skills, senior developers are almost guaranteed to have good Programming Skills, but not always good Non Programming Skills, that’s why those are the ones that usually set the difference between two senior developers.

A team needs a balance of these two sets of skills, ideally the team will have one or more leaders which will have outstanding skills for both skill sets, these leaders should coach and facilitate the other software developers work if they are seniors, or babysit them if they are juniors.

Software development teams should be like flat mini organizations where decisions are taken in an agile manner. In a healthy work environment developers with better skill sets should get the promotions, and they should be encouraged to act as coaches and facilitators and their authority should be earned rather imposed.

______

This is part I of II articles, in the next article we will discuss about the professions that better match with software developers based on the different skill sets, (I am sure they will surprise you), so stay tuned!!! (There’s a subscription link on the right navigation bar in the blog)

2 Responses to 'The two main skill sets of a software developer'

Subscribe to comments with RSS
or TrackBack to 'The two main skill sets of a software developer'.

[...] Development Theory by Alberto G on April 30, 2009 A software developer has two skill sets, the programming skills and the non programming skills, from all this the most important skill of a software developer is “Getting things [...]