Project Management for Software Applications Development is not much different than for any other Project Management field. What's different is the success rate. According to the Standish Group's Chaos Report, half of all software projects end up either late, over budget, incomplete, or failed. Of course, many software development projects are led by developers with little formal training in Project Management. Absent such training, such results should not be a surprise.
Software projects are plagued by a lack of well defined requirements, poor estimation techniques, faulty or non existent change control & other process failures. Even CMMI, which measures an organization's maturity, & ISO, which measures an organization's adherence to repeatable processes, are no guarantee of success. Of course, the success rates for organizations with mature, repeatable & verifiable processes is greater than for those without them, but even so, Project Management processes can improve the success rates even more.
Looking at software application development projects, the triple constraint defines the failure modes, just as it does in any project management environment. Software projects fail by being late (Schedule), over budget (Cost), or not delivering the required features (Scope). A normal software development team ( System Architect or designer, programmers, UI experts, testers, documentation specialists & deployment specialists, etc...) may be excellent at what they do, but most are not trained to do the business or communications functions, or change control functions so necessary to ending up with a successful product. It's true that some developers relish the interaction with stakeholders & the negotiations over scope change. These individuals are probably good Project Management candidates & would benefit from some formal training. I'm speaking from personal experience in this regard, having been a software developer for 30+ years & a software project manager for almost as long, & while I'm not an expert in all facets related to software project management or software development, I at least know what should be looked at, & where to get whatever specific expertise or skills that are lacking in the development team.
During the requirements phase, a Project Manager is looking to define & solve the problem, not to ease the symptoms. A Project Manager knows the relationship between risk & cost, effort & schedule estimates. A Project Manager knows that expert judgement without metrics is negatively correlated with good estimates & that without a change in process, that past experience is the best indicator of future performance.
Project Managers know that without a good change control system, Scope creep is inevitable. Personally I'm a believer in iterative development & understand that in creative endeavors like software development, even the best can not be expected to predict every necessary system requirement, but I do believe that change can be managed. Project Managers know that sometimes it is better to buy than to build, & that sometimes it is better to outsource or to contract than do it in house, especially when specialized knowledge is not available on the team. Project Managers also know that without lessons learned, the same faulty processes & decisions will continue to be repeated.
In future blogs, I'll take an individual Project Management Process & relate it to Software Applications Development, or I'll take some aspect of Software Applications Development & show how Project Management processes can make the outcome more predictable & successful. As always, your comments & suggestions will be very welcome.
No comments:
Post a Comment