Software Craftsman, The
Pearson (Verlag)
978-0-13-405250-2 (ISBN)
Despite advanced tools and methodologies, software projects continue to fail. Why? Too many organizations still view software development as just another production line. Too many developers feel that way, too—and they behave accordingly.
In The Software Craftsman: Professionalism, Pragmatism, Pride, Sandro Mancuso offers a better and more fulfilling path. If you want to develop software with pride and professionalism; love what you do and do it with excellence; and build a career with autonomy, mastery, and purpose, it starts with the recognition that you are a craftsman. Once you embrace this powerful mindset, you can achieve unprecedented levels of technical excellence and customer satisfaction.
Mancuso helped found the world’s largest organization of software craftsmen; now, he shares what he’s learned through inspiring examples and pragmatic advice you can use in your company, your projects, and your career.
You will learn
Why agile processes aren’t enough and why craftsmanship is crucial to making them work
How craftsmanship helps you build software right and helps clients in ways that go beyond code
How and when to say “No” and how to provide creative alternatives when you do
Why bad code happens to good developers and how to stop creating and justifying it
How to make working with legacy code less painful and more productive
How to be pragmatic—not dogmatic—about your practices and tools
How to lead software craftsmen and attract them to your organization
What to avoid when advertising positions, interviewing candidates, and hiring developers
How developers and their managers can create a true culture of learning
How to drive true technical change and overcome deep patterns of skepticism
Sandro Mancuso has coded for startups, software houses, product companies, international consultancies, and investment banks. In October 2013, he cofounded Codurance, a consultancy based on Software Craftsmanship principles and values. His involvement with Software Craftsmanship began in 2010, when he founded the London Software Craftsmanship Community (LSCC), now the world’s largest and most active Software Craftsmanship community, with more than two thousand craftsmen. For the past four years, he has inspired and helped developers to organize Software Craftsmanship communities throughout Europe, the United States, and the rest of the world.
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.
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
Reihe/Serie | Robert C. Martin Series |
---|---|
Sprache | englisch |
Maße | 180 x 230 mm |
Gewicht | 500 g |
Themenwelt | Informatik ► Software Entwicklung ► Agile Software Entwicklung |
ISBN-10 | 0-13-405250-1 / 0134052501 |
ISBN-13 | 978-0-13-405250-2 / 9780134052502 |
Zustand | Neuware |
Haben Sie eine Frage zum Produkt? |
aus dem Bereich