Essential Skills for the Agile Developer
Home > Computing and Information Technology > Computer programming / software engineering > 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.

Review :
“I tell teams that the lean and agile practices should be treated like a buffet: Don’t try and take everything, or it will make you ill–try the things that make sense for your project. In this book the authors have succinctly described the ‘why’ and the ‘how’ of some of the most effective practices, enabling all software engineers to write quality code for short iterations in an efficient manner.” –Kay Johnson Software Development Effectiveness Consultant, IBM   “Successful agile development requires much more than simply mastering a computer language. It requires a deeper understanding of agile development methodologies and best practices. Essential Skills for the Agile Developer provides the perfect foundation for not only learning but truly understanding the methods and motivations behind agile development.” –R.L. Bogetti www.RLBogetti.com Lead System Designer, Baxter Healthcare   “Essential Skills for the Agile Developer is an excellent resource filled with practical coding examples that demonstrate key agile practices.” –Dave Hendricksen Software Architect, Thomson Reuters


Best Sellers


Product Details
  • ISBN-13: 9780321543738
  • Publisher: Pearson Education (US)
  • Publisher Imprint: Addison-Wesley Educational Publishers Inc
  • Height: 231 mm
  • No of Pages: 272
  • Series Title: Net Objectives Lean-Agile Series
  • Sub Title: A Guide to Better Programming and Design
  • Width: 178 mm
  • ISBN-10: 0321543734
  • Publisher Date: 22 Sep 2011
  • Binding: Paperback
  • Language: English
  • Returnable: N
  • Spine Width: 15 mm
  • Weight: 430 gr


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

    New Arrivals


    Inspired by your browsing history


    Your review has been submitted!

    You've already reviewed this product!