The readings by Mark Keil was very interesting, to say the least. He talks about a software project that took up the better part of a decade and was not completely functional before finally getting the ax. Due to project factors, psychological factors, social factors and organizational factors there were many reasons why this project was allowed to linger on. I guess a very large part of this was that the team involved and its leader had developed many good products in the past before attempting to roll out the CONFIG project. CONFIG was supposed to assist sales people in making deals with preferred clients, which can be tricky as sales folk do like to throw around discounts for preferred clients but they definitely need a range to work in so as not to undersell the company (and their own commissions).
Probably the biggest problem this writer can see with the CONFIG project was that it was not interoperable with the same company's other successful and well accepted system, the Price Quotation System (PQS). I must point out that since this project was happening in the 1980s, maybe software developers were not as attuned to the notion of developing software in interoperable suites. But now we have a very different business model emerging regarding software versus the 80s when a standalone might have had some appeal, but I don't think a standalone that was incapable of interoperability with the same company's products might have been a good idea. Nevertheless the company in the study was blindsided by their own track record of success.
As best as I understand, the current ideal model in software development and deployment is not creating an application that the developer sells like books or magazines to customers, it is creating an online web service where users or subscribers can access a whole suite of tools which are continuously upgraded as a web service. In terms of industrial models this is about the difference between designing and manufacturing a locomotive and developing and managing an entire railroad. So the current model of web services is far more vast and encompassing than the old model of software publishing.
So according to Keil, part of the reason for failure of the CONFIG project was that the team involved and its leader had a solid track record of success with the company. As development of CONFIG got bogged down, the team and the company threw more money at the project, something Keil calls project escalation, but nowadays might be called "doubling down," which may or may not be related to "doubling down on a busted flush."
Also the CONFIG project manager, Tom Jones, was very popular within the company and had a fantastic reputation for success, so the company was able to procure the resources Jones requested. The company also thought that if CONFIG ever went live, there would be a huge payoff, plus it had already sunk plenty of resources into R&D, so maybe a little more effort would push the project to completion and its payday. The notion of pulling the plug on the project when it seemed "so close to completion" seemed like dumping so much investment down the drain at the cusp of success.
It was only after two huge blows came to the company that management reviewed and reconsidered the CONFIG project. These were the death of the project manager, Tom Jones and a huge downturn in the software market at the end of the 1980s. Only then, after the better part of a decade and countless (mythical) "man-months" had been expended did the tap of resources get turned off.
Other good readings on project management were all of the assigned Frank Cervone articles, as he seems adept at project management but also goes out of his way to make his advice relevant to librarians. Cervone has developed a formula for risk assessment which is weighted by the degree of criticality of the function that would be lost should said misfortune strike as well as the actual likelihood of such disaster striking, this was entirely novel to this reader. Cervone stresses that the best risk avoidance strategy is a high degree of communication throughout the project team and the organization, something I can attest to based on my own experience in software development projects. He couples this with utilizing a flexible model (i.e. anything other than the traditional dependency-heavy "Pipeline" model). Some of Cervone's alternative models include the spiral model and iterative prototyping. Cervone's continual use of examples from his many library projects adds more validity to his articles as well.
I think the instructor had a few words on the nature of project management being no walk in the park and from the projects I have worked on, there almost always seems to be some set of problems that can never be foreseen. However, having a plan, especially one that can be modified within reason is a critical part of the puzzle. It is clear that the traditional "Pipeline" project management model is not flexible enough for the contingencies (and client/project owner deliberation and changing specs on the fly) so a number of recent models have come out, all of them seem to be variations on a flexible model of pipeline where there is some degree of managing both the many dependencies of programming as well as accommodating the vagaries of the client. Waterfall seems a good way to manage the dependencies, agile techniques like spiral, XP and iterative prototyping seem to do well in handling ever-changing client specifications. Let's just say that the "clean room" model can never be used in any project where the client can change their mind after the project has commenced. A whole batch of permutations between waterfall and more agile models seems to be the way that project managers and project management theorists have dealt with both factors, but no one model seems to have become dominant.
No comments:
Post a Comment