This one would take every one by surprise and would never fetch the right answer. The reason because IT DEPENDS.
Mark, first shared a funny yet thought provoking Flow Diagram; How to write a good code? Janakiram MP extended his share of thoughts about it in his recent post, GP Customizations-Documentation Critical.
The question still remains unanswered: Which one is important; a Quality Customization or an On Time Customization?
I cannot answer this query either. I have developed tons of GP Customizations in the past 7+ years. I cannot say that ALL those customizations were Quality Customizations. I cannot say ALL those customizations were On Time Customizations either.
Some were developed keeping in mind that Customer(s) wanted it real quick to solve a nagging problem. Once I was free from that development, I had found several customizations require tweaks and corrections to meet quality. And I had in fact delivered the same customer(s) with a fix or enhanced product.
Equal amount of Customizations were developed with utmost quality and almost 75% of those Customizations Developments were generously allowed by respective Customer(s) to grow on its own, instead of pressing for a early completion. There was a reason behind it as well. These product developments were under Product Billing and not Time & Material Billing. Only very few customers understood the necessity of having a Quality Customization in the first place and let it developed on its own time.
Now, why Documentation is considered as a burden instead of a Development Requirement? Try dodging the following questions:
1. How often have you seen a Project Planning that involved Documentation as a separate phase?
2. How many Partners have a dedicated team called Documentation Team?
3. How often have you seen a Partner understanding it’s Consultants’ request of additional time to complete their Consultancy being documented?
4. How often have you seen a Consultant / Developer / QA Executive getting 2-3 days of break between their Projects?
5. How often have you seen a Project Planning that excluded weekends from it’s Project Schedule?
Some questions above may stir up some controversies. But if you think from a general perspective, you would understand that it’s mere stress and helplessness that almost all Consultants/Developers do not get to do their Documentation.
1. For God’s sake, understand that Documentation is going to help you in future for any Project.
2. Unless you have a record of “What, Why, How” for a Customization, you would find it difficult to address any issue in future.
3. Try to convince your Project Manger / Program Manager that you require some additional time outside of your Development / Consultancy hours. It’s difficult to do that, but it’s very important.
1. If you consider your Consultants’ time is very important in handling Customers’ issues and not for Documentation, then construct a dedicated Documentation Team, that will do the job.
2. If you consider your Consultants’ must do their Documentation, and no separate team is going to be your option, then for your sake, allow your Consultants to take some extra hours outside Project to complete it.
3. Include Documentation (High Level Design, Low Level Design, Requirements Analysis, Customization Definition, etc.) as a separate phase and insist your Customers that it is necessary.
4. Do not press your Consultants to complete Documentation within their Consultation Hours. It will hamper their consultation/development. You are unnecessarily stressing them out.
5. Give them 2-3 days break before each new project. I know it’s not practical always, but this will help Consultants/Developers to regain their energy for that new challenge.
6. Convince your Customer that Documentation is going to be a separate phase and you cannot compromise on that. Only flexibility that you can have is: When this phase is going to be executed. Till we deliver a product, there is always going to be change in requirement or methodology or underlying components.
I am sure, I have stir up some more arguments or discussions by sharing my opinions. :-) But I consider it’s worth stirring up.