-
Learning objectives:
- Understand the concept of a project phase and the project life cycle, and distinguish between project development and product development
- Discuss the unique attributes and diverse nature of IT projects
Suggested reading: Chapter 2.
The Context of IT Projects
- IT projects can be very diverse in terms of size, complexity, products produced, application area, and resource requirements
- IT project team members often have diverse backgrounds and skill sets
- IT projects use diverse technologies that change rapidly. Even within one technology area, people must be highly specialised
Recent Trends Affecting IT Project Management
- Globalisation
- Outsourcing: Outsourcing is when an organization acquires goods and/or sources from an outside source. Offshoring is sometimes used to describe outsourcing from another country
- Virtual teams: A virtual team is a group of individuals who work across time and space using communication technologies
- Plan-Driven management & Agile project management
Project Phases and the Project Life Cycle
- A project life cycle is a collection of project phases that defines
- what work will be performed in each phase
- what deliverables will be produced and when
- who is involved in each phase, and
- how management will control and approve work produced in each phase
- A deliverable is a product or service produced or provided as part of a project
- The Software Development Process is often also called The Software Lifecycle or just simply The Software Process.
More on Project Phases
- In early phases of a project life cycle
- resource needs are usually lowest
- the level of uncertainty (risk) is highest
- project stakeholders have the greatest opportunity to influence the project
- In middle phases of a project life cycle
- the certainty of completing a project improves
- more resources are needed
- The final phase of a project life cycle focuses on
- ensuring that project requirements were met
- the sponsor approves completion of the project
Systems Development projects
- Systems development projects can follow
- Predictive life cycle: the scope of the project can be clearly articulated and the schedule and cost can be predicted
- Adaptive Software Development (ASD) life cycle: requirements cannot be clearly expressed, projects are mission driven and component based, using time-based cycles to meet target dates
Predictive Life Cycle Models
- NETWORK DESIGN METHODOLOGY (PPDIOO Methodology (Cisco))
- Waterfall model: has well-defined, linear stages of systems development and support
- Spiral model: shows that software is developed using an iterative or spiral approach rather than a linear approach
- Incremental model: provides for progressive development of operational software
- Agile methods: Scrum, XP, RUP and Lean software development
- Prototyping model: used for developing prototypes to clarify user requirements
- Rapid Application Development (RAD) model: used to produce systems quickly without sacrificing quality
-
NETWORK DESIGN METHODOLOGY PPDIOO Methodology (Cisco)
Learning Outcomes
- On completion of this module, students should be able to:
- Compare and apply techniques and tools for estimating, scheduling and monitoring a software project
- Explain basic project management concepts (including project planning, scheduling, control and configuration management; and techniques for cost estimation
PPDIOO Methodology (Cisco)
- Design is one component of network lifecycle
- PPDIOO stages:
- Prepare
- Plan
- Design
- Implement
- Operate
- Optimise
- Each phase builds on ts predecessor
Network Prototype
Criteria Prototype Size of network design Used on a subset of a large network design that can span both LANs and WANs Demonstration of functionality Used to prove complex functionality, such as connectivity; applications, such as email; and routing Cost Costlier because it requires more equipment and resources Customer requirement Used when a proof of full functionality of the design is neccessary -
Step 1: Reviewing the Requirements
- List major goals
- Identify requirements for performance, scalability, security, capacity
- Consider ROI, management, equipment reuse, cost of prototype
Step 2: Determining the Extent of the Prototype
- Creating the right-size prototype is critical
- Cost and purpose can determine the size of the demonstration
- Possibly roll out full prototype in one location
- Can make use of simulations
Step 3: Understanding Alternative Proposals
- Probably several competing design alternatives
- Plan prototype to highlight advantages of your solution
- Gather information on other proposals, or make assumptions if this is not possible
Step 4: Developing a Test Plan
- Need prototype topology map
- List and plan tests you will perform on prototype
- Test plan should reflect goals
- Demonstration may involve many people
- Map out roles and responsibilities in a script
Step 5. Purchasing and preparing equipment
- Network simulation tools
- Network hardware and software
- End-system hardware and software
Step 6. Practicing
- Practice to coordinate demonstration
- Practice with members of team
- Don’t want surprises
Step 7.Conduct final test and demonstration
- Present prototype for usability testing
Summary
- PPDIOO process
- Prepare, Plan, design, implement, operate and optimise
- Network documentation
- Management summary, proposed solution, installation and support, summary and appendices
- Steps for prototyping
- Review, determine extent, alternatives, test plan, equipment, practice, demonstration
-
Waterfall Model
Waterfall Approach
- First life cycle used by software developers
- Suggests a systematic sequential approach to software development
- The Waterfall approach assumes all requirements are written down before producing them
- Each definition is ‘signed off’ by the user before starting work
Waterfall Approach: Advantages
- Simple to understand
- Clearly breaks up the process of software development giving a clear framework for management
- Milestones/deliverables are easily identified
- Each stage should produce documentation (useful for maintenance/quality assurance)
- Cost estimations can be applied
Waterfall Development Lifecycle: disvantages
- Late discovery of issues
- Subjective and error-prone measure of progress
- Late integration and testing
- Precludes early deployment
- Frequently results in major unplanned iterations
What Happens in Practice
Waterfall: Hard to Scale up
- A waterfall approach can not properly handle the growing complexity associated with
- Increased duration
- Increased application size
- Larger and/or distributed team
- Increased technical complexity
- Novelty of technology
- The root cause of the problem with the waterfall lifecycle is that it does not allow us to identify and mitigate risks early enough
-
Agile Software Development
- Agile software development has become popular to describe new approaches that focus on close collaboration between programming teams and business experts
Better Progress Profile
Agile by attack
- Some Project managers (PMs) associate “agile” with “uncontrolled”/”undisciplined” etc
- Prefer command & control project management
- Why change? Existing process works”
- “Customers won’t like it”
- “Only works for big projects”
- Quick to blame failure on process
Plan driven vs. Agile
Traditional Method
(Plan-driven)Agile method
(value-driven)Fixed → Estimates → The plan creates cost/schedule estimates Release feature intent drive estimates The “Inverted Pyramid” principle
- as used by Newspapers around the world
- Source from Clark Ching
Feature Usage
80% and 20% theory
- Wilfredo Pareto
- 16th century Italian economist
- 80% benefit from people can be obtained from 20% of features but we need a method to quantify the 20% of features that will give 80% of benefit.
-
Agile Project
- Sponsors
- Product owner/customer: for prioritising the work
- Scrum master/Project manager: for assuring the scrum process is followed.
- The whole team: developers-testers-domain experts
- Management: for providing the right expertise to the team.
Visibility into the project activities
- Team iteration
- Sprint planning meeting
- Daily scrum meetings
- Sprint review meeting
- Sprint backward-looking meeting
What is good quality software?
- Key to developing good quality software is the process
- Methods and Tools are then complimentary to that
- How can we measure good quality software
- Maintainable
- Reliable
- Efficient
- Offers an appropriate user interface
Agile Value
- Individuals and interaction over process and tools
- Customer collaboration over contract negotiation
- Responding to change over following a plan
Agile method
- The successful factors are
- Prefer a project started with a small group.
- Co-location
- Customer onsite
- Business application
- Rapid application development (RAD) programming environment
- Short lifecycle
- Common culture
-
Scrum
- Scrum (Schwaber and Sutherland, 1995; 2002)
- A common focus on
- Working software
- Team interactions
- Customer collaboration
- Adapting to change
SCRUM Introduction
- Web application
- Multi-terabyte database applications
- Application development environment
- Call centre systems
- Biotech
- Financial payment applications
- Enterprise workflow systems etc.
- Characteristics
- self-organising teams
- Product progresses in a series of month-long "sprints"
- Requirements are captred as items in a list of "product backlog"
- No specific engineering practices prescribed
- Uses generative rules to create and agile environment for delivering projects
- The Scrum Master
- Represents management to the project
- Typically filled by a Project Manager or Team Leader
- Responsible for enacting Scrum values and practices
- Main job is to remove impediments
- The Scrum Team
- Typically 5-10 people
- Cross-functional
- QA, Programmers, UI Designers, etc.
- Members should be full-time
- May be exceptions (e.g., System Admin, etc.)
- Teams are self-organising
- What to do if a team self-organises someone off the team?
- No titles
- Membership can change only between sprints
- Sprints
- Scrum projects make progress in a series of "sprints"
- Analogous to XP iterations
- Target duration is one month
- +/- a week or two
- Product is designed, coded, and tested during the sprint
- Daily Scrum meetings
- Parameters
- Daily
- 15-minutes
- Stand-up
- Not for problem solving
- Three questions:
- 1. What did you do yesterday
- 2. What will you do today?
- 3. What obstacles are in your way?
- Chickens and pigs are invited
- Help avoid other unnecessary meetings
- Only pigs can talk
-
Extreme Programming (XP)
- 5 Fundamental Values
- Communication
- Feedback
- Simplicity
- Courage
- Quality
XP2: The 12 Core Practices
From Extreme Programming Explained Second Edition, Kent Beck, 2006
XP2 Primary Practice Sustained/New/XP1 Name Sit together New Whole team New Informative workspace New Energised work 40-hour Week Pair programming Sustained Stories Planned Game Weekly cycle Planning Game Quarterly cycle Small releases Ten minute build New Continuous integration Sustained Test-first Programming Testing Incremental Design Simple Design Refactoring XP1 Practice Disposition Metaphor Removed Collective code ownership Corollary: Shared code On-site customer Corollary: Real customer involvement Coding standard Removed -
Rational Unified Process (RUP) and UML
- Unified Modelling Language provides visual language for OO projects.
- Rational Unified Process provides process model.
- Approach ‘open’ (non-proprietary) but Rational Corporation offers Rational Unified Process.
- Four phases to process:
- Inception
- Elaboration
- Construction
- Transition.
Iterative Development
- An iteration is a distinct sequence of activities with an established plan and evaluation criteria, resulting in an executable release.
- Earliest iterations address greatest risks
- Each iteration produces an executable release
- Each iteration includes integration and test
Iterative Development Phases
Major Milestones
Inception Elaboration Construction Transition - Time
- Inception: Agreement on overall scope
- Vision, high-level requirements, business case
- Not detailed requirements
- Elaboration: Agreement on design approach
- Baseline architecture, most requirements detailed
- Not detailed design
- >Construction: Apply approach
- Working product, system test complete
- Transition: Validate solution
- Stakeholder acceptance
-
Use-Case Driven Development
- A use case describes complete and meaningful services that your system offers to users and other systems
- Use cases drive the work through each iteration
- Planning of iterations
- Creation and validation of the architecture
- Definition of test cases and procedures
- Design of user interfaces and creation of user documentation
Lean Development
- What is Lean?
- Deliver continually increasing customer value
- Expending continually decreasing effort
- In the shortest practical timeframe
- With the highest possible quality
- Systems Thinking
- See the Whole
- Put on Customer Glasses
- Value Stream Maps
- Technical Excellence
- Correct by Consruction
- Basic Disciplines
- Great People
- Meaningful Work
- Leadership Roles
- Reliable Delivery
- Managing Workflow
- Scheduling
- Relentless Improvement
- Seeing Problems
- Solving Problems
- The Journey
- Making Change Happen
- Aligning Mental Models
- It's All About People
- The secret to success is to take good care of your employees, because then they will take good care of your customers, and satisfied customers lead to a successful business. Focus on three things: Create a great place to work, provide customers with what they really want, and make sure that the airline always makes a profit so it can stay in business for the long term. James Parker - CEO of Southwest Airlines - Do the Right Thing
- Continually Decreasing Effort
- Stop doing things customers don't value! Value is...
Seen through the eyes of those who pay for, use, support, or derive value from our systems Waste is ...
Anything that depletes resources of time, effort, space, or money without adding customer value. Put on Customer Glasses -
Evolutionary Models
- Prototyping
- Spiral Model
- Rapid Application Development (RAD) Model
- Incremental Model
- (and now) Agile Programming
The Prototyping Model
- Sometimes viewed as a life cycle model
- More accurate to describe it as a technique for establishing user requirements
- Often used with other models (RAD, Spiral Model, Waterfall)
- Will depend on whether the final software to be developed lends itself to prototyping
- Depends on the availability of appropriate prototyping tools to assist the process
- Begins with requirements gathering
- Quick design occurs
- Prototype is developed
- Prototype is evaluated
- Process is repeated
Kanban
- Technique that can be used in conjunction with scrum
- Developed in Japan by Toyota Motor Corporation
- Uses visual cues to guide workflow
- Kanban cards show new work, work in progress, and work completed
If Agile methods have so many positive feedback from industry why IT projects still go wrong?
- Interview with IT managers
- Agile teams focus on features too much and forget the non-functional requirements are very important such as reliability, interface, also like staff training, decision making, allow customers change their requirements (each requirement most likely is fix price) but need to let them know that the schedule and budget will increase also may lead their business lose their market due to late delivery the project.
- It would work on the large project but need every strong management skills.
- It is like so many mini-waterfall iteration. Most Agile project will combine two or more agile methods to make a project work. It depends on manager’s experience most.
-
Discussion question:
- When would you recommend against the use of an agile method for developing a software system?
- Possible Answer
- Possible Answer:
It should probably not be used when the software is being developed by teams who are not co-located. If any of the individual teams use agile methods, it is very difficult to coordinate their work with other teams. Furthermore, the informal communication which is an essential part of agile methods is practically impossible to maintain. It should probably be avoided for critical systems e.g. HR system, payroll system where the consequences of a specification error are serious. In those circumstances, a system specification that is available before development starts makes a detailed specification analysis possible. However, some ideas from agile approaches are certainly applicable to critical systems e.g. test first development, Test driven development. -
Key Terms
- adaptive software development (ASD) A software development approach used when requirements cannot be clearly expressed early in the life cycle
- agile Quick and coordinated in movement; a method based on iterative and incremental development, in which requirements and solutions evolve through collaboration
- agile software development A method for software development that uses new approaches, focusing on close collaboration between programming teams and business experts
- champion A senior manager who acts as a key proponent for a project
- deliverable A product or service, such as a technical report, a training session, a piece of hardware, or a segment of software code, produced or provided as part of a project
- executive steering committee A group of senior executives from various parts of the organisation who regularly review important corporate projects and issues
- functional organisational structure An organisational structure that groups people by functional areas such as IT, manufacturing, engineering, and human resources
- human resources (HR) frame A frame that focuses on producing harmony between the needs of the organisation and the needs of people
- IT governance The authority and control for key IT activities in organisations, including IT infrastructure, IT use, and project management
- kill point A management review that should occur after each project phase to determine if projects should be continued, redirected, or terminated; also called a phase exit
- matrix organisational structure An organisational structure in which employees are assigned both to functional and project managers
- offshoring Outsourcing from another country
- organisational culture A set of shared assumptions, values, and behaviors that characterize the functioning of an organisation
- outsourcing An organisation’s acquisition of goods and services from an outside source
- phase exit A management review that should occur after each project phase to determine if projects should be continued, redirected, or terminated; also called a kill point
- political frame A frame that addresses organisational and personal politics
- politics Competition between groups or individuals for power and leadership
- predictive life cycle A software development approach used when the scope of the project can be articulated clearly and the schedule and cost can be predicted accurately
- project acquisition The last two phases in a project (implementation and close-out) that focus on delivering the actual work
- project feasibility The first two phases in a project (concept and development) that focus on planning
- project life cycle A collection of project phases, such as concept, development, implementation, and close-out
- project organisational structure An organisational structure that groups people by major projects
- Scrum The leading agile development methodology for completing projects with a complex, innovative scope of work
- structural frame A frame that deals with how the organisation is structured (usually depicted in an organisational chart) and focuses on different groups’ roles and responsibilities to meet the goals and policies set by top management
- symbolic frame A frame that focuses on the symbols, meanings, and culture of an organisation
- systems Sets of interacting components working within an environment to fulfill some purpose
- systems analysis A problem-solving approach that requires defining the scope of the system to be studied, and then dividing it into component parts for identifying and evaluating its problems, opportunities, constraints, and needs
- systems approach A holistic and analytical approach to solving complex problems that includes using a systems philosophy, systems analysis, and systems management
- systems development life cycle (SDLC) A framework for describing the phases involved in developing and maintaining information systems
- systems management Addressing the business, technological, and organisational issues associated with creating, maintaining, and modifying a system
- systems philosophy An overall model for thinking about things as systems
- systems thinking A holistic view of an organisation to effectively handle complex situations
- virtual team A group of people who work together despite time and space boundaries using communication technologies
-
Useful videos
- Discover whether your project is a candidate for Agile SAP implementation. Agile SAP provides the IT organization with the ability to be flexible and to respond to a changing business environment unlike traditional "Waterfall" approaches.