Title: Building a Model Software Development Curriculum
1Building a Model Software Development Curriculum
2Background
- At Agile 2005, an Apprenticeship Pedagogical
Patterns Workshop was held to define the types of
patterns that would be needed to build a
successful apprenticeship program. - This document shows the results of that workshop
and suggests that the patterns discussed there
actually relate to each other by means of a model
based on systems thinking. - By categorizing the patterns/pattern languages
according to the aspects required to build a
healthy organization, the practitioner can
diagnose which patterns might be helpful in
creating or improving any Software Development
curriculum or addressing issues that are limiting
such creation or improvement.
3Improvement Model
- Improvement requires balancing investments in
three areas. Culture, Organization, and Action
function like the legs of a three legged stool.
When any leg becomes too long or too short it
prevents the stool from supporting its
objectives. - A holistic approach to improvement avoids the
problems encountered when too narrow of an
emphasis on process, methods, and tools fails due
to larger issues in the culture and/or
organization. - The Improvement Model allows for description of
the current state, diagnosis of unsupported
aspects, and prescription of the patterns that
might address those aspects.
49 Aspects of Improvement
(Shared Heritage)
(Shared Beliefs)
(Shared Goals)
(Shared Composition)
(Shared Commitment)
(Shared Focus)
(Shared Plan)
(Shared Responsibility)
Action
(Shared Approach)
5Improvement Model
Improvement moves from the lower left to the
upper right. It needs to be balanced across the
9 aspects.. If any aspect gets out of balance,
the entire system needs to be brought back into
alignment by reflective adjustment. (Getting out
of balance isnt bad it prompts the system to
reflective adjustment that can accommodate
emergent opportunities.).
6Apprenticeship Patterns - Learning
7Apprenticeship Patterns Social Interaction
8Apprenticeship Patterns Community Development
9Problem to be Solved
Can these patterns be rationalized over a
Software Development Curriculum improvement model
so that practitioners can be directed to the
right set of patterns to address their deliberate
improvement or diagnostic adjustment needs? Are
there necessary patterns or pattern languages
that have not yet been discovered?