Lean Software Development Emphasizes Efficient Workflow for eLearning Projects

Lean software development is based on seven principles thatemphasize efficiency, quality, and alignment with customer goals and needs.

  1. Eliminatewaste: According to “Hacker Chick” Abby Fichtner, “Lean says to relentlessly eliminate anything that isn’t adding value and only work on whatwe absolutely need to be doing at this moment in time.” That includesstreamlining workflow to eliminate meetings and tasks that are not essential.It also means, Fichtner says, not spending time on things that developers assumewill be needed in the future. Clear communication among all team members is anotherway to avoid wasting time and effort.
  2. Buildquality in: Rather than buildingsoftware with defects, then spending time identifying and fixing those defects,build it right the first time. Keep code simple, and write the tests evenbefore the code exists. “If the developer knows how it’s going to betested, they are much more likely to write code that addresses all thescenarios,” according to “All About Agile” blogger Kelly Waters.
  3. Createknowledge: Designs evolve assoftware code is created and tested; rapid development and testing ofprototypes builds that knowledge and helps catch flaws early in the developmentprocess.
  4. Defercommitment: Keep your optionsopen. The lean approach defers irreversible decisions for as long as possible,providing multiple opportunities to test out prototypes before some costly designelement is locked in.
  5. Deliverfast: Technology evolves quickly.The ability to deliver products quickly—and to update them as learners’ needsevolve—is essential. The lean emphasis on team workflow efficiency makes thispossible.
  6. Respectpeople: An iterative process thatsolicits and considers input from all team members and from end users isinherently respectful of people’s time, needs, and expertise. Additionalelements of respecting people include ensuring that the development team hasthe expertise it requires; that team members are nurtured and allowed todevelop; and that the team is given reasonable goals and sufficient autonomy tomeet those goals.
  7. Optimizethe whole: Late changes in thescope of a project, or late discovery of flaws in the design, can throw theentire product development cycle off track. Lean development seeks to optimizethe process to avoid the things that cause delays and breakdowns.

It all started at Toyota…

Lean software development is based on a set of manufacturingprinciples and processes that made Japanese auto manufacturers efficient andcompetitive in the 1980s and ’90s. American automakers, by comparison, wereclunky and slow. Managers and efficiency experts began studying thedifferences. The lean manufacturing or Lean Production System is based oneliminating waste—including waste that results from overburdening workers orsystems, or from uneven workloads. Toyota Production Systems developed its leanmanagement philosophy in the 1990s; “The Toyota Way” focused on making workflowsmooth and efficient. It also emphasized “learning based on early and frequentfeedback from downstream processes,” according to Mary Poppendieck, a process control expert who applied these lean principles tosoftware development.

At the time, American automakers—and product development—“focusedon resource efficiency, completing each phase of development before startingthe next, and following the original plan with as little variation as possible,”Poppendieck writes.

When Mary and Tom Poppendieck adapted lean product developmentprinciples to fit software development, they incorporated agile practices,tailoring the process to address flaws in the way software was developed. Theyzeroed in on the sequential or “waterfall” approach commonly in use in the ’90s—design,develop, test, deploy. This approach meant that flaws in the design were onlydiscovered toward the end of the process, so uncovering and “fixing” theseflaws had become part of the release cycle. The Poppendiecks instead focused ona development process that would avoid flaws from the outset, making “buildquality in” the second principle of lean software development.

Lean and agile

Agile software development also replaced sequential processeswith an iterative model. So how is lean software development different from agile?

While many of the themes and areas of focus are similar,there are differences. According to Poppendieck, “Agile focused on optimizingsoftware development, which frequently was not the system constraint. Leansoftware development differed from agile in that it worked to optimize flowefficiency across the entire value stream.”

Agile development teams generally follow “preferredpractices,” such as scrum or kanban, which will be described in future LearningSolutions Magazine articles.

Lean eLearning development

Lean’s focus on the whole team and process lends itself wellto eLearning development. Rather than considering each team member as an individualand maximizing the use of his or her time, the lean development manager willmake the most efficient use of the entire team—having people collaborate ortake on multiple complementary roles, for example. A key principle isintegrating the knowledge of team members who are engaged at all stages ofproduct development. Another essential principle is an unwavering focus on theneeds and input of customers or end users, rather than stubbornly adhering to aprocess or an initial design.

A lean approach can be especially relevant in smaller companies wherethe instructional design “team” might be a single person, possibly gettingcontent input from a subject matter expert and relying on authoring tools fordevelopment assistance.

Share:


Contributor

Topics:

Related