CHAPTER 1

Introduction to Information
Technology Project
Management

Objectives

  1. Understand about the Software Process Model
  2. Understand about the waterfall model and the Agile Development
  3. Learn at Macro Level how MS-Project can help project managers

A Project is defined as a temporary endeavor undertaken to create a unique product, service, or result. For example, if you are creating a mobile app for a bank to enable the customers to do financial ­transactions, it is a ­project. If you are improving the performance of an enterprise grade information technology system, it is a project.

Project Phases and Phase-to-Phase Relationships

A project passes through a series of phases from the start to closure. The phases are time bound, and provide intermediate results (or deliverables).

Broadly there can be three types of phase-to-phase relationships:

  1. Sequential relationship, in which the project is divided into separate phases and each phase is carried out successively in sequence;
  2. Overlapping relationship, in which phases may be overlapping;
  3. Iterative relationship, which has been used extensively in the recent past for projects with rapidly changing requirements.

The Software Process and the Process Models

We did discuss about Project, Project Phases, and phase-to-phase relationships in earlier paragraphs. The sequence of phases for the entire lifetime of a product is described by a Process Model or a Product Life Cycle. This covers everything from the initial commercial idea until the final un-installation of a software product after its use. A Product Life Cycle is longer than a Project Life Cycle. A Product Life Cycle can spawn many a projects (Figure 1.1).

Image

Figure 1.1 Relation between Product Life Cycle and Project Life Cycle

In addition to the phases, a Process Model will also give a picture of the following:

  • The tasks that have to be carried out in each of the phases or subphases, along with their sequence.
  • The role, responsibilities, and the essential skills of the project team members or internal stake holders.
  • The work products or deliverables that have to be generated or evolved in each of the activities. Besides the final product, there are usually several other items that have to be generated during the development of a product. For example, Software Architecture Document, Test reports.

Therefore, a Process Model provides a framework that guides planning and tracking of a project.

The Waterfall Model

The waterfall model is the first process model which was introduced and has been used in software engineering extensively. Initially computer programs used to be simple and primitive meeting a few specific requirements. As programs became bigger and complex, the need for a better requirements elicitation and thoughtful design and so on emerged. Programmers found it more and more difficult to keep an abstract of the program in their mind and transfer it directly into code. A separate and detailed testing phase performed by dedicated testers got evolved, to get the programs tested independently. The different phases of software engineering were identified and simply cascaded in each other (Figure 1.2), allowing for loops in case it was found in a subsequent phase that the previous phase was not done properly.

Image

Figure 1.2 The Waterfall Model with different phases

The phases of “The Waterfall Model” are:

Requirement Analysis and Definition: All requirements of the system which have to be developed are collected and analyzed during this phase. Like in other process models requirements are split up in functional requirements and constraints which the system has to fulfill. Requirements have to be collected by analyzing the needs of the end user(s) and other key stakeholders. Checking them for validity and the possibility to implement them is also done at this stage. Requirements Specification Document is an outcome of this phase and it is used as an input for the next phase (that is system design) of the model.

System Design: This involves an architectural design which defines and describes the main blocks and components of the system, their interfaces and interactions. By this, the needed hardware is defined and the software is split up in its components. This phase generates a System Architecture Document. This not only serves as an input for the software design phase of the development, but also as an input for hardware design or selection activities. Usually in this phase various documents are generated, one for each discipline, so that the software usually will receive a software architecture document.

Software Design: The software design will break main blocks further down into code modules. The interfaces and interactions of the modules are described, as well as their functional contents. As an outcome, Software Design gets documented and forms base for the implementation work.

Coding: Actual coding is started. The system is first developed in smaller portions called units or modules. They are able to stand alone from a functional aspect and can be tested for the same. Each unit is developed independently and can be tested for its functionality. This is the so-called Unit Testing. It simply verifies if the modules or units to check if they meet their specifications. This involves not only functional tests at the interfaces of the modules, but also more detailed tests which consider the inner structure of the software modules. They are integrated later on to form the complete software package.

Software Integration and Verification: During integration the units which are developed and tested for their functionalities are brought together. The modules are integrated into a complete system and tested to check if all modules put together operate as expected.

System Validation: After successful integration, the complete system has to be tested against its initial requirements. This will include the actual hardware and the environment, whereas the previous integration and testing phase may still be performed in a different environment or on a test bench.

The system is delivered to the customer or the end user and will be used the first time by him. Not only the customers (or the end users) will check if the requirements were implemented as expected, but they will also validate if the correct requirements have been set up in the beginning. In case there are changes necessary, it has to be fixed to make the system usable or to make it comply with the customer wishes. In most of the “Waterfall Model” descriptions, this phase is extended to a never-ending phase of “Operations and Maintenance.” All the problems which were not captured during the previous phases will be solved in this last phase.

The Waterfall Model has several weaknesses. The prominent ones are:

  • It is required to elicit all the requirements in the initial phase itself. However, in actual practice, only a part of the requirements is known at the beginning.
  • Iterations are only meant to happen within the same phase or at best from the start of the subsequent phase back to the ­previous phase. This develops the tendency to patch problems with insufficient fixing of problems than solving root causes.
  • The further development may be squeezed into the last never ending maintenance phase (as enhancement requests). This may virtually run without a proper process.

Agile Development

Agile Project Management is a method of delivering projects in a highly flexible and interactive manner. It is derived from Agile Software Development standards. It is a variant of iterative life cycle where deliverables are submitted in stages in weeks as shown in Figure 1.3. There are several variants in Agile, including Scrum and Extreme Programming.

Image

Figure 1.3 Agile development with iterations

Given as follows are four distinct items of Agile Manifesto which need to be addressed by the methodology:

Individuals and Interactions: In Agile development, self-­organization and motivation are important. Interactions among team members are increased with colocation and pair programming.

Working software: In Agile, delivering a piece of working software to clients is more important than presenting a piece of document in the meeting.

Customer collaboration: In Agile, continuous customer or stakeholder involvement is very important (as all the requirements cannot be collected at the beginning of the software development cycle).

Responding to change: There has to be quick responses to change and continuous development in Agile development environment.

Advantages and Disadvantages of Agile

Waterfall, as a Project Management methodology, has been criticized for not being able to cope with constant changes in software projects. The iterative nature of Agile makes it an excellent alternative when it comes to managing software projects. Agile, however, has its disadvantages. As many believe that it doesn’t scale well, waterfall methodology is still used for many large software projects.

Role of a Project Manager

Project management is the discipline where the knowledge, skills, tools, and techniques are applied to project activities to take the project from concept to completion. In general, project managers have the responsibility to lead and manage the team to achieve the project objectives. In doing so, they also have to satisfy the needs of various stakeholders like customers, sponsors, and team members in a balanced manner. As project management is a critical strategic discipline, the project manager’s role involves achieving the strategic objectives using the team.

What knowledge and skills are required for the project manager or project management team? To manage projects effectively, there are five areas of expertise needed.

These five areas are:

  1. Knowledge of project management processes, and tools like ­MS-­Project.
  2. Knowledge of application area like Information Technology, ­Automotive Product Development.
  3. Understanding of project environment like political environment.
  4. General management skills like marketing.
  5. Interpersonal skills like motivating the team.

These areas are not distinct and may generally overlap.

Project Management and MS-Project

As we discussed in the earlier section, skills related to tools like ­MS-­Project are part of the essential skills of a project manager. The project manager also has the responsibility of engaging stakeholders and managing their expectations. MS-Project can help a project ­manager in doing that.

Many engineers tend to believe that a tool like MS-Project is used only for scheduling. However, it has utility much beyond scheduling. It is very important that projects are managed in an integrated way. For this to happen, the critical and relevant project information should be shared across all departments and also with various stakeholders. Software like MS-Project helps in achieving the same as depicted in Figure 1.4. Because of this, various stakeholders like team members, project managers, and suppliers can be on the same page. Finally, this reduces risks and increases profitability.

Image

Figure 1.4 MS Project helps to share project information with various project stakeholders

How do tools like MS-Project help various stakeholders? Management needs a macro level view of the project through reports like ­Milestone reports (delivered via e-mail or interactive browsers). Although very senior professionals like general managers and vice presidents do not schedule the project themselves, they may want customizable project information. MS-Project displays project schedule and cost metrics so that project profitability can be improved. Various financial reports (like cash flow over time) can be generated during planning; helping project sponsors forecast the cash flow.

Project schedulers and planners can use MS-Project to schedule ­projects with ease, to establish company standards using company-specific templates, and to perform baseline analysis to understand exact project costs. As MS-Project supports consolidating multiple projects, schedulers can easily consolidate subcontractor schedules. MS-Project provides project schedulers with the basic tools to easily plan and control projects.

Planning and controlling a small project may be easy. However, planning and controlling a large project are not easy. Schedulers can quickly create optimum project plans and zero in to understand the critical path in large network diagrams. They can easily create “what-if?” project scenarios to simulate possible adjustments, including compressing the schedule with fast tracking (to work in parallel). MS-Project enables schedulers to examine an activity—and its predecessors and successors. It helps to determine why an activity is scheduled at a particular time, and answer questions such as: Were any of its predecessors delayed? Do any of its predecessors or successors have constraints?

MS-Project also helps a project team in various processes related to other knowledge areas (other than project schedule or time management) as well. Figure 1.5 shows how MS-Project helps in managing various processes related to different knowledge areas of the project. It helps the project team to identify, quantify, and mitigate risks such as late supply of hardware, or additional software installations. Risks can be categorized and control plans can be documented as part of the overall project plan. MS-Project also helps teams prepare for the unexpected through a “what-if?” project and resource-simulation engine to determine the schedule and cost exposure of project risks. With this information, ­project managers and schedulers can flag potential risks and take necessary steps to plan an appropriate response.

Image

Figure 1.5 MS-Project helps in various Project Management processes of different knowledge areas

Many of these features, right from creating and using templates to managing multiple projects, have been discussed in this book, with guided examples. We will be looking at this in detail in subsequent chapters.

To conclude, we looked at a project life cycle, different software ­process models and skill sets required for a project manager in this ­chapter. We also understood (at a macrolevel) how MS-Project can help various stakeholders.


..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
18.118.1.158