Agile Systems Engineering Planning Using Six Thinking Hats

Presenters

  • Phyllis R. Marbach

  • Laurie Buss

Systems Engineering for Software Intensive Projects Using Agile Methods presented at INCOSE International 2014

Introduction

  • Scrum is an iterative, incremental methodology for project management often seen in agile software developement, a type of software engineering

  • Agile Includes:

    • Scrum: Iterative, incremental methodoogy for project management

    • Lean: reduce waste, reduce work in process; have what you need to start, once an item is started, finish it before starting the next item

    • eXtreme Programming: pair programming, continuous integration, automated testing, test first development

    • Crystal Methods: frequient delivery, reflective improvement

  • "Ceremonies" of Agile

    • Vision of the system must be well-defined

    • Create a product backlog: list of stuff to accomplish

      • Prioritize the list of stuff by the highest priority at the top

      • list of stuff usually comes from a group of stakeholders

    • Commit to a small set of goals - the Iteration Backlog

      • Identify the smallest capability that canb e created; some call this a Minimum Viable Product (MVP)

    • Iteration Planning

      • Product owner identifies the highest priority items and the environmental constraints

      • Architect or SE defines architectural requirements

      • Team looks at the highest priority items on the product backlog and plans what they can do in the 2 to 4 week iteration

        • Team defines which of the high priority items they can do in the iteration being planned

      • Team identifies any dependencies between the backlog items

      • Agreement is that no stakeholders can add to or change the planned work during the iteration

        • Job of the scrum master to protect the team from the stakeholders adding or changing the planned work during the iteration

    • Daily stand-up where team reports to each other

      • This is what I just finished

      • This is what I plan to do next

      • Also report any impediments that might be slowing you down or in the way of finish something

    • Iteration Demonstration

      • Team presents what has been finished during the iteration in a "Show and Tell"

      • Stakeholders and Product Owner provide feedback on what is demonstrated

      • This inspects and improves the product

    • Retrospective

      • Faciliated by the scrum master

      • Usually soon after the demonstration, attended by team members only (not customers)

      • Each team member identifies:

        • What worked well

        • What did ot work well

        • What could/should be improved

      • Agreements on what will be changed to improve how everyone is working together

        • Pick the highest value prospect to address

      • This inspects and improves the process

  • Team Roles

    • Product Owner

      • Responsible for the product backlog

      • Removes impediments

      • Represents the customer and works closely with the customer

    • Scrum Master

      • Facilitates the team meetings

      • Removes impediments

    • Team Members

      • Plan the iterations

      • Estimate the amount of backlog that canb e completed each teration

      • Demonstrate the capabilties at the end of each iteration

    • Teams ideally are 5 to 9 members of developers, testers, and other members

  • Agile Summary

    • Roles

      • Team Member

      • Scrum Master

      • Product Owner

    • Artifacts

      • Product backlog

      • Iteration backlog

      • Working demonstrate-able increment of capability

    • Communication and Planning

      • Pre-product backlop

        • Vision/Roadmap

      • Pre-iteration backlog

        • Iteration planning

      • During iteration

        • Daily stand-up

      • Pre-working increment of a capability

        • Iteration demonstration

      • Post-demonstration

        • Retrospection

  • Systems Engineering

    • Stakeholder requiements defintion

    • Requirements analaysis

    • Architectural design

    • Implementation

    • Integration

    • Verification

  • Impact of Agile on Systems Engineering

    • SE Architect Role

      • SE identify and analyze architecture dependencies

      • Create and continuously update an architecture description

      • Participate with the SE Team

      • Partication on one or more implementation teams

      • Work one iteration ahead of the developers

    • SE Process

      • SE and software development work together to

        • Define capabilities

        • Implement capabilities

        • Test capabilities

        • Inspect the results

        • Adapt capabitlies as needed

        • Maintian system integrity

      • Larger programs with several teams working in parallel need SE engaged

      • Each aspect of development (requirements, design, implementaiton, test, verifcation) is continually revisited through the devleopment lifecycle

  • Agile SE Framework Conclusion

    • SE and software development work toegether to develop and evolve the work products iteratively

    • Define "just enough" architecture and requirements prior to the beginning of implementation

    • Release planning and iteration planning are essential to detail the work and coordinate the teams

    • Release products frequently

    • Absorb changes to mission requirements

    • Include requirements, architecture, system design and validation by SE on large scale agile projects

  • Will iterative and incremental development work for you?

    • Is the system complex?

    • Do you epect to have discoveries during the development that will cause changes?

    • Is there an involved and commiteed customer or product owner that can help prioritize the prodcut backlog and define the requirements

Last updated