The image above is from this excellent article written by LuminousMen.com detailing what Agile/SCRUM is by way of Scrum Author Jeff Sutherland’s 11 steps to the Scrum “check and adapt” methodology.. LuminousMen captures the essence of this succinctly as follows:
“At the heart of Scrum lies a simple idea — whenever a project is started, there’s nothing prevents you from regularly checking on progress and consistently finding out:
- Can your team handle the tasks;
- Are the project moving in the right direction;
- Is your team building exactly what the client really wants?”
So how is this Scrum/Agile approach different from a traditional Waterfall approach and can it be applied to projects with interdisciplinary teams? The three questions above seem like assessments considered during most any product development process, but there are key differences between the Agile/Scrum and Waterfall approaches to be understood before knowing whether Agile/Scrum will benefit a particular program.
Many projects begin with waterfall-planning methods to define scope and to prepare budgets and timelines for a development program. If a program has few risks and few unknowns, the predictable nature of the Waterfall approach may work well, as it is clearly understood by interdisciplinary teams and Waterfall programs work best when there is little need for learnings-as-you-go or for customer input during the scope of the program.
However, if a program has less-definition around how to execute it or about which features will be most important, then an adaptive development approach may be the better choice, and having greater customer input and feedback throughout the program will ensure that the program adapts to meet the customer needs. This is where the Agile/Scrum approach shines as it embraces adaptation while using a timeboxed approach to ensure that progress is visible to all stakeholders throughout the program and the iterative develop-test approach ensures that user needs are being satisfied or honed at every release.
Although many software development teams have adopted Scrum successfully, there seems to be resistance to implementing it for hardware development teams. I have experienced this personally and I would suggest that the classical “Scrum” Kanban board program oversight/management tools fall short of what is needed for large projects and for programs with interdisciplinary development teams. This article entitled “Agile vs Scrum vs Kanban: Which Should You Use and When” from Insights for Professionals, underscores this sentiment.
So how do we cross the Chasm to get all of our teams on board? I prefer to stick with a familiar approach that minimizes training by using familiar tools and this is an approach that I have used successfully on several projects that included EE/SW/Mechanical Development and HF design:
- Tools
- A Gantt Chart is used up-front to estimate the scope of a program. MS Project and Smartsheet for Scrum/Agile programs with Sprints both work well.
- When ready to begin Sprint Planning, add Custom columns to the Gantt for
- Sprint number,
- Deliverables and
- Status so team members can self-indicate when a task is “In Progress” or “Done”
- Create a Display “Filter” to enable users to highlight or view only the selected sprint. This hides the remaining tasks temporarily so the team can focus on the current sprint. This is important to eliminate the “eye-chart” effect of the full gantt “backlog”.
- This filter is enabled to highlight Sprint 1 below:
- This filter can also be implemented to show only Sprint 1.
- During Sprint Planning,
- Sprint Backlog Setup
- User Stories are represented by Task Headers Titles
- The above example includes Electronics Development, Human Factors Development and Mechanical Development
- Development Team members add detailed child-tasks below each Task Header
- User Stories are represented by Task Headers Titles
- Setting Sprint Backlog Items
- Tasks are selected from the original Gantt by Dev Team Members to be included in the sprint by choosing a sprint number for the selected tasks.
- Team members modify these tasks as needed before assigning them the sprint number for the sprint that is about to begin.
- Team Members self-select and assign a resource for each task using the Resource column. This is not yet done in the example shown above
- Team Members define the description of “Done” via entering something that sufficiently detailed to be observable or testable into the Deliverable column.
- Tasks are selected from the original Gantt by Dev Team Members to be included in the sprint by choosing a sprint number for the selected tasks.
- Sprint Backlog Setup
- During Execution
- Teams Members select the view-filter that limits the scope of tasks to only the current sprint
- Team Members select the “In-Progress” STATE when they begin a task and select “Done” when it is complete.
- Sprint Review
- For Tasks marked Done by the development team(s), the greater team team reviews deliverables listed in “Deliverables” column and Product owner or Program Manager ensures that outcomes meet requirements and that all deliverables are completed and that they have been stored in the appropriate repositories or directories.
Note that MS Project also has support for Task Boards as shown in the Sprint view below:
In another view, the Task Board as shown below is dynamic so users can drag a task from one column to the next as work progresses.
The greatest benefit from following the Agile/Scrum process results from the work being planned in a “bottom-up” approach by teams who are empowered to work in a manner that provides transparency and visibility into program progress, in real-time, across the development team and all stakeholders.
While the result of the Agile/Scrum approach is rarely a lower cost or faster development cycle, the resulting programs have nearly double the success rate of those done using traditional waterfall approach and the Scrum/Agile approach ensures that the outcome has been continuously honed, by all stakeholders, to optimize product-market fit. Addendum (8/7/2020)
For interdisciplinary teams who use tools like Azure DevOps, there is a slick integration between MS Project and DevOps that may enable each team to use the tool of their choice. See this Article for more details.
Bob Bouthillier leads a Global Embedded Development team for Jabil’s Radius Innovation division and is a certified Scrum Master who has developed and deployed more than 60 technology-oriented medical and commercial products to market.