Programmer or Software Developer?
A software developer would not be worth his salt if he couldn’t put some code together, but there are a multitude of skills and attributes that separate him from just being a programmer. In a world where hundreds are programmers are thrown at problems, software solutions are often not what they should be. Ultimately the quality of the work produced by good software developers is on a whole different plane, and it’s for some very good reasons.
Commitment to mastering a craft
The distinction between a job and a vocation is made clear by developers who push themselves in the following areas:
Keeping up with technology - The realm of possibility in software is constantly changing, and what may be a suitable way to solve a problem now may be replaced by something much better tomorrow. In such a dynamic environment, a passion for learning and being up to date is invaluable.
Maintaining a good attitude - a good level of output cannot be achieved if developers are defensive about their work, and cannot handle a bit of constructive criticism. Individual sections of work may be perfect, but may not fit together well with others. Keeping an open mind and listening to other developers’ opinions facilitates learning, and can help to cut down the amount of time and effort needed for a project.
Good enough is not enough - a good developer comes back to what they’ve done, and looks at it critically, wondering if there are any areas which could be improved. Critiquing work can be good for future projects, and ensuring that all solutions are always of a high quality.
Knowing where their limits lie - there is a definite benefit to knowing where your strengths lie, and asking for advice or help in areas where you may be lacking some skills. No developer can know everything, and acknowledging that is a strength, as is knowing where to go to ask for help.
Gaining experience - there is a lot to be said for having a strong technical background, but it’s often in the application of knowledge that a developer comes into their own. Having said this, the experience needs to be relevant and varied, as doing the same thing over and over again doesn’t necessarily mean you’ve been doing it the right way, or that you’d be able to tackle other challenges well.
Planning before coding - a good developer should be doing more than just writing good code, he should have a good idea of the various system components, data repositories, data flows etc before he even starts coding. Having an overview of the solution means that when coding starts it will follow a design, and the project can move more efficiently towards completion.
Test, do some testing and when that’s finished, test it again - testing should occur from the outset, and time should be put aside for it. The assumption should never be made that code works, testing should be done to prove that this is the case. A good software developer acknowledges this and incorporates testing at all phases of programming.
And then when all this achieved?
"Just as importantly - and this is where a lot of developers fall short - a good developer possesses 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." (1)
Well said.
1 Agile in action - http://blog.energizedwork.com/2005/05/what-makes-good-software-developer.html
Posted by Vivi Walsh



