Software Craftsman, The: Professionalism, Pragmatism, Pride, 1st edition
Published by Pearson (December 14, 2014) © 2015
- Sandro Mancuso
eTextbook
- Available for purchase from all major ebook resellers, including InformIT.com.
- To request a review copy, click on the "Request a Review Copy" button.
- A print text (hardcover or paperback)
- Free shipping
- Also available for purchase as an ebook from all major ebook resellers, including InformIT.com
In The Software Craftsman, Sandro Mancuso explains what craftsmanship means to the developer and his or her organization, and shows how to live it every day in your real-world development environment. Mancuso shows how software craftsmanship fits with and helps students improve upon best-practice technical disciplines such as agile and lean, taking all development projects to the next level. Readers will learn how to change the disastrous perception that software developers are the same as factory workers, and that software projects can be run like factories.
- A manifesto for the reinvigorated Software Craftsmanship movement: how to become a better developer and deliver better code
- Offers exceptionally practical and actionable advice on improving software quality and project success rates
- Reveals what Software Craftsmanship means today, and why it's more important than ever
- The newest book in our internationally-respected Robert C. Martin Series
Foreword by Robert C. Martin xv
Preface xvii
Acknowledgments xxv
About the Author xxix
Part I: Ideology and Attitude 1
Chapter 1: Software Development in the Twenty-First Century 3
Seniority 5
A New Reality 6
Chapter 2: Agile 9
Process-Oriented Agile Disciplines 10
Technical-Oriented Disciplines 10
What Is It to Be Agile? 11
Agile Manifesto 12
The Agile Transformation Era 14
The Agile Hangover 14
Agile versus Software Craftsmanship 21
Summary 22
Chapter 3: Software Craftsmanship 23
A Better Metaphor 23
What Does Wikipedia Say? 24
A More Personal Definition 24
A Shorter Definition 24
Beyond Definitions 25
Craft, Trade, Engineering, Science, or Art 25
Software Craftsmanship History 26
Summary 39
Chapter 4: The Software Craftsmanship Attitude 41
Who Owns Your Career? 42
Keeping Ourselves Up to Date 44
Know Who to Follow 48
Practice, Practice, Practice 48
Socialize 54
Deliberate Discovery 55
Work-Life Balance 56
Summary 60
Chapter 5: Heroes, Goodwill, and Professionalism 61
Learning How to Say No 64
Providing Options 70
Enlightened Managers 74
Summary 75
Chapter 6: Working Software 77
Working Software Is Not Enough 78
Looking After Our Garden 79
The Invisible Threat 79
The Wrong Notion of Time 81
Legacy Code 88
Summary 91
Chapter 7: Technical Practices 93
The Right Thing versus the Thing Right 93
Context 94
Extreme Programming History 96
Practices and Values 97
Accountability 104
Pragmatism 105
Summary 106
Chapter 8: The Long Road 107
A Tale from a Brazilian Teenager 107
Focus and Determination 110
Job as Investment 111
Autonomy, Mastery, and Purpose 113
Career Inside Companies 114
Summary 115
Part II: A Full Transformation 117
Chapter 9: Recruitment 119
An Ordinary Job Description 120
Too Busy to Interview 122
No Job Descriptions 123
Recommendations 130
Community Involvement 130
Defining Effective Filtering Criteria 131
Proactive Recruitment 134
Summary 135
Chapter 10: Interviewing Software Craftsmen 137
A Business Negotiation 137
Identifying Productive Partnerships 138
Good Interviews 142
Taking a Punt 148
Hiring for an Existing Team versus Hiring for a New Team 149
Pre-Interview Coding Exercises 150
Everyone Should Know How to Interview 151
Developers Must Interview Developers 152
Summary 152
Chapter 11: Interview Anti-Patterns 153
Don’t Be a Smart-Ass Interviewer 153
Don’t Use Brainteasers 154
Don’t Ask Questions to Which You Don’t Know the Answers 154
Don’t Try to Make the Candidate Look Like a Fool 155
Don’t Block the Internet 156
Don’t Code on a Piece of Paper 156
Don’t Use Algorithms 157
Don’t Conduct Phone Interviews 157
Summary 158
Chapter 12: The Cost of Low Morale 159
The Agile Hangover: Low Morale 159
The Cost of Employing 9-to-5 Developers 161
Constrained by Lack of Motivation 164
Injecting Passion 165
Summary 167
Chapter 13: Culture of Learning 169
Wrong Motivation 170
Creating a Culture of Learning 171
What if Others Don’t Want to Join In? 179
Summary 182
Chapter 14: Driving Technical Changes 185
Identifying Skepticism Patterns 185
Be Prepared 189
Where Do We Start? 191
Fear and Incompetence 195
How Do I Convince My Manager? 196
How Do I Convince My Team to Do TDD? 197
Facing the Skeptics 198
Should We Really Care about All That? 205
Summary 205
Chapter 15: Pragmatic Craftsmanship 207
Quality Is Always Expected 207
Busting the “Expensive and Time-Consuming Quality” Myth 209
Refactoring 211
The “One Way” of Developing Software 212
Helping the Business 213
Software Projects Are Not about Us 217
Great versus Mediocre 217
Four Rules of Simple Design 218
Craftsmanship and Pragmatism 221
Summary 222
Chapter 16: A Career as a Software Craftsman 223
Being a Craftsman 224
Career Progression 225
Roads and Milestones 227
Job Diversity 231
The Mission 233
Appendix: Craftsmanship Myths and Further Explanations 235
Index 241
Sandro Mancuso has coded since a very young age but only started his professional career in 1996. He has worked for startups, software houses, product companies, international consultancy companies, and investment banks. In October 2013, Sandro cofounded Codurance, a consultancy company based on Software Craftsmanship principles and values.
During his career, Sandro has worked on various projects, with different languages and technologies and across many different industries. Sandro has a lot of experience bringing the Software Craftsmanship ideology and Extreme Programming practices to organizations of all sizes. Sandro is internationally renowned for his work in spreading Software Craftsmanship principles and is a renowned speaker at many conferences around the world. His professional aspiration is to raise the bar of the software industry by helping developers become better at–and care more about–their craft through sharing his knowledge, skills, and experiences.
Sandro’s involvement with Software Craftsmanship started in 2010, when he founded the London Software Craftsmanship Community (LSCC), which has become the largest and most active Software Craftsmanship community in the world, with more than 2,000 craftsmen. For the past four years he has inspired and helped developers to start and organize many other Software Craftsmanship communities in Europe, the United States, and other parts of the world.
Need help? Get in touch