I question myself if software projects until the early 80’s happened to succeed more often than nowadays concerning time-, cost- and quality-schedules. If yes, then one could assume the higher complexity of our technology is one of the main reasons.
Projects sometimes fail, sometimes they succeed, that is life. In many cases a failure could have been avoided. Maybe it could have been avoided by exchanging just some key person or defining an essential process that was missed in the project. Sometimes a project failed because of the wrong technology. But my belief is that choosing the right technology is not as difficult as selecting the right people for a project and defining the right processes, (“right” in the sense of verification and “right” in the sense of validation”).
Factors of Success
For a software project, I see three main aspects that are essential for the project’s success: People, Processes and Technology. The first two could hold true for any other project, the third one, technology is kind of specific to the field of activity. Budget of course also is very important, but often is seen as given.
We are people and people are doing the work to be done. That’s trivial. But it’s not trivial to identify the right people for a certain project. In many cases the team always is the same, more or less, independently of the project. This is because of the service-providing character of the department in question.
If able to freely select people to do the job, the question would be how to first, identify the core requirements and then second. map those requirements to the capabilities of available people. Third, the current situation on the market could hinder the acquisition of ingenious persons ranking high on the wish list.
For a software project, essential people include decision makers, leaders, architects and developers. Architects also could be orientated to business processes to widen the view a little.
Without processes it is a matter of luck and a matter of the capabilities of the executing persons if the project fails or not. But sometimes without processes a project will always fail, no matter how brilliant or ingenious the involved people are. Think of 100 Einsteins locked away in a think tank to do a job without coordination. Useless. Coordination and self-organisation can be seen as a process already. Perhaps sometimes the definition of a process is implicitely existent thru the experience of a leader who knows the process by heart. But in any case it would be defined.
Consciously enlisted after the aspects people and processes, follows technology. Technology alone cannot exist. Of course people without computers (hardware technology) and development environments (software technology) are not very powerful. But we can see computers and IDEs as well as tools, persistence layers or GUI technologies as given today. A project can be more successful than another even if it does not rely on Web Dynpro. Although I must admit that Web Dynpro sort of fascinated me when I first discovered its beauty.
Current technological wonders that even evoke amazement with experts make some decision makers believe nowadays it cannot be too difficult to aim at the target and shoot it.
That could be seen as a misbelief. It is more essential than ever to set up and organize a software project than it has been before.