Do you think software project is boring? Try to view it from another perspective!
When talking about software management, many people may think it involves high technology management or disciplined engineering management. However, Walker Royce, the vice president of IBM’s Worldwide Rational Service Organization, has given a new idea that software project managers are much easier to succeed if they regard their project as a movie production other than an engineering production. I felt doubtful and curious when I first saw this idea. However, when I read through the article, I think it’s really an original and rational idea that could be applied to the modern software management. I will elaborate some important elements that are vital for successful software management in the following sections.
So what are the important elements for successful software management?
In conventional wisdom, software managers may have many requirements for the project and his team. However, it’s probably the most misused word in the industry. In a software project, you can rarely see something is unchangeable. Plans, people, funding, milestones, designs and tests are all the component of the project. However, all of them may be change and negotiated at any time. So, the word “requirement” is improper to define or judge a project. Furthermore, the performance of software products could be measured by users’ perceived value. So, economics performance can help to prove if the software is successful or not. It’s pretty similar with movie productions. We can evaluate a movie by observing the feedback of viewers and the profits. So, in today’s modern software management, it just likes a movie industry. The qualified architects can be regarded as directors, analyst can be regarded as scriptwriters, and software engineers can be regarded as actors and so on. Especially, good project managers just like good movie producers. Furthermore, we can describe the modern software management as a discipline of software economics rather than software engineering. The software managers should make their everyday decisions like movie producers that based on human factors, macro-economic trends, technology trends, market strength and so on. In order to deal with these subjective decisions, Walker Royce recommended “using a steering leadership that compromise active management involvement and frequent course correction”. In addition, he came up with four patterns for successful steering. I will introduce and give my opinions about them.
Walker Royce thinks that solutions and user specifications are evolved from each other. Because “requirement” is regard as a misused word which is mentioned earlier, he prefers to use the word “specification” instead. The first form of specification is the vision statement or user need, which could help to deal with the contract between the project development group and user or customer. The developer should use specific and formal format which might involve models or texts to make users understand the information. The second form of specification is not really similar with requirements. Walker Royce called them evaluation criteria. They are temporary steering targets not only from the vision statement but also from various other sources such as risk management analysis; architectural considerations; constraints of implementations and so on. I think Walker Royce really gave a proper revision for “requirements” in traditional software management. He has noted that the requirements are changeable, they receives a great deal of scrutiny because it always influences the contract between developer and users. Besides, I think he also noted the importance of “interim”, which could provide a better skeleton for early testing and give more accurate information for both developer and users especially for a risk management plan.
For most project managers, they would approve that the processes might be rigorous when the teams are distributed or the project is fall behind the lifecycle phases and so on. However, Walker Royce comes up with a distinctive idea of successful software development process that earlier phases center on realizing demonstrable functionality and later phases focus on robustness and performance of the product. Besides, the process rigor has equally important affect on teams. I really agree with his idea. The software development process is very similar with our assignment. Processors need to balance the various students and give proper deadline so that most of the student could hand in assignments with their maximum abilities. In addition, I think Walker Royce’s arrangement for the lifecycle phase is well-designed. It could help to give an appropriate plan in case wasting time or working too much in some lifecycle phases. Today, an improper focus on process rigor is the basic reason for software projects fail.
In the traditional development process, there are tremendous reasons may cause the developers and users don’t trust each other. However, most people may not concentrate on it although it is a very important factor during the process. Walker Royce finds this and he thinks trust is essential to steering and to keep a balance on users, developers and plans. I think trust is inconspicuous but very important. His idea recommends us pay more attention to a functional and usable product rather details of contract.
Walker Royce considered that testing and testers become the first vital component in the progress. Every team should build test cases. The analysis team would find the peak data load or critical control scenario that lead to extreme cases. The design team would come up with a competitive model. The test team would build test cases and capture its response. I think testing is the key point among a project. We can build test and find the worst case. Besides, when testing, we can improve our project’s robustness. It can be simplified as programming, we need to consider as much conditions as we can in case the program may not succeed. To sum up, I think testing is indispensable.
As can be seen from above, good project manager is just like a good movie producer that not only develops good products but also helps to guide the less experienced team members. Furthermore, I think the steering leadership style raised by Walker Royce is an original and brilliant style for successful software management in modern. Not only can we create satisfied products, but also get economics benefits. In addition, I think Walker Royce really gives me a wider scope for software project. It could also be regarded as the construction of building and so on. He evokes me to think of the software project management from various perspectives, and it will not boring and hard when talking about software project any more. I’ll apply these new ideas to my future career.
1. Walker Royce, Successful Software Management Style: Steering and Balance, 2004
2. P. Graham, Hackers and Painters: Big Ideas from the Computer Age, O’Reilly, 2004.
3. Standish Group International, CHAOS Chronicles, 2004.
4. W.E. Royce, Software Project Management: A Unified Framework, Addison-Wesley Longman, 1998.
5. M. Cantor, Software Leadership, Addison-Wesley, 2002.
6. J. Marasco, The Software Development Edge: Essays on Managing Successful Projects, Addison-Wesley, 2005.
7. P. Kroll and P. Kruchten, The Rational Unified Process Made Easy: A Practitioner’s Guide, Addison-Wesley Longman, 2003.