Search
 
     
   
   
   
 
By
Dr. R. Srinivasan,
CTO, iCMG, Bangalore
   
  Clear documentation is a valuable legacy
 
 


In software development it is very necessary to do detailed documentation of every stage,which should be clearly understood by anybody else later either for continuing the work or maintenance, notes Dr R Srinivasan

"Good software engineers spend more time in design and development and take an easy attitude to document their design ideas and procedures undertaken "

In any product development, it is absolutely essential to have clear documentation of the projects and it is all the more important in the development of software products. Following the basic principle of life cycle in software development, an organisation must train the team on documentation and should insist that it is done at each stage of the life cycle. The contents of the documents should not only be specific to that portion of the development but also be very clear to be understood by anybody else at a later stage, either for continuing the work on that particular portion or as part of maintenance support.

A good document also helps the quality department at the time of peer review at each stage. It is always understood and expected that the vision and insight of the author is an essential part of understanding the documentation. However, in practice, good software engineers spend more time in design and development and take an easy attitude to document their design ideas and procedures undertaken, and it may lead to a situation that does not have clear documentation. They may feel satisfied that the code is finished but they don't realise that if it is not documented clearly with explanations, nobody will make any sense out of it. On the other hand, effort may be wasted on documentation of analyses, which may not be understood by anybody in the development team. Under the extreme case, the documents are prepared casually just for the sake of satisfying the expectations of the management. The antipattern that arises due to this is termed as, "throw it over the wall".

The refactored solution is to train everybody in the organisation, including the management, on how to write a technical document relevant to software development. Once it is done, the next step is for the project manager and project leader to inculcate the habit of writing the document, in the members of the team at each stage of planning, development and testing. Periodical reviews of documents must be done and the review reports also must be documented for taking the necessary and corrective actions, if any. The slogan is that the practice of good documentation will speak for the quality of work done by the team and hence about the organisation's strength.

The next antipattern that we discuss will be the one which may happen when the project team lands up in an inordinate delay in executing projects, because, at the initial stages, they might have been concentrating on something that is not connected with the project in any way. On the other hand, it may also happen that the management asks the team to wait or gives uncertain and conflicting directions.

Ultimately the team may be spending more time in the initial phases of the life cycle development, like requirement analysis and planning, and then steps into design and development. The management at this juncture will realise the slippage that has happened in the schedule and so will direct the team that the development must progress immediately. Imagine, what will happen at this stage? Urgent and unscheduled meetings for the development staff will be called for at the time of which ambitious and unrealistic demand for software delivery will be demanded. Such meeting and the associated antipattern is called the 'Fire Drill'. Due to the pressure mounting from the management as well as the customer, the team will tend to compromise in software quality and testing.

An effective refactored solution for this is through the process called 'sheltering', under which two alternative project environments, viz internal and external, are created. According to Dr Thomas Mowbray, majority of the development staff operate in the internal environment with the focus being on the long-term and continual progress towards software delivery. He further says that the internal project environment can proceed to construct the internal model, independent of changes in external techno-political issues. It is also found to be most effective in software developments associated with long duration projects developed in stages through iteration. On the other hand the external environment part is just to take care of the relationship and correspondence with entities external to the project.


( To be continued)

(The author is Chief Technology Officer, Internet Component Management Group, Bangalore and can be contacted at: r.srinivasan@iCMGworld.com)

 
 
     
Copyright © 2006 iCMG. All rights reserved.
Site Index | Contact Us | Legal & Privacy Policy