Software development has always been a tricky business. Project management, as we know today, evolved with software development projects. Since the first ever software was developed, there have been lot of advances made in the industry. Many books have been written on the subject addressing many different aspects of software development. University level courses have created a new brand of professionals to serve the industry. Still nothing can be compared to lessons you learn from active involvement in it.
There are three crucial lessons I have learned from my experience as a project manager in software development. First, the project must be based on the right concept. The second lesson is implementing it in the right way. Of course, there is a wrong way too. The third is doing it fast before the concept become obsolete.
Every project must have a concept and the concept must be the right one. Many failed projects suffer from conceptual errors. Concept, according to one definition, is the clear and detailed description of the attributes and benefits of a new software product that is intended to solve a problem faced by the targeted customers better than competing products. according to one definition.
The concept is developed in the documentation phase of the project. The concept gives rise to project goals, milestones and tasks involving all participants of the project. Less well defined concepts is the root cause for ill defined goals and ill defined everything. Right concept requires two main inputs. Concept must first be viewed from a problem-and-solution point of view. Defined that way, purpose for the project will be realised. Next, it is defining the the concept in terms of technology. Only concept defined thus will lead to realistic goals. The concept usually includes goals, participants and risks, expected results, constraints and risks, resources, times. It must be document with very clear and realistic ideas developed according the business needs.
To start a project without the right concept is the same as to sail without the right direction.
Once I was assigned a project for developing a dictionary for mobile devices. We wanted our dictionary software to deliver higher value to our target customers over the competing products. We defined our target market as those who are serious about learning languages and professionals. So, our dictionary would have some additional modules and very high usability.
The project concept developed.
It is not enough to have the right concept. It is equally important to implement the idea correctly. This is the second most important lesson I learned.
Proper implementation depends on two major pillars. Thorough knowledge of the subject you are dealing with is one essential requisite. You need to be educated on what you are working on. The next essential is the methodology of the development.
Poor subject knowledge is one of the commonest reasons for failure in software development projects. Never be reluctant to tap experts in the field. Never consider time spent on mastering the subject a waste of time. Encourage your team to learn and, as the project manager, be the agent to stimulate the need of knowledge across your team.
One important duty of a project manager is to educate the technical specialists. It does not mean that all programmers must be experts in the subject.
Next, it is to develop the software in the right way. It is obvious that a software with lot of errors and ugly interfaces do not have a good chance to become very popular. Products with initially bad architecture and code are difficult to develop further. .
Bob Martin rightly states “It’s difficult to call ourselves professionals when our primary outcome is a huge, stinking mess!”
Timing is one of the most critical necessities of any software project. Saying goes that time and tide wait for no man. Things are changing at a blinding phase. Philip Kotler worded it nicely. ‘To stay in the same place in the modern world, you need to run faster.”
Your right concept must be turned into a marketable product before it is too late. Ideas become obsolete faster than we think. Competition is sharper and ideas are abundant. If you get delayed, you will lose the market opportunity.
If we have a good concept and idea about how to make a challenging product, put your heads together and make it faster. Faster but better. That is the rule.Always keep in mind the potential for future development.
“The only way to go fast is to go right.”
We all are familiar with the time-quality-resource triangle that emphasises interdependence of the three factors in project management. It seems that if we have more resources things can be done faster. But it is not the fact.
Do you remember the saying about pregnant women?
“ If there are 9 women in the first month of pregnancy the child won’t born in one month”. Some processes are not simply possible to start before others are not finished. You know well about task dependencies and bottlenecks.
So even we are able to hire more programmers it doesn’t mean that the project will be finished faster. For project manager, it is a difficult and challenging task to find right balance and schedule project correctly.
Looking back at my career as a project manager always reminds me of the crude fact that I need to do better. However, my experience has proven me time and again that three basic lessons are the most valuable to reflect on.
Work on the right concept the right way to finish it at the right time. Take the three RIGHTS and contemplate them from all sides.