• November 2, 2014 Great Agile Architecture Presentation

    In my many adventures as an Agile Coach and instructor, I often have to teach Agile engineering practices and concepts such as BDD/TDD, vertical slice user stories and emergent design. My workshops are hands on and focus on the details of growing an architecture by using TDD as a design tool while applying good OO. [...]

  • March 13, 2014 Should the word Agile be banned?

    Recently I had friend ask for my thoughts on this blog post by Dave Thomas. Here was my response: I spent last 10 years in the “Agile” space, starting with XP and Scrum as a full-stack developer, eventually becoming an ScrumMaster and then Agile coach – incorporating many other Agile practices and processes as well [...]

  • February 14, 2013 An Agile Workspace

    Often when people think of an Agile workspace for a team, they envision the classic set of adjacent tables stretched across an open space. While this is often a component of an Agile workspace, it is not the whole picture. The goal of an Agile workspace is to create a physical environment that enables and supports a team [...]

  • January 12, 2013 How Measurement Systems Become Dysfunctional

  • January 1, 2013 Is Intrinsic Quality Important?

    These observations are derived from quality benchmark studies carried out by the author and his colleagues between 1984 and 2009 in several hundred companies in the United States, Europe, and Japan. Leading edge enterprises employ technologies that can approach 99% cumulative defect removal rates. The norm for US firms is a cumulative defect removal rate [...]

  • September 7, 2012 TDD Goodness

    I work with developers and programmers all the time that are resistant to TDD and BDD. It takes time and patience to show them the light. To get them understand that the lowest level of Agile’s tenet of Inspect and Adapt is TDD. Here are some of my favorite resources that I draw from in the endeavor: [...]

  • May 15, 2012 Trust Your Team

    The main idea behind Agile and Scrum is empirical process control or INSPECT and ADAPT. What enable Agile and in particular Scrum teams work well is the idea of a TRUSTED, self-organized team. Trust, not in the sense that you expect perfection. On the contrary, it means that you trust the team to make mistakes and learn [...]

  • August 6, 2011 How Mature Is You Definition Of Done?

    Verifying that your team’s DoD meets these criteria will ensure that you are delivering features that are truly done, not only in terms of functionality but in terms of quality as well. DoD is a checklist of valuable activities required to produce software. Definition of Done is a simple list of activities (writing code, coding comments, unit testing, integration testing, release notes, [...]

  • June 3, 2011 Why you must embrace pairing

    Pair programming increases software quality without impacting time to deliver. It can seem counter intuitive, but two (2) people working at a single computer will add as much functionality as two working separately except that it will be much higher in quality. With increased quality comes big savings later in the project. The best way to pair program is [...]

  • May 26, 2011 Motivation Pure and True

    Motivation is intrinsic not extrinsic – traditional motivational approaches don’t work in Agile environments.  I can’t overemphasis the importance of the right motivators – see Daniel Pink’s book Drive in where he identifies the three factors that lead to better performance and personal satisfaction: Autonomy Mastery Purpose This relates to the way effective Agile teams work to these [...]