IT Projects Management Approaches

IT Projects Management Approaches

IT Projects

  • IT projects are a specific type of business project.

o   The more complex the IT aspect of the project, the higher the risk of failure of the project.

  • IT projects are difficult to estimate.

o   Projects can be measured in terms of function points or functional requirements of the software product.

o   Projects can be measured in “man-months”—how many people will be required to complete the project in a specified time period.

  • Additional people may or may not speed up the process.

o   Requires more communication and coordination.

  • Adding people to a late project only makes the project later.

IT Project Methodologies and Approaches

  • The choice of development methodologies and managerial influences distinguish IT projects from other projects.
  • The systems development life cycle (SDLC) – a traditional tool for developing IS or implementing software developed by an outsourcing provider or software developer.
  • Other development approaches:

o   Agile programming.

o   Prototyping.

Systems Development Life Cycle

  • Systems Development: a set of activities used to create an IS.
  • Systems Development Life Cycle (SDLC): the process of designing and delivering the entire system.
  • The SDLC generally is used in one of two distinct ways:

o   as a general project plan of all activities required for the entire system to operate.

  • Plan includes the analysis and feasibility study, the development or acquisition of components, the implementation activities, the maintenance activities, and the retirement activities.

o   as a process to design and develop system software.

  • Process is highly structured, disciplined, and formal.

SDLC Phases

  • Seven phases (Figure 10.8):
  1. Project initiation.
  2. Requirements definition.
  3. Functional design.
  4. Construction.
  5. Verification.
  6. “Cut over.”
  7. Maintenance and review.

Traditional SDLC Methodology Issues

  • Several problems arise with using traditional SDLC methodology:

o   Many systems projects fail to meet objectives.

  • The skills needed to estimate costs and schedules are difficult to obtain.
  • Each project is unique.

o   The objectives may reflect a scope that is too broad or too narrow.

  • The problem the system was designed to solve may still exist.

o   Organizations need to respond quickly.

  • Not enough time available to adequately do each step of the SDLC for each IT project.

o   Newer methodologies designed to address these concerns use an iterative approach (Figure 10.9).

Agile Development

  • Agile development methodologies were developed for situations where a predictable development process cannot be followed.

o   E.g., XP (Extreme Programming), Crystal, Scrum, Feature-Driven Development, and Dynamic System Development Method (DSDM).

  • Agile development is people-oriented rather than process oriented.

o   Adapts to changing requirements by iteratively developing systems in small stages and then testing the new code extensively.

o   The mantra for agile programming is “Code a little; test a little.”

o   DSDM is an extension of Rapid Application Development (RAD) used in the UK and is based on the underlying principles of active user interaction, frequent deliveries, and empowered teams.

  • DSDM:

o    incorporates a project planning technique that divides the schedule into a number of separate time periods (timeboxes) with each part having its own deliverables, deadline, and budget.

o   is based on four types of iterations:

  • Study (business and feasibility).
  • Functional model.
  • Design and build.
  • Implementation.
  • XP is a more prescriptive agile methodology.

o   XP revolves around 12 practices, including pair programming, test-driven development, simple design, and small releases.

  • Some disadvantages include difficulty estimating the required effort easily getting off track if the customer is unclear about final outcomes.

Prototyping

  • Prototyping:

o   is a type of evolutionary development.

o   builds a fast, high-level version of the system at the beginning of the project.

  • User involvement.

o   Users see the day-to-day growth of the system and contribute frequently to the development process.

  • Prototyping can be used as a phase in the SDLC to capture project requirements.
  • Drawbacks to prototyping:

o   Documentation may be difficult to write.

o   Users may not understand the realistic scope of the system.

  • The final prototype may not be scalable to an operational version.

o   An operational version may be difficult to complete.

o   The process can be difficult to manage.

o   Difficult to integrate across a broad range of requirements.

  • Suitable for “quick-and dirty” types of systems.

o   System design flaws may be more prevalent.

  • Various approaches are summarized in Figure 10.10.

Other Development Methodologies and Approaches

Rapid applications development (RAD), joint applications development (JAD), Object-oriented analysis, design and development, and the open sourcing approach.

  1. RAD is similar to prototyping in that it is an interactive process in which tools are used to drastically speed up the development process.

o   Has tools for developing the user interface, graphical user interface (GUI), reusable code, code generation, and programming language testing and debugging.

o   Enables the developer to build a library of standard sets of code—or objects—used and reused in multiple applications.

o   “Drags and drops” objects into the design.

  • Automatically writes the code necessary to include that functionality.
  1. Joint applications development (JAD):
  2. Is a version of RAD or prototyping.
  3. Has users that are more integrally involved.
  4. Uses a group approach to elicit requirements by interviewing groups of users.
  5. Is expensive due to travel and living expenses needed to coordinate participants.
  6. Object-oriented development:
  7. Is a way to avoid the pitfalls of procedural methodologies.
  8. Builds on the concept of objects—or reusable components.
  9.       An object encapsulates both the data stored about an entity and the operations that manipulate that data.
  1. Open Sourcing Approach
  • Linux:  was created by linus torvalds and several thousand hackers around the world.
  • Is a world-class os—a clone of unix.
  • Was built using a development approach called open sourcing, which is the process of building and improving “free” software via an internet community.

O   Eric raymond suggests that the linux community resembles a great bazaar of differing agendas and approaches (with submissions from anyone) out of which a coherent and stable system emerged.

  • Software is open source software (oss) if it is released under a license approved by the open source initiative (osi).
  • The most widely used osi license is the general public license (gpl), which is based on the concept of free software.

Leave a Reply