2. Mike Dunn 2013.04.17
Status Quo
We are deluged with information about how to
improve software product creation and delivery
by using different development methodologies
for:
● Teams and/or
● Organizations and/or
● Companies
3. Mike Dunn 2013.04.17
Status Quo
● Different software creation methodologies are
supported by a plethora of training programs.
● There are training programs that focus at different
levels:
Organization
Team or Project
● There are also a considerable number of role
focused training programs.
4. Mike Dunn 2013.04.17
Status Quo
● So what is missing??
●
How about Software Craftsman1
training??
● How about Software Craftsman1
emphasis??
● Yes, we have role level training.
● Yes, Watts Humphrey's PSP does exist.
● But, how many software developers really
understand the software development craft??
1
To those members of the political correctness brigade, I prefer the traditional gender neutral usage of
the word craftsman. Just because a word ends in 'man' does not make it a male reference – like the
word woman.
5. Mike Dunn 2013.04.17
Status Quo
● Do software developers consider themselves to be
craftsmen??
● My limited anecdotal analysis says most do not.
● The majority of software developers desire to
produce high quality work products.
● The majority of software developers are capable
of delivering higher quality work products.
Let us explore.
6. Mike Dunn 2013.04.17
Status Quo
● First, let us review one of the key elements of any
system with variable inputs and actions –
feedback.
● If one looks at any successful quality system, it is
obvious that it is a closed loop system making
feedback the critical factor.
● To be effective, feedback should be captured and
recorded in a timely manner and then analyzed.
7. Mike Dunn 2013.04.17
Status Quo
● Now let us take a look at an example sequence:
Developer analyzes some requirements and
creates an estimate.
Developer writes tests [in some cases],
implements the requirements, tests the
implementation and delivers the work products.
Developer performs instant self assessment –
“I got close”, “oops, I missed it”, etc.
● And what gets captured, recorded, and analyzed??
8. Mike Dunn 2013.04.17
Status Quo
● Most developers operate in near open loop mode,
focusing primarily on inputs and outputs and
occasionally using recent coarse feedback with
minimal analysis.
● The primary feedback used by most software
developers is compiler errors and test failures.
● If one were to identify most developer's corrective
methodology as a personal quality system, it
would be classified somewhere between ad hoc
and reactive.
Why is this the case??
9. Mike Dunn 2013.04.17
Status Quo
● The initial cause is education and training.
● Students aspiring to become software developers
are not taught that their ideal skill set is a craft that
can become predictable and be continuously
improved.
● Software developer interns and new hires are not
shown or taught that their ideal skill set is a craft
that can become predictable and be continuously
improved.
How are they to learn??
10. Mike Dunn 2013.04.17
Status Quo
While there are some star software developers and
some pockets of a craftsman culture, where is the
encouragement and momentum for software
developers to take a craftsman approach to software
development by using a closed loop personal
quality system??
11. Mike Dunn 2013.04.17
Post Status Quo
If we look at the activities of a software developer
and apply the same processes that a modern software
development team would use, each developer would
have a precise set of metrics that could be used for
continuous improvement of their craft.
The ideal solution is a formal process similar to Watts Humphrey's Personal
Software Process (PSP).
12. Mike Dunn 2013.04.17
Post Status Quo
It is time for folks to step up and proactively
promote the concept of a Software Craftsman.
Software Craftsmen use a closed loop personal
quality system that uses historical data analysis,
metrics, and personal performance data to
continuously improve their work products.
This will bolster the foundation of software
development teams.
13. Mike Dunn 2013.04.17
A Possible Software Craftsman Path
● The journey to becoming a Craftsman begins by
becoming an Apprentice, working under the close
supervision of a Craftsman or Master Craftsman.
● The next stop along the way is to become a
Journeyman, working under the loose supervision
of a Craftsman or Master Craftsman.
● Next step is to become a Craftsman under the
guidance of a Master Craftsman.
● Software Master Craftsman are the experts.
14. Mike Dunn 2013.04.17
Software Craftsman Journey
● Apprentice level concepts should be included
early in any software developer education.
● Concepts like personal discipline to plan and
assess one's own activities.
● The beginning could be as simple as keeping a
personal journal with specific logic points of data
entry and review.
15. Mike Dunn 2013.04.17
Software Craftsman Journey
● Software development education should deliver a
Journeyman capable of:
● Delivering work products with supervision.
● Using internalized processes for planning,
assessing, developing, testing, evaluating,and
improving their personal work products.
● The internalized processes are based on
principles that are adaptable to different
methodologies.
16. Mike Dunn 2013.04.17
Commentary
● The purpose here is not to propose a specific
methodology, but to raise awareness for the need.
● The reference concept of Craftsman may be lost
on today's generation – we can call it IGCSWWP2
or whatever.
● We just need to increase the emphasis and inertia
of solid individual development principles.
2
– InterGalactic Creator of SoftWare Work Products.
17. Mike Dunn 2013.04.17
Status Quo No More??
● Yes, some developers function as Software
Craftsmen.
● Yes, there are software groups that promote,
encourage, and train Software Craftsmen.
● But the momentum for individual Software
Craftsmanship pales in comparison to all of the
hype and hoopla for various team and project
methodologies that are being promoted.
● Can some of the momentum be redirected??