Project Management
Wednesday, December 14, 2005
My last post on the same topic briefly highlighted the problems encompassing software development projects and also suggested the remedies implementing which a project manager would be able to bring alacrity to the Software Development Life Cycle (SDLC).
Today, I would like to take this opportunity to give you an insight into more specific aspects of a software project and help you understand the vicious circle of complexity related to a software project.
Software, as I mentioned earlier, is complex by its very nature itself. Similar to our own human body, software is actually a collection of various components or modules, which together form the whole software and just like our human body, proper functioning of the software requires each and every component to be in perfect shape. Managing the entire software project such that each component of the software is perfect in its own terms and is tightly integrated to the whole system is the real challenge or ‘complexity’ – whatever you call it.
However, the misery of the project managers does not end here. What makes software project management even more complex is the fact that today’s software market, bespoke software is on high demand. With bespoke or custom software development services on demand, the software industry has flourished like anything and there has been enough reason to develop new software every time for new clients.
But on the negative side, the bespoke software implemented at the client sites have always been subjected to changes after implementation, just to satisfy some new requirements. As a result of these changes the bespoke software continue to grow in magnitude and so do the costs of maintaining software and of course, the complexity of the software.
In such situations, software does seem an uncontrollable behemoth and compel the management to contemplate on outsourcing the system management tasks, running the software unchecked in the end-users department, or develop the software afresh from scratch. But software project management is not about surrendering to adversities, it is more about taking the think positive – be optimistic approach. And indeed if you look deeply into the matter you will almost always come up finding the crux of the problem.
In this case the compounding problem of complexity is a vicious circle phenomenon that occurs after bespoke software is implemented at a client site. The circular phenomenon is a result of a few events, which are as follows:
1. At first, the bespoke software is implemented at the client site.
2. The client demands some changes in the software to make it more customized.
3. More resources new resources are added to meet the client requirements.
4. Resources, being new act on their own without following a consistent standard.
5. Poor communication among the new and old resources makes the project less manageable and adds to the complexity.
Thus, the problem of compounding complexity lies not in the size of the software but with the lack of proper standards and way of communication among the resources involved with the project. Analogous to the Industrial Revolution wherein standardization of basic terminologies was required for the growth of industrial enterprises, we need standards to be followed during software development as well.
Standardization along with establishment of proper channels of communication is indeed the right solution to the compounding problem of software complexity. In other words, to break the vicious circle affecting project management, what is needed is a resource centric approach to project management so that resources involved with the software project are managed effectively through standardization and proper communication.
Sunday, November 06, 2005
Project Management- Inculcating Alacrity to the Cycle
A software project, although being a planned activity, is essentially a non-routine task. And this very essence of the software projects perfectly associates Hiesenberg’s uncertainty principle with software projects and makes project management a Herculean task.
But more than anything else, it’s the invisibility factor of software projects that makes things difficult for any project manager. Unlike a civil engineering project, you cannot measure the progress of a software project.
However, this invisibility of software projects does not necessarily suggest that the software projects are simple too. When measured on the basis of per dollar, pound, or euro spent, software projects involve more complexity than other engineering artifacts. The high-degree of changes associated with the software projects further worsens the fate of these projects.
Ironically, the solution to counter all these factors is none other than effective project management itself and a successful project manager will be one who can troubleshoot the following problems:
· Poor estimates and plans
· Lack of quality standards and measures
· Lack of techniques to make projects visible
· Poor definition of project member roles
Project management refers to the application of knowledge, skills, tools, and techniques to the application development life cycle in order to meet the project requirements and solve the preceding problems.
Software project management helps reduce the application development cycle time by breaking the product development process into phases and clearly specifying constituent phases of the software development life cycle. And throughout the product development cycle, project management undergoes through metamorphosis into various forms, such as:
· Scope management: Involves developing a common understanding as to what is included in, or excluded from the project.
· Time management: Involves finding ways, such as Rapid Application Development (RAD) and prototyping for reducing time spent during requirement analysis.
· Resource management: Involves managing the human resources by considering the aspects, such as leadership, staffing, project organization, and teaming.
· Cost management: Involves setting up a project budget and managing project expenditure.
· Risk management: Involves risk identification, risk monitoring, and risk control.
· Quality management: Involves developing and implementing a quality plan.
· Communication management: Involves creating a communication plan to ensure that there is no communication gap among the team members.
· Procurement management: Involves selecting the right organizations for hiring services.
· Project review: Involves analyzing the project based on past experiences.
· Benefits identification: Involves identifying the favorable differences between the current system and the proposed system.
. Software selection and purchase: Involves evaluating the vendor tricks and pricing issues.
So, project management involves a zillion of things, isn’t it? But project management is not only about performing the above tasks both it is about Gant charts and Pie charts. Its more about getting the right things done, the right way and helping the team remain focused on the end goal – accelerating the product development life cycle.