Difference between revisions of "Lean and Agile Software Development Education Programme"

Line 5: Line 5:
  
 
The overarching goal is to improve the organizational system (that creates software) to become a much better learning organization and value-delivery system, through the adoption of Lean-Thinking principles and related practices. I am the author of the [http://www.leanprimer.com/ Lean Primer], and the book [http://www.amazon.com/Scaling-Lean-Agile-Development-Organizational/dp/0321480961/ref=sr_1_1?ie=UTF8&qid=1432078468&sr=8-1&keywords=scaling+lean+agile+larman Scaling Lean & Agile Development], and so the bias (my bias) of this programme is indeed ''Lean Thinking''. Therefore, if "Lean" and "lean software development" is something that interests your organization, this is a great fit.
 
The overarching goal is to improve the organizational system (that creates software) to become a much better learning organization and value-delivery system, through the adoption of Lean-Thinking principles and related practices. I am the author of the [http://www.leanprimer.com/ Lean Primer], and the book [http://www.amazon.com/Scaling-Lean-Agile-Development-Organizational/dp/0321480961/ref=sr_1_1?ie=UTF8&qid=1432078468&sr=8-1&keywords=scaling+lean+agile+larman Scaling Lean & Agile Development], and so the bias (my bias) of this programme is indeed ''Lean Thinking''. Therefore, if "Lean" and "lean software development" is something that interests your organization, this is a great fit.
 +
 +
The courseware and trainers for delivering this programme as a turn-key system are already developed.
 
<br>
 
<br>
 
<br>
 
<br>
Line 15: Line 17:
 
<br>
 
<br>
  
==== Train-the-Trainer Option ====
+
==== Delivery Model and Train-the-Trainer Option ====
xxx
+
First, to define a key term: a '''wave''' is a running of the complete programme for a set of teams.
 +
 
 +
One wave has two teams go through it together. Assuming the average team is 7-ish people, and two teams may be related to 1 manager (who also ideally fully participates in the education), a typical wave has about 15 people.
 +
 
 +
Lean organizations emphasize developing internal capability to learn and coach, so one goal of this programme is usually to help develop an internal capability to deliver it by internal coaches/trainers. However, of course there's a bootstrapping problem, and there may always be some teacher-availability constraint, and some clients simply don't want to create that internal support.
 +
 
 +
Therefore, to kickstart this programme, the early waves are delivered Craig Larman and other certified experienced trainers who have delivered it at other clients.
 +
 
 +
In the case that the client decides to also create internal coach/trainers, there is a train-the-trainer model: Each potential internal coach must attend an entire wave ''twice'', before certification. Once as a participant, and once in a co-teaching with an existing certified teacher.
 +
 
 +
To aid in the coach-certification and learning process, the original deliveries by external certified trainers may be video-recorded (but only used for coach preparation).
  
 +
 +
Licensing: In the case of the train-the-trainer model, the (very mature, refined) programme courseware is made available to the client with a licensing fee model.
 
<br>
 
<br>
 
<br>
 
<br>
 +
 +
 +
==== Customization of the LASD Programme ====
 +
The standard curriculum presented in the following sections is recommended, based on many years of experience with thousands of developers. However, there are contexts where it can and should be modified, by either deleting or adding elements. This needs to be discussed and designed with Craig, via a custom programme-design activity.
 +
<br>
 +
<br>
 +
 +
==== Introduction to the Programme Curriculum ====
 +
xxx
 +
<br>
 +
<br>
 +
 
==== LASD1 (Lean & Agile Sw Dev 1): Readings ====
 
==== LASD1 (Lean & Agile Sw Dev 1): Readings ====
  
Line 146: Line 172:
 
<br>
 
<br>
 
<br>
 
<br>
 
=== Adoption & Operating Model ===
 
To scale this, I recommend that an internal cadre of ''technical coaches'' (such as existing managers and architects) become certified to deliver this. The programme will start with some existing certified external coaches (e.g., craig, ...) that deliver this programme, with participants who will in the future deliver it separately.
 
 
Each potential coach must attend the cycle of education ''twice'', before certification. Once as participate, and once in a co-teaching with an existing certified teacher.
 
 
To aid in the coach-certification and learning process, the original deliveries by external expert coaches may be video-recorded (but only used for coach preparation).
 
 
I recommend that virtually all teams within the organization go thru this education process.
 

Revision as of 17:11, 19 May 2015

Introduction

Clients say this is an awesome, useful programme. We agree ;)

This is a summary of the Lean & Agile Software Development (LASD) education programme that I (Craig Larman here) have honed over the decades (it started development & delivery in the early 1990s), and set up at organizations such as Xerox and JPMorgan. For example, it has been successfully delivered at Xerox to well over 20,000 software developers and managers as part of their Lean Software Development initiative, of which I served as the lead coach.

The overarching goal is to improve the organizational system (that creates software) to become a much better learning organization and value-delivery system, through the adoption of Lean-Thinking principles and related practices. I am the author of the Lean Primer, and the book Scaling Lean & Agile Development, and so the bias (my bias) of this programme is indeed Lean Thinking. Therefore, if "Lean" and "lean software development" is something that interests your organization, this is a great fit.

The courseware and trainers for delivering this programme as a turn-key system are already developed.

Candidate Participants & Teams

Beside the obvious candidate participants -- developers -- we urge that it include full participation by many of the managers (including more senior managers) within the Development Organization. Why? In Lean Thinking, a key idea is "manager-teacher" and the saying is, "my manager can do my job better than me." So to amplify the impact of this programme, and to ensure there is strong alignment between the education, knowing, and doing, and the broader organizational direction and policies, participation by managers is a great value. And if some of those managers can themselves become teachers of this programme, then this further supports the Lean Thinking model of manager-as-teacher, in which managers provide great value by directly coaching people in mastering the real tasks.

Another perhaps-surprising recommendation about the candidates is that complete stable teams go through the programme together. For example, if the Development Organization is structured into semi-stable teams of perhaps 5-10 people, all members of the team should go through the programme as a unit. Why? The principles and practices that will be mastered influence not just the individual, but the (organizational) system and group behavior. It strongly amplifies the impact of the learning, and of alignment to deliver more value from the programme, when a team applies it as a team. And it also acts secondarily as a team-building experience.

Delivery Model and Train-the-Trainer Option

First, to define a key term: a wave is a running of the complete programme for a set of teams.

One wave has two teams go through it together. Assuming the average team is 7-ish people, and two teams may be related to 1 manager (who also ideally fully participates in the education), a typical wave has about 15 people.

Lean organizations emphasize developing internal capability to learn and coach, so one goal of this programme is usually to help develop an internal capability to deliver it by internal coaches/trainers. However, of course there's a bootstrapping problem, and there may always be some teacher-availability constraint, and some clients simply don't want to create that internal support.

Therefore, to kickstart this programme, the early waves are delivered Craig Larman and other certified experienced trainers who have delivered it at other clients.

In the case that the client decides to also create internal coach/trainers, there is a train-the-trainer model: Each potential internal coach must attend an entire wave twice, before certification. Once as a participant, and once in a co-teaching with an existing certified teacher.

To aid in the coach-certification and learning process, the original deliveries by external certified trainers may be video-recorded (but only used for coach preparation).


Licensing: In the case of the train-the-trainer model, the (very mature, refined) programme courseware is made available to the client with a licensing fee model.


Customization of the LASD Programme

The standard curriculum presented in the following sections is recommended, based on many years of experience with thousands of developers. However, there are contexts where it can and should be modified, by either deleting or adding elements. This needs to be discussed and designed with Craig, via a custom programme-design activity.

Introduction to the Programme Curriculum

xxx

LASD1 (Lean & Agile Sw Dev 1): Readings

Summary: Readings

Person-hours: 5-10

Content:

Chapter: Systems Thinking. Book: Scaling Lean & Agile Development.
Chapter: Lean Thinking. Book: Scaling Lean & Agile Development. OR... the online Lean Primer @ http://leanprimer.com/
Chapter: Be Agile. Book: Scaling Lean & Agile Development
The New Methodology @ http://www.martinfowler.com/articles/newMethodology.html
Agile Values & Principles @ http://agilemanifesto.org/
Scrum Guide @ https://www.scrum.org/Scrum-Guides
Scrum Primer @ http://scrumprimer.org/
Unit TDD @ http://www.jamesshore.com/Agile-Book/test_driven_development.html
Refactoring @ http://www.jamesshore.com/Agile-Book/refactoring.html AND http://www.refactoring.com/catalog/index.html
Chapter: Test. Book: Practices for Scaling Lean & Agile Development
Chapter: Continuous Integration. Book: Practices for Scaling Lean & Agile Development



LASD2: Course: Agile Software Development: Hands-On Practices, Principles, Agile Modeling, And TDD

Content Summary: Core hands-on skills in agile sw development/engineering (unit TDD with refactoring, acceptance TDD, continuous integration, clean code, agile modeling for user experience, analysis, and design), and solid OO design

Experience Summary: In this extremely hands-on course, 2 teams (e.g., 14-16 people), each working together as a team, learn and apply in a structured environment with a carefully crafted education system and set of problems. The coach works intensively with the teams during group agile modeling, and intensively with the programming pairs, during development.

Duration: 5 days.

Detailed Description: Agile Software Development: Hands-On Practices, Principles, Agile Modeling, And TDD

Special Readings for Future LASD Teachers:

  • Applying UML and Patterns 3E, Larman: Chapters 1-25
  • Clean Code, Martin: Chapters 1-10
  • User-Centered Design, Lowdermilk, All chapters (it's a short book - a solid overview of basics)



ZERO to max of 3 weeks break (zero is probably best)



LASD3: Workshop: Core skills applied in a mini-Sprint with a work goal

Context: It is helpful to learn & apply new complex skills in a structured classroom environment, but to go from "knowing to doing" in the workroom requires a critical extra step.

Content Summary: The skills of LASD2 are applied to a company goal, that the teams and company mgmt pick (vetted by the coach), in a 5-day mini-Sprint

New Topics? This is mostly application of LASD2 knowledge to "normal company features", but one distinct new topic this week is the use of a "mocking" framework for "test doubles" during the practice of unit TDD.

Experience Summary: The 2 teams are led through a mini-Sprint. The coach works intensively with the teams during group agile modeling, and intensively with the programming pairs, during development, introducing new principles and practices and design patterns as situationally appropriate.

Duration: 5 days.

Environment & Tools: Same as LASD2, but definitely access to your real development (source code, .etc) environment, as we are building "real" software.

ZERO to max of 4 weeks break (no preference)



LASD4: Clinic: Legacy-Code TDD

Context: It's easy to create clean code and do TDD and refactoring in a green-field context (LASD2 and LASD3), but that's not the reality of the developers and the legacy code base. The craft of legacy-code TDD is a very different and challenging skill-set and requires distinct coaching, in the context of your real existing legacy code. Especially difficult is breaking dependencies in the existing code, to enable for TDD, and this requires very situational coaching.

Content Summary: Legacy-code TDD and refactoring, breaking dependencies.

Experience Summary: 1 team does a "coding dojo" style learning with the coach. The team and coach are surrounding a projector displaying the legacy code, and for a 10-minute cycle, one person does legacy-code TDD and refactoring and dependency breaking, guided by the coach. Then "driving" the keyboard rotates to the next team member, etc.

Duration: 2.5 days.

Note: The coach will complete team 1 and team 2 coaching over a 5-day period.

See further description here


Special Readings for Future LASD Teachers:

  • Working Effectively with Legacy Code



ZERO to max of 4 weeks break (no preference)



LASD5: Course: Agile Design And Modeling For Advanced Object Design With Patterns

Content Summary: Hands-on skill and mastery of excellent and flexible software design with design patterns; more agile modeling skill.

Experience Summary: As in LASD2, in this extremely hands-on course, 2 teams (e.g., 14-16 people), each working together as a team, learn and apply in a structured environment with a carefully crafted education system and set of problems. The coach works intensively with the teams during group agile modeling.

Duration: 3 days.

Detailed Description: Agile Design And Modeling For Advanced Object Design With Patterns


Special Readings for Future LASD Teachers:

  • Applying UML and Patterns 3E, Larman, Chapters 26 and 36
  • Design Patterns
  • optional: Head First Design Patterns





no break (start next event on subsequent day)



LASD6: Workshop: Agile Architecture Documentation Workshop

Summary: There is a large system and the overarching existing design is not clear to many. This also inhibits evolving the design for the future. In this 1 day workshop, the coach facilitates the group to create architectural views and technical memos in a highly collaborative hands-on workshop using vast whiteboard spaces, to sketch out the existing product architecture, and also capturing Q&A sessions on video. The output is not only the many architectural view sketches (logical, process, data, deployment, security, ...) and technical memos, but a shared understandings amongst workshop participants in the existing design, using lightweight and fun methods that transform "documenting the architecture" from a boring low-value activity into an interesting high-learning high-value event. This workshop can also be combined with the definition and organization of a self-study plus Q&A mentoring system for new hires to your company, to speed and improve the architectural knowledge of your staff.

Duration: 1 day.

Detailed Description: Agile Architecture Documentation Workshop


Special Readings for Future LASD Teachers:

  • Applying UML and Patterns 3E, Larman, Chapter 39