Agile Software Engineering with Visual Studio - Sam Guckenheimer, Neno Loje

Agile Software Engineering with Visual Studio

From Concept to Continuous Feedback
Buch | Softcover
352 Seiten
2011 | 2nd edition
Addison-Wesley Educational Publishers Inc (Verlag)
978-0-321-68585-8 (ISBN)
36,30 inkl. MwSt
zur Neuauflage
  • Titel erscheint in neuer Auflage
  • Artikel merken
Zu diesem Artikel existiert eine Nachauflage
Using agile methods and the tools of Visual Studio 2010, development teams can deliver higher-value software faster, systematically eliminate waste, and increase transparency throughout the entire development lifecycle. Now, Microsoft Visual Studio product owner Sam Guckenheimer and leading Visual Studio implementation consultant Neno Loje show how to make the most of Microsoft’s new Visual Studio 2010 Application Lifecycle Management (ALM) tools in your environment.

 

This book is the definitive guide to the application of agile development with Scrum and modern software engineering practices using Visual Studio 2010. You’ll learn how to use Visual Studio 2010 to empower and engage multidisciplinary, self-managing teams and provide the transparency they need to maximize productivity. Along the way, Guckenheimer and Loje help you overcome every major impediment that leads to stakeholder dissatisfaction—from mismatched schedules to poor quality, blocked builds to irreproducible bugs, and technology “silos” to geographic “silos.”

 

Coverage includes
• Accelerating the “flow of value” to customers in any software project, no matter how large or complex
• Empowering high-performance software teams and removing overhead in software delivery
• Automating “burndowns” and using dashboards to gain a real-time, multidimensional view of quality and progress
• Using Visual Studio 2010 to reduce or eliminate “no repro” bugs
• Automating deployment and virtualizing test labs to make continuous builds deployable
• Using Test Impact Analysis to quickly choose the right tests based on recent code changes
• Working effectively with sources, branches, and backlogs across distributed teams
• Sharing code, build automation, test, project and other data across .NET and Java teams
• Uncovering hidden architectural patterns in legacy software, so you can refactor changes more confidently
• Scaling Scrum to large, distributed organizations

 

Whatever your discipline, this book will help you use Visual Studio 2010 to focus on what really matters: building software that delivers exceptional value sooner and keeps customers happy far into the future.

 

Foreword by Ken Schwaber



It is my honor to write a foreword for Sam’s book,  Agile Software Delivery with Visual Studio. Sam is both a practitioner of software development, as well as a scholar. I have worked with Sam for the last two years to merge Scrum with modern engineering practices and an excellent toolset, Microsoft’s VS 2010. We are both indebted to Aaron Bjork of Microsoft, who developed the Scrum template that instantiates Scrum in VS 2010 through the Scrum Template.

 

I do not want Scrum to be prescriptive. I left many holes, such as what as the syntax and organization of the Product Backlog, the engineering practices that turned Product Backlog items into a potentially shippable increment, and the magic that would create self-organizing teams. Sam has superbly described one way of filling in these holes in his book. He describes the techniques and tooling, as well as the rationale of the approach that he prescribes. He does this in detail, with scope and humor. Since I have worked with Microsoft since 2004 and Sam since 2009 on these practices and tooling, I am delighted. Our first launch was a course, the Professional Scrum Developer .NET course, that taught developers how to use solid increments using modern engineering practices on VS 2010 — working in self-organizing, cross-functional teams. Sam’s book is the bible to this course and more, laying it all out in detail and philosophy. If you are on a Scrum Team building software with .NET technologies, this is the book for you. If you are using Java, this book is compelling enough to read anyway, and maybe worth switching to .NET.

 

When we devised and signed the Agile Manifesto in 2001, our first value was “Individuals and interactions over processes and tools.”  Well, we have the processes and tools nailed for the Microsoft environment. In Sam’s book, we have something developers, who are also people, can use to understand the approach and value of the processes and tools. Now the really hard work, people. After twenty years of being treated as resources, becoming accountable, creative, responsible people is hard.  Our first challenge will be the people who manage the developers. They could use the metrics from the VS 2010 tooling to micro-manage the processes and developers, squeezing the last bit of creativity out and leaving Agility flat. Or, they could use the metrics from the tools to understand the challenges facing the developers. They could then coach and lead them to a better, more creative and productive place. This is the challenge of any tool. It may be excellent, but how it is used will determine its success.

 

Thanks for the book, Sam.



 



Praise for Agile Software Engineering with Visual Studio

“Agile dominates projects increasingly from IT to product and business development, and Sam Guckenheimer and Neno Loje provide pragmatic context for users seeking clarity and specifics with this book. Their knowledge of past history and current practice, combined with acuity and details about Visual Studio’s agile capabilities, enable a precise path to execution. Yet their voice and advice remain non-dogmatic and wise. Their examples are clear and relevant, enabling a valuable perspective to those seeking a broad and deep historical background along with a definitive understanding of the way in which Visual Studio can incorporate agile approaches.”
—Melinda Ballou, Program Director, Application Lifecycle Management and Executive Strategies Service, International Data Corporation (IDC)

 

“Sam Guckenheimer and Neno Loje have forgotten more about software development processes than most development `gurus’ ever knew, and that’s a good thing! In Agile Software Engineering with Visual Studio, Sam and Neno distill the essence of years of hard-won experience and hundreds of pages of process theory into what really matters—the techniques that high performance software teams use to get stuff done. By combining these critical techniques with examples of how they work in Visual Studio, they created a de-facto user guide that no Visual Studio developer should be without.”
—Jeffrey Hammond, Principal Analyst, Forrester Research

 

“If you employ Microsoft’s Team Foundation Server and are considering Agile projects, this text will give you a sound foundation of the principles behind its agile template and the choices you will need to make. The insights from Microsoft’s own experience in adopting agile help illustrate challenges with scale and the issues beyond pure functionality that a team needs to deal with. This book pulls together into one location a wide set of knowledge and practices to create a solid foundation to guide the decisions and effective transition, and will be a valuable addition to any team manager’s bookshelf.”
—Thomas Murphy, Research Director, Gartner

 

“This book presents software practices you should want to implement on your team and the tools available to do so. It paints a picture of how first class teams can work, and in my opinion, is a must read for anyone involved in software development. It will be mandatory reading for all our consultants.”
—Claude Remillard, President, InCycle


 

“This book is the perfect tool for teams and organizations implementing agile practices using Microsoft’s Application Lifecycle Management platform. It proves disciplined engineering and agility are not at odds; each needs the other to be truly effective.”
—David Starr, Scrum.org

 

“Sam Guckenheimer and Neno Loje have written a very practical book on how Agile teams can optimize their practices with Visual Studio. It describes not only how Agile and Visual Studio work, but also the motivation and context for many of the functions provided in the platform. If you are using Agile and Visual Studio, this book should be a required read for everyone on the team. If you are not using Agile or Visual Studio, then reading this book will describe a place that perhaps you want to get to with your process and tools.”
—Dave West, Analyst, Forrester Research

 

“Sam Guckenheimer and Neno Loje are leading authorities on agile methods and Visual Studio. The book you are holding in your hand is the authoritative way to bring these two technologies together. If you are a Visual Studio user doing agile, this book is a must read.”
—Dr. James A. Whittaker, Software Engineering Director Google

 

“Agile development practices are a core part of modern software development. Drawing from our own lessons in adopting agile practices at Microsoft, Sam Guckenheimer and Neno Loje not only outline the benefits, but also deliver a hands-on, practical guide to implementing those practices in teams of any size. This book will help your team get up and running in no time!”
—Jason Zander, Corporate Vice President, Microsoft Corporation

 

 

 

 

Sam Guckenheimer When I wrote the predecessor of this book, I had been at Microsoft less than three years. I described my history like this:I joined   Microsoft in 2003 to work on Visual Studio Team System (VSTS), the new product line that was just released at the end of 2005. As the group product planner, I have played chief customer advocate, a role that I have loved. I have been in the IT industry for twenty-some years, spending most of my career as a tester, project manager, analyst, and developer.   As a tester, I’ve always understood the theoretical value of advanced developer practices, such as unit testing, code coverage, static analysis, and memory and performance profiling. At the same time, I never understood how anyone had the patience to learn the obscure tools that you needed to follow the right practices.   As a project manager, I was always troubled that the only decent data we could get was about bugs. Driving a project from bug data alone is like driving a car with your eyes closed and only turning the wheel when you hit something. You really want to see the right indicators that you are on course, not just feel the bumps when you stray off it. Here, too, I always understood the value of metrics, such as code coverage and project velocity, but I never understood how anyone could realistically collect all that stuff.   As an analyst, I fell in love with modeling. I think visually, and I found graphical models compelling ways to document and communicate. But the models always got out of date as soon as it came time to implement anything. And the models just didn’t handle the key concerns of developers, testers, and operations.   In all these cases, I was frustrated by how hard it was to connect the dots for the whole team. I loved the idea in Scrum (one of the Agile processes) of a “single product backlog”—one place where you could see all the work—but the tools people could actually use would fragment the work every which way. What do these requirements have to do with those tasks, and the model elements here, and the tests over there? And where’s the source code in that mix?   From a historical perspective, I think IT turned the corner when it stopped trying to automate manual processes and instead asked the question, “With automation, how can we reengineer our core business processes?” That’s when IT started to deliver real business value.   They say the cobbler’s children go shoeless. That’s true for IT, too. While we’ve been busy automating other business processes, we’ve largely neglected our own. Nearly all tools targeted for IT professionals and teams seem to still be automating the old manual processes. Those processes required high overhead before automation, and with automation, they still have high overhead. How many times have you gone to a 1-hour project meeting where the first 90 minutes were an argument about whose numbers were right?   Now, with Visual Studio, we are seriously asking, “With automation, how can we reengineer our core IT processes? How can we remove the overhead from following good process? How can we make all these different roles individually more productive while integrating them as a high performance team?”   Obviously, that’s all still true.   Neno Loje I started my career as a software developer—first as a hobby, later as profession. At the beginning of high school, I fell in love with writing software because it enabled me to create something useful by transforming an idea into something of actual value for someone else. Later, I learned that this was generating customer value.   However, the impact and value were limited by the fact that I was just a single developer working in a small company, so I decided to focus on helping and teaching other developers. I started by delivering pure technical training, but the topics soon expanded to include process and people, because I realized that just introducing a new tool or a technology by itself does not necessarily make teams more successful.   During the past six years as an independent ALM consultant and TFS specialist, I have helped many companies set up a team environment and software development process with VS. It has been fascinating to watch how removing unnecessary, manual activities makes developers and entire projects more productive. Every team is different and has its own problems. I’ve been surprised to see how many ways exist (both in process and tools) to achieve the same goal: deliver customer value faster though great software.   When teams look back at how they worked before, without VS, they often ask themselves how they could have survived without the tools they use now. However, what had changed from the past were not only the tools, but also the way they work as a team.   Application Lifecycle Management and practices from the Agile Consensus help your team to focus on the important things. VS and TFS are a pragmatic approach to implement ALM (even for small, nondistributed teams). If you’re still not convinced, I urge you to try it out and judge for yourself.  

Foreword     xvii
Preface     xix
Acknowledgements      xxvi
About the Authors     xxvii


Chapter 1: The Agile Consensus      1
The Origins of Agile     1
Agile Emerged to Handle Complexity     2
Empirical Process Models      4
A New Consensus     4
Scrum     6
An Example     12
Summary     15
End Notes     16


Chapter 2: Scrum, Agile Practices, and Visual Studio     19
Visual Studio and Process Enactment      20
Process Templates     21
Process Cycles and TFS     23
Inspect and Adapt     36
Task Boards     36
Kanban     38
Fit the Process to the Project     39
Summary     42
End Notes     43


Chapter 3: Product Ownership     45
What Is Product Ownership?     46
Scrum Product Ownership     50
Release Planning     51
Qualities of Service     63
How Many Levels of Requirements     67
Summary     70
End Notes     70


Chapter 4: Running the Sprint     73
Empirical over Defined Process Control     75
Scrum Mastery     76
Use Descriptive Rather Than Prescriptive Metrics     81
Answering Everyday Questions with Dashboards     86
Choosing and Customizing Dashboards     94
Using Microsoft Outlook to Manage the Sprint      95
Summary     96
End Notes     96


Chapter 5: Architecture     99
Architecture in the Agile Consensus      100
Exploring Existing Architectures     103
Summary     121
End Notes     123


Chapter 6: Development     125
Development in the Agile Consensus     126
The Sprint Cycle     127
Keeping the Code Base Clean     128
Detecting Programming Errors Early     135
Catching Side Effects     152
Preventing Version Skew     160
Making Work Transparent     168
Summary     169
End Notes     171


Chapter 7: Build and Lab     173
Cycle Time     174
Defining Done     175
Continuous Integration     177
Automating the Build     179
Elimination of Waste     196
Summary     201
End Notes     202


Chapter 8: Test     203
Testing in the Agile Consensus     204
Testing Product Backlog Items     207
Actionable Test Results and Bug Reports     212
Handling Bugs     218
Which Tests Should Be Automated?     219
Automating Scenario Tests     220
Load Tests, as Part of the Sprint     225
Production-Realistic Test Environments      230
Risk-Based Testing     232
Summary     235
End Notes     236


Chapter 9: Lessons Learned at Microsoft Developer Division     239
Scale     240
Business Background     241
Improvements After 2005     245
Results     254
Law of Unintended Consequences     255
What’s Next?     259
End Notes     259


Chapter 10: Continuous Feedback     261
Agile Consensus in Action     262
The Next Version     263
Product Ownership and Stakeholder Engagement     264
Staying in the Groove     270
Testing to Create Value     275
TFS in the Cloud     275
Conclusion     276
End Notes     279


Index     281

Verlagsort New Jersey
Sprache englisch
Maße 230 x 179 mm
Gewicht 504 g
Themenwelt Mathematik / Informatik Informatik Software Entwicklung
ISBN-10 0-321-68585-7 / 0321685857
ISBN-13 978-0-321-68585-8 / 9780321685858
Zustand Neuware
Haben Sie eine Frage zum Produkt?
Mehr entdecken
aus dem Bereich
Entwurfsmuster für effektive Softwareentwicklung

von Karl Eilebrecht; Gernot Starke

Buch | Softcover (2024)
Springer Vieweg (Verlag)
19,99