Buy Essential Skills for the Agile Developer - Bookswagon
close menu
Bookswagon
search
My Account
Home > Computer programming / software engineering > Essential Skills for the Agile Developer: A Guide to Better Programming and Design(Net Objectives Lean-Agile Series)
Essential Skills for the Agile Developer: A Guide to Better Programming and Design(Net Objectives Lean-Agile Series)

Essential Skills for the Agile Developer: A Guide to Better Programming and Design(Net Objectives Lean-Agile Series)


     0     
5
4
3
2
1



Out of Stock


Notify me when this book is in stock
X
About the Book

Agile has become today’s dominant software development paradigm, but agile methods remain difficult to measure and improve. Essential Skills for the Agile Developer fills this gap from the bottom up, teaching proven techniques for assessing and optimizing both individual and team agile practices.

 

Written by four principals of Net Objectives—one of the world’s leading agile training and consulting firms—this book reflects their unsurpassed experience helping organizations transition to agile. It focuses on the specific actions and insights that can deliver the greatest design and programming improvements with economical investment.

 

The authors reveal key factors associated with successful agile projects and offer practical ways to measure them. Through actual examples, they address principles, attitudes, habits, technical practices, and design considerations—and above all, show how to bring all these together to deliver higher-value software. Using the authors’ techniques, managers and teams can optimize the whole organization and the whole product across its entire lifecycle.

 

Essential Skills for the Agile Developer shows how to

 

  • Perform programming by intention
  • Separate use from construction
  • Consider testability before writing code
  • Avoid over- and under-design
  • Succeed with Acceptance Test Driven Development (ATDD)
  • Minimize complexity and rework
  • Use encapsulation more effectively and systematically
  • Know when and how to use inheritance
  • Prepare for change more successfully
  • Perform continuous integration more successfully
  • Master powerful best practices for design and refactoring


Table of Contents:
Series Foreword xvii

Preface xxi

Acknowledgments xxiii

About the Authors xxv

 

Part I: The Core Trim Tabs 1

 

Chapter 1: Programming by Intention 3

Programming by Intention: A Demonstration 3

Advantages 6

Summary 18

 

Chapter 2: Separate Use from Construction 21

An Important Question to Ask 21

Perspectives 22

Timing Your Decisions 30

Overloading and C++ 31

Validating This for Yourself 32

Summary 33

 

Chapter 3: Define Tests Up Front 35

A Trim Tab: Testing and Testability 35

What Is Testing? 35

Testability and Code Quality 36

Case Study: Testability 37

A Reflection on Up-Front Testing 39

Summary 44

 

Chapter 4: Shalloway’s Law and Shalloway’s Principle 45

Types of Redundancy 46

Redefining Redundancy 46

Other Types of Redundancy 47

The Role of Design Patterns in Reducing Redundancy 48

Few Developers Spend a Lot of Time Fixing Bugs 48

Redundancy and Other Code Qualities 50

Summary 52

 

Chapter 5: Encapsulate That! 53

Unencapsulated Code: The Sabotage of the Global Variable 53

Encapsulation of Member Identity 54

Self-Encapsulating Members 56

Preventing Changes 58

The Difficulty of Encapsulating Reference Objects 59

Breaking Encapsulation with Get() 62

Encapsulation of Object Type 64

Encapsulation of Design 67

Encapsulation on All Levels 69

Practical Advice: Encapsulate Your Impediments 69

Summary 72

 

Chapter 6: Interface-Oriented Design 75

Design to Interfaces 75

Definition of Interface 75

Interface Contracts 76

Separating Perspectives 77

Mock Implementations of Interfaces 79

Keep Interfaces Simple 79

Avoids Premature Hierarchies 80

Interfaces and Abstract Classes 81

Dependency Inversion Principle 82

Polymorphism in General 83

Not for Every Class 84

Summary 84

 

Chapter 7: Acceptance Test—Driven Development (ATDD) 85

Two Flows for Development 85

Acceptance Tests 88

An Example Test 88

Implementing the Acceptance Tests 90

An Exercise 95

What to Do If the Customer Won’t Tell You 95

Summary 96

 

Part II: General Attitudes 97

 

Chapter 8: Avoid Over- and Under-Design 99

A Mantra for Development 99

The Pathologies of Code Qualities 100

Avoid Over- and Under-Design 101

Minimize Complexity and Rework 102

Never Make Your Code Worse/Only Degrade Your Code Intentionally 102

Keep Your Code Easy to Change, Robust, and Safe to Change 103

A Strategy for Writing Modifiable Code in a Non-Object-Oriented or Legacy System 103

Summary 107

 

Chapter 9: Continuous Integration 109

Branching the Source Code 109

The Merge-Back 115

Test-Driven Development and Merge Cost 117

Continuous Integration 119

Continuous Integration Servers 121

Summary 122

 

Part III: Design Issues 125

 

Chapter 10: Commonality and Variability Analysis 127

Using Nouns and Verbs as a Guide: Warning, Danger Ahead! 127

What Is the Real Problem? 130

What We Need to Know 131

Commonality and Variability Analysis 132

A New Paradigm for Finding Objects 134

The Analysis Matrix: A Case Study 136

Summary 145

 

Chapter 11: Refactor to the Open-Closed 147

The Open-Closed Principle 147

Refactoring 154

Summary 161

 

Chapter 12: Needs versus Capabilities Interfaces 163

The Law of Demeter 163

Coupling, Damned Coupling, and Dependencies 166

The Ideal Separation: Needs Interfaces and Capabilities Interfaces 168

Back to the Law of Demeter 169

Summary 171

 

Chapter 13: When and How to Use Inheritance 173

The Gang of Four 173

Initial Vectors, Eventual Results 176

Favoring Delegation 178

The Use of Inheritance versus Delegation 180

Uses of Inheritance 181

Scalability 183

Applying the Lessons from the Gang of Four to Agile Development 184

Testing Issues 185

There’s More 187

 

Part IV: Appendixes 189

 

Appendix A: Overview of the Unified Modeling Language (UML) 191

What Is the UML? 191

The Class Diagram 192

Sequence Diagram 198

Summary 200

 

Appendix B: Code Qualities 201

Christmas-Tree Lights: An Analogy 201

Cohesion 204

Coupling 205

Redundancy 207

Encapsulation 208

 

Appendix C: Encapsulating Primitives 211

Encapsulating Primitives in Abstract Data Types 211

Principles 212

Narrow the Contract 213

Expanding Abstract Data Types 214

Use Text as External Values 215

Enumerations Instead of Magic Values 217

Disadvantages 218

Summary 219

 

Index 221



About the Author :
Alan Shalloway, founder and CEO of Net Objectives, is a renowned thought leader, trainer, and coach in Lean, Kanban, product portfolio management, Scrum, and agile design. His books include Lean-Agile Software Development (Addison-Wesley, 2009), Lean-Agile Pocket Guide For Scrum Teams (Lean-Agile Press, 2009), and both editions of Design Patterns Explained (Addison-Wesley, 2001 and 2004).

 

Scott Bain, senior consultant at Net Objectives, is a 35+-year veteran in software development, engineering, and design. He authored the Jolt award-winning book Emergent Design (Addison-Wesley, 2008).

 

Ken Pugh, a fellow consultant at Net Objectives, helps companies move to Lean-Agility through training and coaching. His books include Lean-Agile Acceptance Test Driven Development (Addison-Wesley, 2011) and the Jolt Award-winner Prefactoring (O’Reilly, 2005).

 

Amir Kolsky is a senior consultant, coach, and trainer for Net Objectives with more than 25 years of experience.


Best Sellers


Product Details
  • ISBN-13: 9780321700438
  • Publisher: Pearson Education (US)
  • Publisher Imprint: Addison-Wesley Educational Publishers Inc
  • Language: English
  • Series Title: Net Objectives Lean-Agile Series
  • Weight: 1 gr
  • ISBN-10: 0321700430
  • Publisher Date: 18 Aug 2011
  • Binding: Digital download
  • No of Pages: 272
  • Sub Title: A Guide to Better Programming and Design


Similar Products

Add Photo
Add Photo

Customer Reviews

REVIEWS      0     
Click Here To Be The First to Review this Product
Essential Skills for the Agile Developer: A Guide to Better Programming and Design(Net Objectives Lean-Agile Series)
Pearson Education (US) -
Essential Skills for the Agile Developer: A Guide to Better Programming and Design(Net Objectives Lean-Agile Series)
Writing guidlines
We want to publish your review, so please:
  • keep your review on the product. Review's that defame author's character will be rejected.
  • Keep your review focused on the product.
  • Avoid writing about customer service. contact us instead if you have issue requiring immediate attention.
  • Refrain from mentioning competitors or the specific price you paid for the product.
  • Do not include any personally identifiable information, such as full names.

Essential Skills for the Agile Developer: A Guide to Better Programming and Design(Net Objectives Lean-Agile Series)

Required fields are marked with *

Review Title*
Review
    Add Photo Add up to 6 photos
    Would you recommend this product to a friend?
    Tag this Book Read more
    Does your review contain spoilers?
    What type of reader best describes you?
    I agree to the terms & conditions
    You may receive emails regarding this submission. Any emails will include the ability to opt-out of future communications.

    CUSTOMER RATINGS AND REVIEWS AND QUESTIONS AND ANSWERS TERMS OF USE

    These Terms of Use govern your conduct associated with the Customer Ratings and Reviews and/or Questions and Answers service offered by Bookswagon (the "CRR Service").


    By submitting any content to Bookswagon, you guarantee that:
    • You are the sole author and owner of the intellectual property rights in the content;
    • All "moral rights" that you may have in such content have been voluntarily waived by you;
    • All content that you post is accurate;
    • You are at least 13 years old;
    • Use of the content you supply does not violate these Terms of Use and will not cause injury to any person or entity.
    You further agree that you may not submit any content:
    • That is known by you to be false, inaccurate or misleading;
    • That infringes any third party's copyright, patent, trademark, trade secret or other proprietary rights or rights of publicity or privacy;
    • That violates any law, statute, ordinance or regulation (including, but not limited to, those governing, consumer protection, unfair competition, anti-discrimination or false advertising);
    • That is, or may reasonably be considered to be, defamatory, libelous, hateful, racially or religiously biased or offensive, unlawfully threatening or unlawfully harassing to any individual, partnership or corporation;
    • For which you were compensated or granted any consideration by any unapproved third party;
    • That includes any information that references other websites, addresses, email addresses, contact information or phone numbers;
    • That contains any computer viruses, worms or other potentially damaging computer programs or files.
    You agree to indemnify and hold Bookswagon (and its officers, directors, agents, subsidiaries, joint ventures, employees and third-party service providers, including but not limited to Bazaarvoice, Inc.), harmless from all claims, demands, and damages (actual and consequential) of every kind and nature, known and unknown including reasonable attorneys' fees, arising out of a breach of your representations and warranties set forth above, or your violation of any law or the rights of a third party.


    For any content that you submit, you grant Bookswagon a perpetual, irrevocable, royalty-free, transferable right and license to use, copy, modify, delete in its entirety, adapt, publish, translate, create derivative works from and/or sell, transfer, and/or distribute such content and/or incorporate such content into any form, medium or technology throughout the world without compensation to you. Additionally,  Bookswagon may transfer or share any personal information that you submit with its third-party service providers, including but not limited to Bazaarvoice, Inc. in accordance with  Privacy Policy


    All content that you submit may be used at Bookswagon's sole discretion. Bookswagon reserves the right to change, condense, withhold publication, remove or delete any content on Bookswagon's website that Bookswagon deems, in its sole discretion, to violate the content guidelines or any other provision of these Terms of Use.  Bookswagon does not guarantee that you will have any recourse through Bookswagon to edit or delete any content you have submitted. Ratings and written comments are generally posted within two to four business days. However, Bookswagon reserves the right to remove or to refuse to post any submission to the extent authorized by law. You acknowledge that you, not Bookswagon, are responsible for the contents of your submission. None of the content that you submit shall be subject to any obligation of confidence on the part of Bookswagon, its agents, subsidiaries, affiliates, partners or third party service providers (including but not limited to Bazaarvoice, Inc.)and their respective directors, officers and employees.

    Accept

    Fresh on the Shelf


    Inspired by your browsing history


    Your review has been submitted!

    You've already reviewed this product!
    Your IP: 216.73.216.138 IN