September book review: Flow

Mihaly Csikszentmihalyi
Flow: The Psychology of Optimal Experience

Mihaly defines flow as a state of mind when consciousness is harmoniously ordered and thoughts and actions are congruent with each other. People experiencing flow are fully involved in the activity and continue doing it for its own sake. The experience is genuinely satisfying. Nothing else seems to matter.

The author provides general principles and examples that illustrate how such experiences happen. He points out that the normal state of mind is chaos. Without training and without an external object that demands attention, it is hard to concentrate long enough to achieve "optimal experience". This presents a significant challenge for building an environment conducive to flow.

Mihaly offers a thought model to transform potentially entropic experience into flow. You can use it to make the job more enjoyable for your team members or to create online applications that provide flow to your users. I tried to summarize it in the steps below:

  1. Set clear feasible goals. These goals will recognize challenges present in the system and imply skills necessary for the participants to be successful.
  2. Find ways to measure progress. In order to develop new skills, the participants will need to pay attention to the results of their actions.
  3. Help the participants become immersed in the activity. To maintain their full concentration, match the demands of the system with their skills and limit the number of available options to a select few.
  4. Make finer distinctions in the goals and challenges and help the participants recognize the opportunities for action.
  5. Raise the stakes if the activity becomes boring.

Happy reading!

August book review: Patterns of Enterprise Application Architecture

Martin Fowler
Patterns of Enterprise Application Architecture

This book catalogs a collection of design patterns commonly used when writing business applications:

  • Domain Logic
    Transaction Script, Table Module, Domain Model, Service Layer
  • Data Source
    Table Data Gateway, Row Data Gateway, Active Record, Data Mapper
  • Object-Relational Behavioral
    Unit of Work, Identity Map, Lazy Load
  • Object-Relational Structural
    Identity Field, Foreign Key Mapping, Association Table Mapping, Dependent Mapping, Embedded Value, Serialized LOB, Single Table Inheritance, Class Table Inheritance, Concrete Table Inheritance, Inheritance Mappers
  • Object-Relational Metadata Mapping
    Metadata Mapping, Query Object, Repository
  • Web Presentation
    Model View Controller, Page Controller, Front Controller, Template View, Transform View, Two Step View, Application Controller
  • Distribution
    Remote Facade, Data Transfer Object
  • Concurrence
    Optimistic Offline Lock, Pessimistic Offline Lock, Coarse-Grained Lock
  • Session State
    Client Session State, Server Session State, Database Session State
  • Miscellaneous
    Gateway, Mapper, Layer Supertype, Separate Interface, Registry, Value Object, Money, Special Case, Plug-in, Service Stub, Record Set

Many of these patterns are available as frameworks and you do not need to implement them from scratch. As a side effect, the frameworks, such as O/R mapping and web presentation tools, have a tendency to hide their implementation techniques. The patterns cataloged and described by Martin Fowler will help you understand what happens behind the scene and and use this knowledge for optimizing, troubleshooting, and improving the design of your applications.

This book has something valuable for everybody. If you are new to the industry, you will learn about common recurring problems building enterprise applications and study techniques to solve them. If you used these patterns before, you will deepen your understanding of them.

Click here to find out more about this book. Happy reading!

July book review: The Five Dysfunctions of a Team

Patrick Lencioni
The Five Dysfunctions of a Team

Katheryn Petersen is put in charge of DecisionTech, a young promising 150-people Silicon Valley start-up, experiencing a series of disappointments: slipped deadlines, lost key employees, and deteriorated morale. With no high-tech experience and a limited political capital with the board, she does not seem to fit DecisionTech's corporate culture.

After interviewing members of the board and spending time with her executives, Katheryn realizes that they do not function as a cohesive unit. She dedicates her time, energy, and effort to addressing the issues preventing her executive team from reaching its full potential.

Katheryn introduces her executives to a teamwork development model and teaches them how to overcome team dysfunctions:

  1. Absence of Trust
  2. Fear of Conflict
  3. Lack of Commitment
  4. Avoidance of Accountability
  5. Inattention to Results

Will Katheryn be able to turn things around? Can she meet the revenue goals and dramatically increase the sales? Read this exciting and thought-provoking business novel to find out!

To find out more information about this book, click here. Happy reading!

June book review: Understanding A3 Thinking

This month, we will continue the theme of A3 Thinking started in April with my review of "Managing to Learn" by John Shook.

Durward K. Sobek II and Art Smalley
Understanding A3 Thinking. A Critical Component of Toyota's PDCA Management Process.

In "Managing to Learn", John Shook described the fundamentals of A3 analysis and explained how to apply A3 thinking to improve problem solving and decision making in the organization. In "Understanding A3 Thinking", Durward and Art expanded the scope of A3 reports to two additional categories: proposal reports and status reviews. All three basic types of A3 reports are listed below:

  1. Problem-Solving A3 Report
  2. Proposal A3 Report
  3. Status A3 Report

This book is a practical and insightful introduction to A3 thinking. The authors illustrated how to create different types of A3 reports and included examples, templates, exercises, and review questions for each report category. Additional topics covered include:

  • Form and style of the reports
  • Commonly used graph types
  • Standard A3 templates
  • Hand-written vs. electronic A3 reports
  • Storage and retrieval of A3's

Where shall you start if you are interested in learning logical, objective, result-focused A3 thinking process?

  1. The authors recommend starting by writing a simple problem-solving report with the scope limited to an area you have control over. This way, you will be able to focus on learning the steps of producing an A3 without the complexity of interdepartmental politics.
  2. Ask your co-workers as well as your manager/coach for feedback on your A3 report while it is still in progress. Seeking feedback from multiple sources is likely to be very insightful.
  3. Continue using A3 reports to analyze, propose, and summarize your daily work processes and projects.

To find more information about this book, click here. Happy reading!

May book review: Agile Retrospectives

This month, we continue the theme of team self-reflection and retrospectives started last year with my review of "Project Retrospectives" by Norman Kerth.

Esther Derby, Diana Larsen
Agile Retrospectives. Making Good Teams Great.

This book is an excellent addition to Norman Kerth's guide to project retrospectives. Esther and Diana focus on iteration and release retrospectives which are short and frequent. As such, they provide feedback faster and allow the team to find and fix issues before it is too late for the project. Iteration retrospectives are repetitive, seemingly easier to organize and facilitate, and may not even require a formal facilitator.

However, like any other routine executed over and over again, they could sometimes get tiring and even boring. What steps could we take to keep the discussion flow fresh and the team engaged? How could we help the team members apply their creative and unconventional thinking?

Esther and Diana outlined a five-step approach to leading retrospectives. For each step, they offered practical advice and a set of activities and techniques to make retrospectives insightful and fun:

1. Set the Stage

2. Gather Data

3. Generate Insights

4. Decide What to Do

5. Close Retrospective

  • Checkin
  • Focus On / Focus Off
  • Explorer / Shopper / Vacationer / Prisoner
  • Working Agreements
  • Temperature Reading
  • Satisfaction Histogram
  • Timeline
  • Triple Nickels
  • Color Code Dots
  • Mad Sad Glad
  • Locate Strengths
  • Satisfaction Histogram
  • Team Radar
  • Like to Like
  • Brainstorming / Filtering
  • Force Field Analysis
  • Five Whys
  • Fishbone
  • Patterns and Shifts
  • Prioritize with Dots
  • Report Out and Synthesis
  • Identify Themes
  • Learning Matrix
  • Planning Game
  • SMART Goals
  • Circle of Questions
  • Short Subjects
  • Triple Nickels
  • Force Field Analysis
  • +/Delta
  • Appreciations
  • Temperature Reading
  • Helped, Hindered, Hypothesis
  • Return on Time Invested
  • Satisfaction Histogram
  • Team Radar
  • Learning Matrix
  • Short Subjects

Retrospectives equipped with these activities will become a powerful iterative improvement tool for your team.

Note that I think of iteration, release, and project retrospectives as iterative rather than continuous improvement tools. They will help your team reflect, learn, adapt, and get better together, eventually reaching the performing stage of  Bruce Tuckman's Team Development Model. Performing teams are recommended to implement a continuous improvement tool, such as A3.

Esther's and Diana's book is easy to read, concise, and well organized. If you are doing iterative development, it is likely to serve you as a reference guide for many iterations to come.

To take a closer look at this and other Esther Derby's books, click here. Happy reading!

April book review: Collaboration Explained

When I started this column in January 2008, I wanted to share my book recommendations with a wider audience and solicit feedback from our blog readers. Let me first say that I am very happy and grateful for all your insightful questions and suggestions. Thank you for subscribing to our blog and reading books featured in our monthly column!

Based on your comments, the books that are going to be discussed over the next several months are closely related to the books already reviewed in 2008 and 2009. This month, we will continue the theme of collaboration culture and facilitative leadership started in February: "Facilitate with Ease!" by Ingrid Bens.

Jean Tabaka
Collaboration Explained. Facilitation Skills for Software Project Leaders.

In this book, Jean Tabaka describes the benefits of a consensus-based leadership approach and participatory decision-making. She explains how we can usefully share ideas, information, and decisions among project team members and demonstrates organizing tools and techniques for many project events. Jean offers guidelines and practical advice to project leaders and agile practitioners on how to manage complex team dynamics and foster and maintain collaboration in their teams.

What makes this book different from Ingrid Berns' Facilitate with Ease! is the context of agile software development projects. Jean provides detailed advice and even includes sample agendas for many relevant project meetings:

Generic Project

  • Status Meeting
  • Strategic Action Planning
  • Process Change Workshop
  • Project Start-up Meeting
  • Project Retrospective


  • Scrum Planning
  • Daily Scrum
  • Sprint Demo and Review


  • Project Chartering
  • Release Planning
  • Iteration Planning
  • Daily Stand-up
  • Iteration Demo and Review
  • Release Retrospective

Crystal Clear

  • Methodology Shaping
  • Blitz Planning
  • Reflection Workshop

Having read this book cover to cover, I often find myself referring to Jean's sample agendas when preparing for a meeting. I believe you will find this book valuable as well.

Happy reading!

March book review: Managing to Learn

John Shook
Managing to Learn. Using the A3 management process to solve problems, gain agreement, mentor, and lead

The term A3 refers to a size of paper defined by ISO 216. For lean organizations, A3 is also a problem-solving and improvement tool as well as a management style and process.

The A3 report is a standardized form for describing a problem on a single sheet of paper. The report communicates both facts and meaning in a commonly understood format. It describes a story behind a particular issue and is guided by PDCA (Plan, Do, Check, Act), an iterative problem-solving process. The process guides dialogue and analysis of the issue by discovering answers to the following questions:

  • What is the problem we are trying to solve?
  • Who owns the problem?
  • What are the current conditions?
  • What are the root causes of the problems?
  • What are the countermeasures?
  • What is the implementation plan?
  • How will we know if the countermeasures work?
  • How will we capture and share the learning?

In John Shook's book "Managing to Learn", you will find an excellent introduction to the fundamentals of A3 analysis as well as easy-to-understand examples on how to apply A3 thinking to improve problem solving, decision making, and communication in business organizations. John also explains the underlying learning process for developing talent and touches on how A3 enables the right decision at the right time. This capability of A3 helps lean organizations operate pull-based authority (aka, kanban democracy), where authority is pulled where it is needed and when it is needed: on-demand, just-in-time.

The book is organized around two story lines running in parallel. The first story line reveals the thoughts and actions of Desi Porter, a young manager who gradually discovers the meaning of the A3 process. The second story line describes the thoughts and actions of Ken Sanderson, Desi's supervisor who mentors Desi Porter in a structured problem-solving approach. While Desi is primarily concerned about his project of improving the document translation process in the company, Ken needs Desi and his other direct reports to master A3 thinking.

The book is both thoughtful and entertaining. I highly recommend it. If you are interested in learning more about the A3 management process, this book is for you.

To order this book from, click here. Happy reading! 

February book review: Facilitating with Ease!

Ingrid Bens
Facilitating with Ease! Core Skills for Facilitators, Team Leaders and Members, Managers, Consultants, and Trainers

Most software projects today involve a number of team members with special skills: customers, stakeholders, developers, web designers, graphic designers, testers, and others. In such environment, how do we keep focus on business value, meet target dates, and ensure quality of the final product? How do we work efficiently together as a team to deliver a successful business solution?

Today, comprehensive knowledge sharing, quality decision making, and effective collaboration among all team members is critical to the success of the organization. However, it is not uncommon to see teams with limited knowledge-sharing and decision-making skills. As a result, meetings are poorly run, valuable time is wasted, and no clear benefit is achieved. How do we remedy this situation? 

I recommend recognizing the importance of quality facilitation and paying proper attention to process elements. Ingrid Bens demonstrates many tools and techniques on how to do that. Our next step is to introduce a practical and repeatable approach to organizational learning. But wait... I am jumping ahead of myself into one of my next book reviews.

Among many excellent resources on the subject of facilitation, Ingrid's book "Facilitating with Ease!" stands out. Ingrid touches on both theoretical and practical aspects of facilitation and presents relevant information in a very concise manner. This makes her book well organized and easy to read.  I highly recommend it.

Happy reading! 

January book review: Scrumban

Corey Ladas
Scrumban: Essays on Kanban Systems for Lean Software Development

Many agile teams subscribe to a development approach which Corey Ladas describes as craft production. A team of generalists is working together on user stories from an incoming queue, usually a product backlog. Each idle team member (or each idle feature crew) takes ownership of one user story at a time until there are no idle team members or no pending user stories available. This approach allows a team to control the flow of work and achieve a level of predictability in the process. However, it provides limited knowledge transfer and division of labour and, thus, often results in high variability in deliverables.

In this book, Corey offers a different approach to managing work items. A team of specialists uses kanban scheduling and other lean techniques in order to maintain a smooth and continuous flow of business-valued work items and maximize their throughput into production. What I like about this approach is that it recognizes the area of expertise of each worker and provides clear leading visual indicators of project health (as opposed to a lagging indicator such as velocity).

The book is thought-provoking and very interesting to read. If you have been thinking about introducing a more formal engineering workflow within your team, this book is for you.

Happy reading!

December book review: The Goal

Eliyahu M. Goldratt
The Goal: A Process of Ongoing Improvement

I will finish this year by reviewing another very entertaining and thought-provoking business novel: The Goal. It tells a story of Alex Rogo, a manufacturing plant manager, whose personal and professional lives are quickly falling apart. In fact, Alex has only 90 days to save his plant and his job, and even less time to save his marriage. How is he going to do it?

The book slowly introduces Alex to the principles of the theory of constraints (TOC). The principles are common-sense and very simple to understand. Occasionally, they may even feel overly simplistic, but they are exactly what Alex needs to know at the right point of time. The TOC ideas allowed Alex to see beyond false productivity metrics accepted at his organization and start measuring and improving his plant performance in terms of throughput, inventories, and operating expenses.

The settings of the book is a manufacturing plant, but even if you are not a plant manager, the chances are you will enjoy reading this book and should have no problem applying the principles described there in your organization.

Happy reading!

Welcome to ModelBlog

Thank you for visiting ModelBlog. We hope the time you spend with us will be both entertaining and worth your while. Have fun!