Software Craftsman, The: Professionalism, Pragmatism, Pride, 1st edition

Published by Pearson (December 12, 2014) © 2015

  • Sandro Mancuso
Products list
  • Available for purchase from all major ebook resellers, including InformIT.com
Products list

Details

  • A print text
  • Free shipping
  • Also available for purchase as an ebook from all major ebook resellers, including InformIT.com

This product is expected to ship within 3-6 business days for US and 5-10 business days for Canadian customers.

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.

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

Need help? Get in touch