Showing posts with label Book review. Show all posts
Showing posts with label Book review. Show all posts

Tuesday, October 4, 2011

High Performance Operations book review

I had the pleasure and honor of receiving an advance copy of Hillel Glazer's book High Performance Operations for review. What follows is my unbiased opinion.

This book is bout an approach to make of compliance an actual competitive advantage through an integration of "cultural/psychological and interpersonal matters, service, and systems engineering". Hillel calls it Process Solutioneering. Hillel's writing style is very enjoyable and engaging.

As the title implies, the book focuses on compliance aspects that have to do with operations. Very important aspects that way too often affect organizations because of misconceptions on compliance are addressed here. For example, I recently had a customer who has a CMMI process that is making it take over a month of work on a task that requires less than one week of DB work and less than 30 min of coding in java. Hillel points this kind of situation as a common behavior because many companies do not count with compliance methods that scale to the work at hand. He also mentions bureaucracy, personal interests, operational complexity and other.


The core aspect of the book is it offers a set of patterns to keep compliance while at the same time also improving operational performance to gain competitive advantage.


The book begins with a motivation and an overview that provide a comprehensive fly-by of the entire book. Chapter four introduces the "how". 10 necessary factors that must exist in an organization to achieve excellence in high performance operations. Chapter 5 is about time, quality and money from the perspective of regulation and compliance and about mind setting. We should focus on guiding out thoughts and actions in the desired direction, not on thinking about avoidance of unwanted direction. Chapter 6 is about people and organizations focusing on compliance for the sake of status. Be it to show off or to get more contracts but not to really improve. It also talks about value streams and their economic impact at compliance level. Chapter 7 is about understanding the right purpose of compliance practices, which goes way beyond the verbatim application of the practices. On Chapter 8 Hillel introduces a 5-step-action "procedure to better understand the wisdom behind the practices stemming from compliance requirements". Chapter 9 is about value. this is a particularly attractive topic to me because it is focal to what my own business is about. HIllel's perspective is well-aligned in that it considers the business and customer facing value. Chapter 10 is a follow up of Chapter 9 on which he provides a guide to identify the operational system and explains the importance of performance management quantification to sustain value. My interpretation of chapters 11 to 15 is they are the set that covers Operational Excellence considering the systems engineering, service, and cultural/psychological and interpersonal matters. Chapters 16 to 18 are the wrap up. How to check the business performance and improvements, An integrated architecture that includes human factors and infrastructure. And what to expect when you do all this.

In conclusion. The book is not a technical masterpiece (it isn't intended to be so) nor a recipe to follow step-by-step. It is a combination of awareness booster and guidance to take as a foundation to modify the organization's behavior surrounding compliance.


I recommend this to all organizations that operate, or are considering to operate, under some sort of governance.




You can learn more about this topic at http://www.hillelglazer.com/

Thursday, December 23, 2010

Book Review: Continuous Delivery

Book: Continuous Delivery

Authors: Jez Humble and David Farley.

Addison Wesley, 2011

I had two simultaneous impressions when I browsed Continuous Delivery. The first impression was “is there anything really new here?” and the second was “humm… I have actually never seen a book that puts together all these topics that do have an important relationship.” Throughout my career I encountered over and over the continuous struggle between diverse teams to successfully develop and deliver software. Communication, coordination, and collaboration have always been an often-ignored important factor that affects the effectiveness of organizations. Add to that the lack of a coherent infrastructure to make design, development, testing, integration, and deployment fit seamlessly and the end result is the nightmares way too many organizations deal with on a daily basis. I decided to read on because I appreciate the importance and complexity of those issues, years ago when I built QA organizations for diverse companies, and the last couple of years coaching and consulting enterprises in the adoption of Lean-Agile practices and the importance of Value Innovation.

Jez and David did a very good job at addressing the infrastructure coherence issues and propose effective ways to bring order. The novel aspect is not the fact that, say, good configuration management, continuous integration, and testing are very important to the increase of software quality, and to both managers and engineers mental health. The value is in the way to make this happen successfully and with minimal effort. They rightfully use the term Delivery Ecosystem and put together innovative thinking with strong bases on the importance to optimize the entire process, increasing quality, reducing technical debt and, best of all, making work life easier to technical stakeholders. The single automated pipeline approach is in agreement with current practices influenced by Lean and Agile.

Part 1 is a very god compendium of practices necessary to every software development organization, which the authors present as the challenges to deliver software. Jezz and David begin by presenting some release antipatterns and what to do about them. Then they address configuration management and continuous integration, where they describe diverse types and practices, pointing out essential characteristics and making suggestions to make them more effective. The last chapter of this part points out the importance of testing and explains it in terms of the test quadrants as proposed by Brian Marick and mention some real life situations.

Part 2 focuses on the deployment pipeline. Jez and David begin with its components—or anatomy—from practices to its stages. They did they right thing by including automated and manual test strategies. The following chapter focuses on scripting for build and deployment by first mentioning some build tools and then guiding the reader by the hand on the basics to get builds and deployments automated; and is complemented by a short chapter on the commit stage wraps it up. The next two chapters focus on testing, automated acceptance and nonfunctional requirements. These topics are not comprehensive due to the extent and complexity of the topics but the authors made a good job at bringing the key factors to motivate the reader to understand their importance and to explore further. This part is concluded with a chapter on deployment; an activity taken way to lightly most of the times and a main point of failure for most organizations. The authors cover zero-downtime releases, emergency fixes, and other.

The last part of the book is on the delivery ecosystem. This is the most important part of the book. I would say that very senior leaders and very senior technical staff with rich, broad and in-depth experience may be able to browse through Parts 1 and 2, but should slow down and read in more detail this part. This is the glue that puts things together.

Concluding. This is a vey good boo that should’ve been written many years ago to avoid so much waste and pain by so many technical organizations because it puts diverse parts of the software development organization puzzle together in a way they actually fit together. The only aspect I wish was also there, but isn’t, is the human factor. That is, how to get not only the complexity of processes and infrastructure to work together coherently, but also how to get the people behind the process and infrastructure to also work together coherently. In any case, that wasn’t an objective of this book.

Wednesday, May 19, 2010

Book Review: Kanban: Successful Evolutionary Change for Your Technology Business

It is very rare to find a good technical book that is also a good management book and addresses both aspects in a balanced way. But what really makes one's chin drop is finding a book that goes beyond the methodological, the mechanical, and the administrative aspects to address the ever so important--but way too often ignored--human aspects required to make a project successful. David's is such a book.

Kanban is a relatively new lean-agile method that allows teams and the projects they work on to be built in a true continuous flow manner in which improvements over the product being built and over the process itself occur. I indicted it is relatively new because its origins started back in 2004 as David writes on chapter 4. David is the person behind the creation and evolution of Kanban as a mechanism for software development. Although Kanban started in manufacturing, it has evolved to become rather unique in many aspects so don't expect a 1:1 mapping. Meaning, you should read this book cover-to-cover to get full benefits.

Part One describes David's journey of revelation to develop the Kanban model and explains why Kanban is a very effective method. In many ways it is due to its ease of acceptance, adoption, and the highly collaborative and communicative nature that allows people to bring change and evolution to processes what makes it successful.

Part Two explains the basics of Kanban as a mechanism. From work-in-progress to lead time, figuring the right cadence to maximize productivity, and prioritization; all of them paramount factors to mature enterprises. Using the case of an IT division from Microsoft, David explains how Kanban made the best out of the worst department at a division of Microsoft's IT division. Kanban brought high visibvility to the issues that affected the department and through waste elimination, limitation of work-in-progress, adequate policies, and cadence the department became amazingly successful. The last chapter treats in detail the importance of generating a culture of continuous improvement within an organization.

Part Three is the core of the book and explains how to implement Kanban. It introduces Value Stream Maps from a kanban perspective and goes into full detail on how to create a kanban board, the anatomy of the cards, and how to treat aspects such as concurrency and unordered activities, which are hard to deal with under other methodologies. How to use the board as a control and pull system as well as an scalable mechanism for daily standups is treated on Chapter 7. True sustainable pace is explained on chapters 8 and 9. Chapter 10 provides some strategies to limit the work-in-progress. One key factor in the communication within and outside the team are the service level agreements and are explained on chapter 11. Kanban metrics are particularly useful and fun to use, as shown on chapter 12. A problem with most methodologies is that they do not scale well. Kanban is better suited for such situations and chapter 13 gives insights on how to do that. The last two chapters focus on operational and strategy issues to increase its effectiveness and adoption.

Par Four is the next-step. That is, once you have a functional kanban mechanism in place at your organization here's how to make it evolutionary to create significant impact at the organization. Consider eliminating or at least reducing bottlenecks, waste and variability; better usage of resources; identifying wasteful activities; understanding and treating variability; and the importance of properly treating blocked work.

I introduced Kanban to a financial institution recently and even use it as an administrative tool for ma work and personal activities. The results have been no less than awesome.

Friday, March 19, 2010

Book review: Innovation Games

Everybody wants to better their businesses and make serious efforts to do so, but maybe we could be more effective is the efforts were less serious and more fun. Business communication is always challenging within the organization, with customers, providers, contractors, etc.. This is in part because they are not face-to-face and because most times one or more people who could add significant value take a passive role, in part because most times there is someone who enjoys dominating the meeting. End result is incomplete and biased information and decisions.

One main reason why games work is because (a) they are fun, and (b) they make everybody to actively participate. Hohmann's book is a great starting point. The games cover diverse needs and conducted properly add significant value (and save costs) to teams, projects, and entire enterprises.

Don't get serious... instead, start using this book!

Wednesday, January 6, 2010

Book review: Agile Testing by Lisa Crispin and Janet Gregory

Agile testing is a great book to both new and seasoned test engineers and test managers. At 533 pages, the book might feel a bit heavy but it is actually a pretty light and practical read if you read it to get a solid foundation on agile testing and then as reference. Note that the book is not about test coding techniques.

Part I is an introduction to agile testing and proposes ten principles for agile testers. What I don't know is if there are really 10 principles or if Crispin and Gregory forced it to be that specific number because it sounds better than 9 or 11. In any case, this chapter is a must read for all. Part II discusses organizational challenges, specifically cultural, logistical, and transitional from typical processes. This is a must-read for managers and team leads, and highly advisable for engineers if you want to have a successful test organization fully integrated with an agile organization. I personally encourage the division between development and testing to disappear completely. Part III is about he testing quadrants proposed by Brian Marick (one of the Agile Manifesto signatories) a while back. This is the first time I see the quadrants treated in larger detail and highly recommend it as a must for all.

Part IV is about test automation. It is a good read to understand the advantages of test automation and proposes a test automation strategy. This is a good starting point for test organizations that are new to automation but for mature test automation organizations it might add little value. Test code writing techniques are beyond the scope of this book. Part V illustrates the previous parts and then some by following a tester's activities through an agile iteration and the activities prior to it.

One problem I see way too often in test organizations and the way companies treat their test organizations is due to a lack of understanding not only of the difference between Quality Assurance and testing but also because of the place testing has hi people's minds. This book is a big help to create a cultural shift for the better.

Tuesday, January 5, 2010

Book review: Agile Project Management: Creating Innovative Products (2nd Ed.) by Jim Highsmith

Jim Highsmith is one of those few people that have really been-there-done-that and continue to be a pleasure to meet, accessible and down-to-earth. But anyway, this review is about his new book and not about him so I'll get to it. From my perspective Agile Project Management has two accomplishments: It fills in the gaps left by other books on the same subject and brings us one step further on different ways to see and approach the way we manage agile projects, within and outside software development.

Chapter 1 contains one of the best introductory chapters I've seen in any book on management. It is both a great motivation to read the rest of the book with interesting real cases. This chapter also refreshes the audience on the basics of agile, including the declaration of interdependence, which is explained in detail throughout the book, and provides some lesser known and relatively recent basis such as the Agile Triangle (not the Agile Iron Triangle).

Chapters 2, 3 and 4 are a detailed study of leadership values: Value over Constraints, Teams over Tasks, and Adapting over conforming. Similar to the agile values in the manifesto, these invite a cultural change in the way we measure project performance, lead teams, and focus on customer needs. Highsmith explains how the quality of the product and the work environment is improved through these. He also emphasizes on the fact that fail-often-fail-early is of very hight value in building a successful agile organization.

Chapter 5 has two objectives, to introduce an agile enterprise framework consisting of four layers that is arguably more appealing to large organizations, and to introduce an agile delivery framework consisting of five phases. That Agile Delivery Framework is explained in higher detail within the following 5 chapters, one per phase: envision, speculate, explore, adapt, and close. The last part of this chapter provides important practical information on the delivery framework. Chapter 6 has one of the best prep work descriptions you might be able to find and includes a project data sheet and the Tradeoff Matrix, which you might find useful. Chapter 7 digs into the speculate phase. Its contents are useful for those new to agile but not necessarily for those familiar with its basics since it explains fundamentals such as the backlog and story cards. Chapter 8 is about release planning. It introduces some planning strategies and a product planning structure that goes from the roadmap to the iteration. I recommend everybody to read this chapter since it has a bundle of snippets of useful information. Chapter 9 explains the explore phase and includes iteration planning, estimating, management and monitoring. It also talks briefly about technical debt, continuous integration and refactoring at a level good for managers but too light for for technical people. A good portion of the chapter is dedicated to coaching, one of the best parts of the book. Chapter 10 deals with the last two phases: adapt and close. It discusses how diverse activities usually considered secondary are of great importance to successfully fulfill customer needs and rapidly adapt to add value, increase quality, improve performance, and have a realistic view of the project status.

Chapter 11 is about scaling agile projects. Scaling has been a hot topic within the agile community during the last couple of years and Highsmith takes the opportunity to introduce an agile scaling model within the software development organization (other areas of an organization are beyond the scope of the book). scaling is treated at both size and distance levels, which increase the level of uncertainty and complexity. The model has five components: business goals, agile values, the organization, the product backlog and processes. The last three of these are treated differently at product, project, and feature level. I recommend you to read this chapter even if you work with a small team because there is value in understanding what works in the small and what works in the large. It may help you improve what you do in the small.

Highsmith does a great job discussing on chapter 12 how to do governance within agile projects, an aspect most small companies might not have to worry about but most mid to large organizations have to. Chapter 13 is an overview of metrics at a high level. If you want to learn about this topic in technical detail you are better off reading other books such as the David J Anderson's book on agile management and conference proceedings. Chapter 14 is a rather motivational reading on the value of agile

In conclusion, this is a book of high value to get up to speed on agile project management and learn more, recent advances in agile that are useful beyond software development and both in the small and in the large. Although the book doesn't advocate a particular agile development framework it leans mostly towards scrum.

Wednesday, December 30, 2009

Book Review: Lean-Agile Software Development: Achieving Enterprise Agility

Authors: Alan Shalloway, Guy Beaver and James R. Trott.

Between December of 2008 and April of 2009 I participated on a series of 6 webinars on Lean-Agile Software Development given by Allan Shalloway, under NetObjectives, and knew that the book—same title as the webinar series—was being finished at that time so I was definitely looking forward to it. I was very glad when the publisher asked BayAPLN for a review, which gave me the opportunity take over such a pleasant task.

The basic premise of the book is a better approach to drive software development efforts to maximize realized business value. It pays particular attention to how to scale agile to the enterprise; a main topic of discussion within the agile community during the last two years. The book’s proposal is to use lean-agile instead of agile alone and to “extend” scrum to what the authors call scrum# which is, simply put, doing scrum while also doing lean thinking. Particular attention is paid to the lean principles of waste elimination and optimizing the whole. The authors put together a body of knowledge that would otherwise take lots of research, reading hours, and trial-and-error experience. The theme itself is not new, you can also consult, e.g., books on lean software development by Mary and Tom Poppendieck, and a book on scaling lean and agile development by Craig Larman and Bas Vodde. Shalloway, Beaver and Trott’s book is easy to read and very informative at a conceptual level and also at an anecdotal level. The cases they present actually add a lot of value to it. I consider this to be a must for executives, managers, and non-technical people involved on software projects because it will help them understand better what lean and agile can do for their organization. It is also helpful to software and QA engineers as a great informative reading.


The book consists of an introduction, three parts, and an appendix. The Introduction sets the tone for the book and revisits the basics of agile and lean (manifesto, principles, etc.). But make no mistake; this book is not for people new to agile or lean, and for those who are it is better to do some previous reading or they might get lost at times.

Part I starts with a discussion on why it is not preferable to think of software development as a science or a technique instead of as a discovery means to the end of satisfying a need, and gives a gentle introduction to some lean principles within software development. Chapter 1 nicely explains the transition of manufacture-based practices to software development. Chapter 2 addresses the business value added by agile and lean through better customer interaction, better delivery, and product focus. Chapter 3 gives some insights on how to get started with the transition to lean-agile, and chapter 4 dives into lean thinking for portfolio management, which I consider to be the most important chapter of this part because it gives a good deal of practical advice to do high value-added changes to your organization.

Part II Focuses on lean project management. Chapter 5 addresses some limitations of scrum that are particularly important when considering scalability. The authors propose what they call Scrum# as an extension of scrum that includes lean thinking. I personally think the problem is not scrum itself but rather how we put it into practice and what they propose as scrum# to me is nothing more than having a better (lean) way of applying the scrum framework; maybe because I learned about lean years before scrum came to be and so I have always used lean thinking when doing scrum. In any case, I would advocate to simply keep the term scrum as-is and encourage people to learn and apply lean to it rather than getting into new terminology, which I think might create confusion instead of clarity. I was very pleased to see that Kanban was added to the book and wish it had been explained in more detail, on a dedicated chapter, because kanban is very powerful in eliminating some disadvantages of scrum and it will gain importance as a highly effective software development framework. Chapter 6 is about iteration 0, which is the preparation phase before starting your actual scrum iterations. I entirely agree with the need to do the prep work but I have never been fond of calling it iteration because in people’s minds it time-boxes a very important phase that not necessarily—and almost never—takes the same amount of time as the actual scrum iterations (see, e.g., Jim Highsmith’s book Agile Project Management). Chapter 7 is a good explanation on how to do lean-agile release planning. Chapter 8 explains the importance of visual controls and information radiators, which is a subject that most executives have a hard time accepting from the lean-agile perspective but once they fully realize their high value regardless of their simplicity they usually embrace these fully. I definitely enjoyed seeing a chapter on the role of QA (chapter 9) because this is often under-treated in the software development literature in general, unless it is on a dedicated QA book. This inclusion goes well with the lean-agile principles of working in teams and optimizing the whole.

Part II addresses scalability at enterprise level on chapter 10 with a very effective discussion format. Management’s role in lean-agile is treated on chapter 11 with good arguments but I would’ve liked it better if it had elaborated further on this very important role. Chapter 12 was one of my favorite ones since it does a good job at discussing the Product Coordination Team, a relatively new approach that has proven to be better suited for scalability than scrum of scrums. Chapter 13 is rather a teaser about the importance of a better, lightweight, approach to software architecture and design, which is okay since it is beyond the scope of the book.

Part III consists of chapter 14 only and is an epilogue to the book that basically encourages people to explore and learn more about lean, primarily, and about agile.

Appendix A explains Steve Bockman’s Team Estimation Game. A dynamic, fun, and effective step further of what you can do with the Planning Pocker that is also scalable. Appendix B presents the authors’ model of lean-agile software development, a nice quick reference to refresh the key concepts.

Alan, Guy, and James wrote a fabulous book that is a must-read for those interested on a successful lean-agile adoption whether or not you need to scale.

Tuesday, August 4, 2009

Jim Highsmith's new book

I had the opportunity to meet Jim Highsmith at the Marriott Hotel in Mexico City's Reforma, where he gave a course on Agile Project Management through the Cutter Consortium. Jim is a very enjoyable person with a great sense of humor and enough anecdotes on agile to entertain people for weeks.

Started reading the recently published second edition of his book Agile Project Management: Creating Innovative Products. This book is to become a must-read for all people interested on Agile, whether or not they already practice it. It covers from the basics to in-depth aspects of project management that are of high concern to enterprises of any size. The focus is very practical and it is organized in a way that introduces people new to APM in a fluent way. The first portion of the book, chapters 1 to 5, introduces some practical principles and a model as a means of introduction. The second part, chapters 6 to 10 explains the different phases in which a project can be structured. The third part focuses on scalability, governance, cost, schedule, and scope; all of them issues of high concern for companies considering agile adoption. The final chapter discusses the need for a shift in thinking about how we develop products.

Reading this book will save you the need to read a large amount of other literature oh the same subject.