I come across many articles that discuss what makes a good developer:
• What is a good developer?
• How to become a good developer?
• Things you must know to be a good developer?
This seems for many people to be the holy grail in the “I want to learn software development” world. I am often interested in the points made in these articles. Not because I don’t subscribe to their point of view. Their point of view is perfect if you seek employment as a developer.
Of course, the term ‘software developer’ suggests that the individual will be writing code, but as many of these articles point out writing code makes up only a small percentage of the work.
Much of the day to day activity is spent reading code. Be it the need for code reviews, maintenance and bug fixes as part of continuous development or working out how and where to insert a new feature. In short, there is a lot of legacy code out there that needs support and that requires lots of code reading.
Few developers are lucky enough to work on green field software projects, creating an application from scratch. Most are involved in supporting existing code.
So, at the end of the day, those who seek developer jobs have a different focus to those who want to produce software.
If you are the only developer, then it all falls to you. You need to know a bit about every stage of developing software. On the plus side, you don’t need to focus on collaboration software. Software for source control, check in, check out, and even packaging and deployment are not critical to the process.
What this all means is that if you are starting out on the road to learn to write software then make sure you have realistic outlook on the path you must walk. For a stand-alone developer, the definition of what makes them good will be different than for a commercial developer.
The software produced will ultimately demonstrate how good they are!