Tuesday, July 30, 2013

The Importance of Documenting Discipline in IT Projects

The Importance of Documenting Discipline in IT Projects
Marlene Sánchez – IT Architect
July 2013

Have you ask yourself what is the real importance of documenting a design, process or architecture? Do you imagine installing the electrical system in your house without proper documentation? Do you think chances of failure increase due to lack of documentation? Honestly, I hope that in some point of your career you have asked yourself these questions since from my perspective; a“Documenting Discipline” is a practice as important as constructing a final work product or delivering an IT service.

In a nutshell, the present publication aims to explain: 1) Facts and Reflections of the “Documenting Discipline” in IT projects 2) The consequences of lack of practicing this discipline 3) The importance and benefits of documenting; and finally provide recommendations to project managers and team leaders to promote this discipline.

Facts and Reflections of the Documenting Discipline in IT Projects
In my 13th year IT professional and 5th year as System, Architect, I have witnessed a generalized problem with the discipline of documentation in all Mexican teams with whom I have the opportunity to work. Indeed based my observations I have proved the fact that 9 of 10 professionals prefer to reanalyze similar problems they face, instead of documenting the resolution process one time and then reuse it in future situations. No matter if the professional is a software programmer, an analyst, consultant or architect; professionals by themselves don´t want to spend time documenting.

So after these observations, I began to question myself, why IT professionals act in that way. And after some years of observations and sharing ideas with my colleagues, I came to the following reflections about IT professionals:  1) Professionals don´t perceive that documenting is useful in their work since they believe they can handle all information in their heads 2) Professionals use to be in a hurry due to bad planning and certainly they prefer to finish their work instead of document it 3) Professionals find documentation boring and don´t know how to produce usable documentation 4) Professionals minimize the impact of not documenting due to lack of knowledge of the implications of not doing it and 5) Team Leaders/Managers don´t promote the usage of an established methodology and don´t specify which work products must be documented, so professionals don´t have a clear vision of what to document.

Now regarding the previous behavior, you may think that it is a problem of education, lack of training or bad planning, isn´t it? However, I believe that this could be a combination of the three plus additional factors that are enterprise specific like: management practice and internal policies since in some cases: 1) projects use to be sold without a plan that specifies time for documentation and 2) Team leaders/managers don´t promote documentation practices as standards in all projects.  The following cases not only will expose the rationale behind these behavior problems but they also will reveal the consequences of not having a documentation practice in place.

Consequences due to Lack of Documentation Discipline
To illustrate the consequences of lack of documentation discipline, I´m going to use two examples: 1) The case of a Mexican firm part of the Retail Industry and 2) The case of a transnational consulting firm. As you will notice, the first one hadn´t a documentation discipline implemented while the second had one in place but it was not followed by Project Managers.

Case 1: Retail Industry Firm
In the case of the Retail Firm, its IT department was focused on custom development and operated without formal documentation procedures. Architecture, designs and code blueprints were not available to developers so the following problems were recurrently present:
  1.        Wasted Development Time and Code Duplication were constantly present since developers didn´t know which components exist in the application and they use to construct new work products from scratch
  2.        Architecture decisions were not easily taken since there were no documentation of the AS-IS architecture
  3.     .    Artifacts´ (i.e. processes, software components) Improvements  were not possible since developers and architects didn´t have an idea of how artifacts were constructed and with which rationale

In this regard, the department´s head was worried to solve urgent day to day development problems instead of identifying the real cause of deadline delays, which in part was the lack of maturity in its development and documentation processes. In this scenario, developers were not trained to appreciate the value of documenting their work and code was a black box that should be analyzed when it needed to be modified.

Case 2: Consulting Firm
Problems due to Lack of Documentation Discipline are also present in firms that offer technology consulting services, even if they own specific methodologies to deliver those services. Indeed, the consulting firm of this example was trying to deliver a system integration project to another big corporation in Mexico City, however the management team was not following the firm´s formal methodology to accelerate the implementation and as a consequence, no documentation discipline  was promoted which caused the following problems:
  1. Operational environments (e.g. DEV/QA/PROD) were not installed with the same installation characteristics given that formal documentation of previous installation procedures were not created on time or shared to infrastructure team which caused inconsistencies in the implementation and design phases
  2. Configurable Master data and business rules in “Out of the Box” applications were not replicated to all environments due to lack of documentation discipline which caused delay and rework on testing phase
  3. No Knowledge Management strategy was defined and transferred to teams’ members that were part of the project, so documentation was out of date, incomplete and not exposed to other team members

Now, since the project was weak in documentation discipline and staff rotation was high, knowledge was lost when a new administration take control of the project which also caused delay project plans and monetary losses.

Importance and Benefits of Documenting
So, after considering the impacts of not having a Documenting Discipline, it becomes evident that the practice of documenting could bring the following advantages to IT professionals and IT Projects:
  1.        Ease of decision making regarding architecture, designs, processes, or other artifacts that could be involved on the development/delivery process
  2.         Delays of project schedule could be avoided if documentation is available and is useful to all team members
  3.        Improvement of artifacts is easier given that team members could have a broader view of the system/process/design
  4.        Time save is possible in application development since components could be reused or modified when needed and not duplicated
  5.        And finally, On boarding process of new staff is accelerated when documentation is present


Recommendations to promote the “Documenting Discipline”
And now knowing the benefits that a Documenting Discipline can bring to IT projects and professionals, I share the following recommendations that will help firms/teams to promote the discipline of documentation.

  1.        Methodology of deliver/development must define specific work products and must recommend which ones are mandatory depending on the case
  2.        Firms must look for a good level of maturity in their IT processes (i.e. CMMI level 3, 4 or 5) and managers must follow these processes in all IT projects respecting the deliverables that are mandatory in order to promote documentation discipline
  3.        Teams must define documentation templates  that must be standardized, used and understood by all team members in order to create mutual understanding
  4.        Documentation Staff must be present in all IT projects in order to: 1) make sure that all mandatory artifacts are documented 2)  prepare documentation with team members 3) Explain the Knowledge Management process to all team members
  5.        Peter Harrison1, an author of Linux books recommends the creation of documentation projects to formalize the discipline which I have had the opportunity to implement in several projects and which works perfectly fine if a Knowledge Management initiative is in place
  6.         And finally, documentation practice must be encouraged by managers, team leaders and enterprises and performed by professionals in a discipline way in order to obtain beneficial results. For instance, in custom development project it is recommended to implement a methodology like PSP (Personal Software Processes) in order to educate their staff on the benefits that documentation can bring to their work.


Conclusion

In conclusion, it is clear that IT companies and IT Leaders can obtain tangible benefits of a Documenting Discipline. However, implementing a Documentation initiative requires a change of mindset of people all over the company which represent a challenge, but not doing it will always represent a risk on any new project that want to be started. Think about it, can this initiative diminish your project´s technical debt?


References
[1] Peter Harrison, Linux admin fixes: Lack of documentation, http://searchcio-midmarket.techtarget.com/tip/Linux-admin-fixes-Lack-of-documentation