03
  • 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)

    PPDIOO Methodology (Cisco) Diagram
    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 Model 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

    Project Schedule Diagram

    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 → Traditional method Traditional method
    Estimates → The plan creates cost/schedule estimates Release feature intent drive estimates

    The “Inverted Pyramid” principle

    - as used by Newspapers around the world

    inverted Pyramid
    Source from Clark Ching

    Feature Usage

    Features Used Chart

    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

    Iterative Development Diagram
    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

    Prototype Model Diagram

    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.