Download presentation
Published byHolly Dawson Modified over 9 years ago
1
Software Craftsmanship Raising the bar for software development
Southern Fried Agile October 2015
2
Who am I? Chris Mair Software developer/architect at Wells Fargo.
Open source: CodeNarc, GMetrics and MockFtpServer projects; Uptime Jenkins plugin.
3
What is Craftsmanship? Long journey to mastery
4
What is Craftsmanship? Improving Software Development Gaining mastery
5
What is Craftsmanship? More than just “high-quality work”
Mindset and attitude
6
What is Craftsmanship? Reputation Integrity
7
What is Craftsmanship? Long-term career
8
A Brief History The Pragmatic Programmer, 1999
Software Craftsmanship, 2001 Manifesto for Software Craftsmanship, 2009 The Clean Coder, 2011 The Software Craftsman, 2014
9
The Pragmatic Programmer:
From Journeyman to Master Andrew Hunt and David Thomas, 1999
10
The Pragmatic Programmer
Care about our craft Sign our work
11
The Pragmatic Programmer
Options, not excuses Knowledge portfolio
12
The Pragmatic Programmer
Culture of testing Responsibility
13
Software Craftsmanship:
The New Imperative Pete McBreen, 2001
14
Software Craftsmanship
Antidote for software engineering Developer skill and experience
15
Software Craftsmanship
Developer portfolio Maintainability Apprenticeship
16
Software Craftsmanship
Controversial Longevity
17
Software Craftsmanship
Controversial Outsourcing
18
Software Craftsmanship
Controversial Maintenance is high-status Right of refusal
19
A Code of Conduct for Professional Programmers
The Clean Coder: A Code of Conduct for Professional Programmers Robert C. Martin, 2011
20
The Clean Coder Craftsmanship Professionalism Responsibility Humility
21
The Software Craftsman: Professionalism, Pragmatism, Pride
Sandro Mancuso, 2014
22
The Software Craftsman
Technical excellence Care for your craft Invest in your career
23
The Software Craftsman
Sharing Mentoring
24
The Software Craftsman
Controversial “Many Agile projects are now, steadily and iteratively, producing crap code.”
25
Why? Agile hangover
26
Why? Lack of technical excellence
27
Why? Poor design and sloppy code Lack of confidence
28
Why? Software must remain easy, safe and inexpensive to change.
29
Why? Culture Quality and maintainability
30
Why? Autonomy Mastery Purpose
31
Values Professionalism Integrity Responsibility Reputation
Continuous learning Pragmatism Humility
32
Professionalism Say “no” when necessary
Clear and unambiguous commitments Mentoring
33
Professionalism Controversial Learn and practice on your own time
34
Professionalism Controversial Manage your own time
35
Professionalism “I didn’t say it was your fault,
I said I was blaming you.” – Winston Churchill
36
Professionalism Controversial Is good code impossible?
37
Professionalism Controversial Is good code impossible?
38
Professionalism Controversial A series of unfortunate events…
39
Professionalism Controversial A series of unfortunate events…
40
Integrity Adherence to principles and values Courage
41
Responsibility Personal responsibility For your work
For your personal development For your profession
42
Responsibility Responsibility accepted, not assigned
43
Reputation Quality Successful projects Satisfied customers
44
Continuous Learning Read Practice Fail
45
Pragmatism “Idealism is fine, but the cost becomes prohibitive as it approaches reality” – William F. Buckley
46
“Nothing so needs reforming as other people’s habits.”
Humility “Nothing so needs reforming as other people’s habits.” – Mark Twain
47
Humility Honest about shortcomings Respect for others
48
Practices Consistent Shaped by values
49
Extreme Programming Software development discipline
Values, principles and practices
50
Extreme Programming Test-Driven Development (TDD) Pair Programming
Refactoring Continuous Integration Coding Standard Sustainable Pace …
51
Adopting Practices Productivity
52
Automated Testing Engineering rigor; hygiene Required
53
Automated Testing Controversial Not a separate task
54
Automated Testing Defect Cost Increase (DCI)
55
Automated Testing Testing is a skill Testing improves design
56
Automated Testing
57
Automated Testing Manual testing
58
Other Stuff …
59
Code Quality Productivity Transparency Procrastination
60
Code Quality Quality is always expected!
61
Legacy Code Scary codebase Tests and “seams”
Working Effectively with Legacy Code Tests and “seams”
62
Your Career
63
Your Career Controversial Getting promoted away from your craft
64
Managers Collaboration Enlightened managers Transparency
65
Compensation Controversial Pay based on value
66
Compensation Controversial More valuable than managers
67
Craftsmanship vs Agile
Complementary Process versus technical discipline Building the right thing; building it right
68
The Manifesto for Software Craftsmanship
2009
69
The Manifesto for Software Craftsmanship
“As aspiring Software Craftsmen we are raising the bar of professional software development by practicing it and helping others learn the craft. Through this work we have come to value:”
70
The Manifesto for Software Craftsmanship
“Not only working software, but also well-crafted software”
71
The Manifesto for Software Craftsmanship
“Not only responding to change, but also steadily adding value”
72
The Manifesto for Software Craftsmanship
“Not only individuals and interactions, but also a community of professionals”
73
The Manifesto for Software Craftsmanship
“Not only customer collaboration, but also productive partnerships”
74
Criticisms of Manifesto
Impossible to disagree
75
General Criticisms Romantic notions and nostalgia
76
General Criticisms Prima donnas
77
Challenges Developer discipline
78
Challenges Customer responsibility Economics
79
Challenges “Adolescent surety”
80
Challenges Internal quality
81
Call to Action Raise the bar
82
Call to Action
83
Call to Action Passion and Mentoring
84
Call to Action Maintenance as a high-status job
85
Call to Action Technical practices
86
Call to Action Testable and maintainable
87
Call to Action Skepticism and resistance
88
That’s All Folks… Thank you
89
References Extreme Programming Explained: Embrace Change, 2nd Edition, Kent Beck, and Cynthia Andres, Addison Wesley, 2004. Working Effectively with Legacy Code, Michael Feathers, Prentice Hall, 2004. The Pragmatic Programmer: From Journeyman to Master, Andrew Hunt and David Thomas, Addison- Wesley, 1999 The Software Craftsman: Professionalism, Pragmatism, Pride, Sandro Mancuso, Prentice Hall, 2014 Software Craftsmanship: The New Imperative, Pete McBreen, Addison-Wesley, 2001 The Clean Coder, Robert C. Martin, Prentice Hall, 2011 Drive: The Surprising Truth About What Motivates Us, Daniel Pink, Riverhead Books, 2011. “Programming is not a Craft”, Dan North, 2011 ( craft/) The Manifesto of Software Craftsmanship, 2009 (
90
Image Credits
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.