If you are self taught programmer or working in a company which is not process oriented the title of this section can sound a bit bureaucratic to you. A good software product other than source code has proper documentation and process at place.
Every young developer in his initial part of the software career is hot blooded and full of enthusiasm. The only goal he has in his mind is to complete the project. For these kind of young developers source code is the most important section in the complete project.
As time passes by and the young developer starts gaining experience depending on the type of the company and his number of year of exp his view point changes.
As the developer becomes senior source code becomes an insignificant entity and documentation forms the most important part of the project from his perspective.
Below is the breakup and view point depending on maturity level of software professional.
0-2 Years of experience: – Developers having experience in this range give importance to source code. They take pride and enjoyment to write cryptic and heroic logic. Developers falling in this category think documentation as bureaucratic. If not controlled properly they rarely will think to even comment codes. But yes software professionals in this experience range have great technical enthusiasm. They love to get involved technically.
3-5 Year of experience: – Software professional in this category have lot of maturity in technical section. They take pride in architecture work of the project. In fact many of the developers would like to see themselves as architecture in the coming times. That’s a different thing as they get to more senior position they want to see themselves as project managers rather than in to technical. Software professional in this range think source code with proper comments and technical documentation as the most important deliverable. They have less focus on project planning, estimation and testing.
6 – 8 Years of experience: – Software professional in this experience range give importance to technical documentation, estimation and source code. But they are bit soft when it comes to project planning and testing.
9 and above Years: – This is the time he becomes a complete senior (he becomes a bit fat). Source code deliverable becomes one of the smallest entities of the project. Planning, monitoring, People issues, escalation and estimation become prime focus for him. He starts following processes like CMMI and SIX SIGMA religiously. From this article I am not trying to communicate that estimation, planning or project management is not a important part. But as people become seniors why is that they start loosing technical touch. When we know technical forms an important aspect of software projects.
In short the right proportion between management and technical is important. When a software professional starts his career technical is the only thing for him and when he is at his peak management is everything. If a professional makes a proper balance of both these entities we have the MR Perfect with us…..And I know there are still many MR Perfect in the software industry or else we would not have come so far.
Above figure shows how senior and junior view project deliverables. Projects in this book will have all the above documents which will give us a complete view of the project.
If we do not have documentation in project you will probably complete the project but when new people join knowledge transition becomes a huge task. The biggest advantage of documentation is that the project becomes resource independent and which is a huge success for any project.
I know how difficult it is to convince juniors and developers working in small scale software house the importance of documentation and proper process to complete a project. How many times it has happened that you wanted to change your project and your project manager did not allow you?. Yes because he knew that you are a hero of the project and your leaving will create him problems.
So first thing never be a hero on a project rather work in co-coordinated fashion and make project independent of you. The best way to attain independency in project is by proper documentation. Clear cut documentation makes new developers to join the project in much easy fashion and you can move to new heights in the organization. Now two cents!!!! For the seniors who do over documentation the project ;-). I still remember one of my seniors who told me to document how a developer should behave in the project. The above said document is related to project, but if it is not there it will not affect the project in any way. In short introduce documents in project which are really needed rather than just pushing something for namesake.None found.