If project management is difficult, then software project management is more difficult. Actually, it is exceptional. Software development teams are usually trying to figure out a situation, analyze problems in this situation, listen to stakeholders, try to figure out stakeholders vision and thoughts about the optimum way to deal with that situation. Development team should translate outcomes of all these inputs into a running software program that works properly and solves problems.
Software development team deals with a customer vision. A vision that is not even clear and well defined. Customer only realizes that he has a problem, but in most cases, he does not know where exactly the problem is. As a result, customer always updates his requirements with time.
Software development team tries to figure out this vague vision and document it. Then works on developing a solution using technologies that keep changing every day!.
The customer environment and infrastructure is also hybrid, different running operating systems with different software solutions that are based on different database engines. And it is required that the developed system works in harmony with this hybrid environment.
And in most times, the customer has limited time and limited budget….
EDS once had a commercial that exactly explain this situation…
Yea, Software development team are actually building a plan in the Air!
Think about it:
- Vision with vague requirements.
- Requirements keep changing.
- Tools we use to build the solution keeps developing.
- Solution need to be built while customer is running.
- Solution need to be installed in a hybrid environments.
- limited time and budget.
In order to succeed in software project management, you have to deal with these mentioned issues as facts and axioms, do not ever try to resist them, deal with them … Good luck
in part.2 of this article we will discuss samples of situations a software team would face with customers.