By Lingesh S on Jan 20, 2016 5:06:38 AM
Welcome to my blog, where I share my thoughts & experience in software project execution and relate the same to a popular adage, 'early to bed & early to rise'.
There are numerous studies & published data that confirms that nearly 85% of successful business entrepreneurs / leaders wake up as early as 4 am in the morning. The question is `why would a business leader wake up so early?'
Given below are a few benefits for a leader who wakes up early:
- Time to exercise for at least 90 minutes to keep the body fit.
- Time to review his business plan.
- Time to think about all those critical areas that need to be addressed and so on.
Having said that, I now relate the adage to software project execution.
Chances are that you are already familiar with the term `honeymoon period' in project development. This is the time when the contract is signed and stakeholders will visit the client's site for requirements gathering. During this `discovery' phase, which can last for at least 4-6 weeks, the team would collect requirements, user stories and then translate this into a business requirements document. This document becomes the single most important source of information and be the deciding factor for a project's fate. I presume the industry chose the phrase`honeymoon period' for this stage of project development because the analysis of failures of software project delivery show that most of the problems which arise during development or upon release, were due to insufficient information gathering during the discovery phase. If the documents do not specify the expected outcome and end user experience then the overall project can flounder and even end in failure.
Tying this observation to the adage, `early to bed & early to rise', I believe that project execution begins really early, even before the honeymoon period, so to speak, and there are a few guidelines to make the best of an early start:
- Read the proposal thoroughly.
- Come up with a list of questions on user behavior and have a plan to cover the functional areas that are required to be developed.
- Ensure that the document is reviewed both by the client and the project stakeholders to get a thorough understanding of what is actually expected from the project.
- Also prepare a probable team for the project. Share the document with them for validation.
Moving on to the next phase, i.e. design
- Ensure the design matches all the requirements.
- Maintain the RTT now rather than during reverse engineering.
- Think about the NFR’s (Nonfunctional requirements) like scalability, performance, reliability in this phase rather than after the development stage. This is because, the cost of making changes is always greater than the cost of building!
Further in the development phase, early to rise correlates with ensuring that the program meets requirements, that unit test cases are prepared and matched with requirements (RTT being updated). Code review emphasizes the coding standards defined and these are done at logical completion of the project.
During the testing phase, it is a good practice to give early visibility to the customer by sharing the test plan & test cases, so the customer is aware of the boundary & the level of testing being executed on the software, before release. However, it is better to release the bug status report during the project execution stage.
Following the Scrum methodology, it is a good practice to keep updating the customer on a regular basis about the project status. The customer is then aware of technical challenges and can even suggest alternate approaches. Mostly, it helps to keep the customer involved to gain his trust and respect.
Release to User Acceptance Testing (UAT)
- Ensure proper walk-through and training for end-users.
- Record updates related to feedback from the users and provide resolutions / patches at the earliest. This will ensure that the UAT time-frames are within defined timelines.
How does this relate to the `early to bed' adage?
What we understand from the above is the value difference we bring in when we go in well prepared. Being well prepared results in better execution, and spell the difference between success and failure. You will enjoy completing the project on time & feel satisfied with the job. You can, thus, go to bed peacefully.
Thanks for reading my blog! Look forward to your comments.