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):
- Project initiation.
- Requirements definition.
- Functional design.
- Construction.
- Verification.
- “Cut over.”
- 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.
- 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.
- Joint applications development (JAD):
- Is a version of RAD or prototyping.
- Has users that are more integrally involved.
- Uses a group approach to elicit requirements by interviewing groups of users.
- Is expensive due to travel and living expenses needed to coordinate participants.
- Object-oriented development:
- Is a way to avoid the pitfalls of procedural methodologies.
- Builds on the concept of objects—or reusable components.
- An object encapsulates both the data stored about an entity and the operations that manipulate that data.
- 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.