User centered agile dev balanced team 2013

download User centered agile dev balanced team 2013

of 33

  • date post

  • Category


  • view

  • download


Embed Size (px)



Transcript of User centered agile dev balanced team 2013

  • 1. User Centered Agile Dev at NASA - One Groups Path to Better Software Jay Trimble NASA Ames Research Center ! For Balanced Team 11-3-13
  • 2. My Background Missions NASA Johnson Space Center, Houston Shuttle Mission Control, Payloads Jet Propulsion Lab Space Radar Lab-1 Ops Director Robotic - Voyager Neptune Shuttle - Space Radar Lab, Lead Ops Director Current Mission Operations & Ground Data System Manager, Resource Prospector Lunar Rover Internship in Mission Control (A long time ago)
  • 3. My Background Software Technology Human Centered Computing for Mars Rovers Founded User Centered Technology Group User centered technologies for mission control
  • 4. One Story of Agile at NASA This is a bottom up story of how a group at NASA applied agile methods to software development for mission control This was approved, but not initiated by, management
  • 5. The Project Our task was to build an architecture for mission control user applications, the primary focus being on developing interaction paradigms and technology for user-composable software ! See the results at
  • 6. The Collaboration Design and Development Team at NASA Ames The Customer Mission Control Users at NASA Using Participatory Design, we created an integrated team that included customer representation
  • 7. Issues and Mandates Some customers want a new product, others do not The product must have new capability, but must also not be disruptive within the organization Functional and visual connection to legacy product
  • 8. The Journey We began with a six month software delivery cycle By iteratively xing issues, we got the delivery cycle down to three weeks It took close to two years to complete the transition
  • 9. Where we started Four sixmonth deliverables One User Experience Spec Module 1 Subsystem1 Subsystem2 6 Months Subsystem3 6 Months Subsystem 6 Months 6 Months
  • 10. Issues we faced Long delivery cycle Difcult to manage feature prioritization and development, integration and testing Progress invisible to customer, lack of meaningful ongoing customer interaction to drive design Mismatch in expectations between design/dev team and customer Difcult for the development team to know state of progress relative to goals Deliveries focus on subsystems rather than meaningful end user functionality Two-year nal deliverable created a tendency to defer key issues
  • 11. Initiating Internal Change Fix the problems iteratively, without a broad proclamation of methodology, i.e. we are going to be agile or we are going to be lean Just x the problems
  • 12. First Step - Six Week Cycle We took the six month cycle and divided it into smaller pieces This was a start, but still left many issues It 1 It 2 It 3 It 4 6 6 6 6 Weeks Weeks Weeks Weeks It x
  • 13. Incremental Improvements Six week delivery cycle Prioritization of work at the start of each sixweek iteration User Experience spec for every iteration due one week before iteration start UE testing and design session during coding period of each iteration
  • 14. Six Week Cycle Demo new features for QA UE Specication Rls Docs Stack Rank PreStack Rank 1 PreStack Rank 2 UE Spec Pre-Ship Review, exit critera, customer demo Eng design & spec (3 days) Code (3.5 weeks) Demo Test (2 weeks) PS Review Deliver DeBrief Kickoff UE Testing Iteration n-1 (delivered s/w) UE Design/Testing Iteration n+1 (paper) Develop Test Plan JIRA Updates/Priorities Coding/UE Spec Revisions/Daily Acceptance Test Iteration n-1 Iteration n Iteration n+1
  • 15. Almost There Better, but still not where we need to be Six week iterations are focused on subsystem capabilities, they lack user-focus Customers see progress every six-weeks, this is not often enough
  • 16. Next Steps Identify the issues After each iteration we had a team de-brief where we identied issues and discussed xes Fixing the issues, one step at a time Some issues we xed with policy changes based on team de-briefs Many of the changes were bottom up within the team, such as Daily communication between user experience designers and the customer as new features rolled out and QA testing of features on rollout, Some changes were top down, such as the length of an iteration (or sprint) and the release cycle
  • 17. Agile We shortened the cycle to three weeks Replaced discrete events, with integrated interactions Integrated strategic and tactical into our ranking process Each iteration had clear purpose, goals, ranked priorities Daily Build, Iterations, Release Strategic road map
  • 18. Designing with the Users Participatory Design & Analysis Customers are part of the design team Designers facilitate, customers are the domain experts Shared ownership
  • 19. Design Artifacts Triggers/Results Really big picture Big Picture Task Flows Blue sky Real world
  • 20. Design Artifacts Task Objects User Objects Windows
  • 21. Agile Cycle Nightly Build Iteration delivered every 3 weeks Release every 3 months Release to Mission Control User Test Community Release to Mission Control User Test Community Release to Mission Control User Test Community Release to Mission Control Ops Release n Iteration 1 Iteration 2 3 Weeks Iteration 3 6 Weeks Iteration 4 9 Weeks 12 Weeks
  • 22. The Three-Week Cycle Agile Development Iteration Feature Freeze (-7 days) Optional Mid-Iteration Hackathon tests big features Priorities/JIRA Rankings Code Freeze (-3 days) Pre-Ship Hackathon Start 24 hour test (-2 day) Deliver to customer 3 Weeks Iteration n Coding UE & Tech Spec dates driven by coding dependencies Issue Tracking Updates/Priorities/Rankings Nightly Build/Internal testing as features roll out Daily iteration n Build to Customer Customer installs iteration n-1 Test Customer acceptance test User Feedback Customer verication of closed JIRA issues Feature mods/additions, bug xes Customer triages issues it discovered Optionally, hot patch Iteration n+1
  • 23. The Release Cycle Agile Release Into Operations Release to Mission Control User test Community Release to Mission Control User test Community Release to Mission Control User test Community Customer Feature Verication Customer Feature Verication Customer Feature Verication Iteration 1 Iteration 2 Release to Customer for Mission Control Certication Iteration 4 Bugs/ Usability/More Testing Iteration