Make Tests Repeatable and Independent

In TDD, we want to run the tests frequently. When we do so, it shortens the pulse of our work, increasing velocity. Also, when a test unexpectedly fails, we know that it must be something we just did that produced this result. It becomes very easy to find the error.

This means that we must be able to run tests frequently which in turn means that tests: Continue reading “Make Tests Repeatable and Independent”

TDD and Accuracy vs. Precision

It is important that the system behaviors we create as developers are both accurate and precise. These are not the same. One can be:

  • Accurate, but not precise, such as “Pi is a little over three.”
  • Precise, but not accurate, such as “Pi is 5.393858303895.”

They are not the same, but they are related. The level of precision required tells you how far to go in determining accuracy.

Here is an example. Continue reading “TDD and Accuracy vs. Precision”

TDD: Keeping Tests Green

Ideally in TDD, no more than one test is ever failing at any given point in time. This test represents the work that is about to be done but hasn’t yet. Also, this test should not spend a long time in the red. We want the suite to get back to “all green” as quickly as possible.

Here are some reasons for this: Continue reading “TDD: Keeping Tests Green”

Minimum Viable Products (MVPs) are very different from Minimum Business Increments (MBIs)

MVPs are used to discover when a product is useful. MBIs are used to define the smallest increment of value that can be built and released that realizes value for the business. Although both of these are about doing a small amount of work and releasing it, they are quite different in both intent and method.

An MVP is intended to create a new product without an existing customer base. It is built by taking the smallest step possible to determine if it is viable. An MBI is for building the smallest enhancement to an existing product. Continue reading “Minimum Viable Products (MVPs) are very different from Minimum Business Increments (MBIs)”

Questions to Ask Yourself While in an Implementing SAFe class

Organizations going to Agile at scale are often pretty set on SAFe. It’s a popular framework so it must do some good. And it does. It attends to the key objectives required but gives only one solution when there are several options needed. While alluding to Lean principles, no one can learn how to apply these in just two or three days.

Taking an implementing SAFe can provide key insights especially if consider three things when in the course: Continue reading “Questions to Ask Yourself While in an Implementing SAFe class”

Focus on the work, not the framework

Talk to most any team that is having trouble with Scrum and you’ll see some common patterns of problems:

  • can’t write small stories
  • work doesn’t get finished within a sprint
  • requirements are not clear

Learning how to write small stories with agreed upon acceptance criteria prior to writing code would be a good idea. Continue reading “Focus on the work, not the framework”

We need to focus on our work, not the framework

A great way to illustrate this is to read imaginary certification question for a framework, vs how to get your work done. Which would you rather be able to answer? My experience is it takes about the same amount of time to learn either one.

“What is a program backlog?” compared with “How does an effective intake process help define responsibilities for product management and make life better for developers?” Continue reading “We need to focus on our work, not the framework”

Lean-Agile Newsletter – May 16, 2019

Net Objectives

This newsletter continues our theme on what’s the next thing after Agile, as well as presents a few of Scott’s top posts this month. You can subscribe to the RSS feed on NetobjectivesThoughts if you want to get them as he writes them (and you’ll get mine as well).

FLEX Workshop. Aug 16-18. Southern Orange county.

FLEX is the culmination of how Net Objectives has been working on Lean-Agile at scale for well over a decade. It incorporates Flow, Lean, Systems-Thinking and Agile while driving from a business value delivery perspective. FLEX creates a framework tailored for your organization that continues to adapt as you grow. You will leave this workshop both having tailored a framework for your organization and having been given some expertise on how to go back and educate your associates. Licensing of materials is also available.

Webinar: June 3rd. The Six Most Important things I’ve Learned in 20 Years of Agile

Al Shalloway has been on the forefront of most Agile and Lean methods of the last 2 decades. In this webinar he shares the six most important insights he’s had over this time and how they relate to each other:

  1. How to design with patterns thinking
  2. The objective is business Agility
  3. Why the Concept of the MBI is so critical
  4. Lean-thinking (systems thinking and delays and management)
  5. Acceptance Test-Driven Development with Behavior Driven Development
  6. Why we need to focus on our work and not a framework

Each of these insights is critical to achieve effectiveness at any scale beyond a team. Al explains each concept and how they work together to provide guidance on how to improve the effectiveness of your organization

Webinar: June 17th. Creating the Next Paradigm Shift in IT and Product Development

Agile has been around for more than 2 decades. This is more than a lifetime in the information age. Dark Agile (as Agile done poorly has started to be called) has been around for just about as long and seems to be increasing. The reason is reflected in Einstein’s observation – “We cannot solve our problems with the same thinking we used when we created them.” The next paradigm is not based on Agile but on flow.

This talk discusses the main shifts required for the next wave after Agile:

  1. Focus on achieving Business Agility – the quick realization of business value predictably, sustainably and with high quality
  2. Attend to flow to achieve this
  3. Use Flow and Lean Thinking to achieve flow
  4. Focus on the work to be done, not the framework
  5. How Systems thinking, attending to complexity, and the role of Lean-Management are the foundation for this

Scott Bain’s TDD Posts

TDD as a Sustainable Process: Introduction LinkedIn Blog & Audio
Sustainable TDD: Part 1 LinkedIn Blog & Audio
Sustainable TDD: Part 2 LinkedIn Blog & Audio
Sustainable TDD: Part 3 LinkedIn Blog & Audio

My Top Posts for May

What I’m Up to- Leading the Next Mindshift LinkedIn Blog & Audio
Why We Need Adaptive Frameworks LinkedIn Blog & Audio
How MVPs are limiting you if you’re using SAFe LinkedIn Blog & Audio

A side note for those considering or wanting to improve SAFe. As a former contributor to SAFe, an SPCT and Gold partner, I know how to make SAFe better. If you’re considering doing SAFe or want to see how to improve it, see Part IX: Using FLEX to both enhance and simplify SAFe.

As always, happy to chat with you about your challenges and how we can help.

Al Shalloway

CEO, Net Objectives
425-269-8991 @alshalloway

SAFe® is a registered trademark of Scaled Agile, Inc.

TDD and Legacy Code

TDD is a powerful way to develop new code. However, most organizations have significant existing code that was not developed this way. This “legacy code” is often difficult to test because it was not designed to be testable in the first place.

In his excellent book, Working Effectively with Legacy Code, Michael Feathers outlines techniques for dealing with this kind of code, with an eye toward making it more testable. This book is an essential resource for anyone that has significant legacy code. Continue reading “TDD and Legacy Code”

What work we need to focus on

There are six major actions that need to be in place in order to achieve significant improvement in an organization’s capability to deliver value quickly. These can be implemented in different ways depending upon the needs and culture of the company. These are:

  1. Identify and prioritize the work to be done
  2. Have an effective intake process to avoid pushing too much work onto the development group while ensuring the most important work gets done
  3. Create clear requirements
  4. Coordinate the work of the teams
  5. Teams work together with a common cadence and frequent synchronization
  6. Core DevOps

Here are the best solutions we’ve found in 20 years: Continue reading “What work we need to focus on”