Dewey Decimal005.3
Table Of ContentForeword 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
SynopsisIn 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., Be a Better Developer and Deliver Better Code 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.
LC Classification NumberQA76.76.D47M3614