“Simplicity is the ultimate sophistication,” wrote Leonardo da Vinci. And it’s exactly that sophistication you need in Agile and Sailing.
Part four in a series.
Another striking example of the similarities between sailing and Agile is the direct reference to simplicity. From the Principles behind the Agile Manifesto,
Simplicity – the art of maximizing the amount
of work not done – is essential.
Simplicity is applied in a variety of fashions throughout software development. Prioritization – what is most important to be done? What are the key requirements that will deliver value to the customer? The term Minimum Viable Product (MVP) speaks directly to the idea of what is the least we can do that will meet the needs of the customer.
This should not be interpreted as what will cost the least or what can be done the fastest. The opposite may, in fact, be true. If you look at the Apple iPhone or a Tesla Roadster as examples of simple designs, you will notice that simple can come with a significant price tag.
Rather, simplicity is about applying rigorous focus to a problem and staying true to that focus. Applying just the right amount of work and effort to achieve the solution and consciously leaving all of the other options out. It’s always “easy” to add more features. It can be incredibly difficult to remove those features once they are included.
Complexity is your enemy. Any fool can make something complicated. it is hard to keep things simple.
Similarly, on a boat, simplicity is at the heart of sailing. You’ll often hear people talk about a boat’s shape as having ‘clean lines’ indicating that the boat will glide through the water and will capture the wind. It’s also very visually appealing!
Once you’re on a boat, simplicity in rigging helps the team know where everything is and enables the team to perform quickly and accurately when conditions change on the water. More details on that:
- In this rigging picture, there are a large number of lines that perform a variety of functions. Each one has its own winch and the lines are clearly coiled and associated with each purpose. A potentially overwhelming volume of tasks, but simple in its function.
- In this rigging picture, we see fewer lines tangled and overlapping. Affectionately called ‘spaghetti,’ this configuration can lead to disaster. Lines become entangled with one another, a tripping hazard ensues, and just when you need to loosen a line to save the boat, it tightens instead! See this video for a round-up that illustrates what can happen.
Another agile principle is “working software over comprehensive documentation.” Roughly translated to the racecourse, this means “cover more distance on the course versus worrying about what everyone else is doing.”
There are times in competition where you can use the rules to your competitive benefit and to the detriment of the immediate competitor. While you should always be mindful of the rules and how to leverage them to best effect, getting into a tacking duel or other 1:1 competition while competing in a fleet is generally a good way to add complexity to a race at the cost of your overall results.
You may beat that one boat, but you’ll likely end up losing to more than a few others in your fleet.
Simplicity in Agile Sailing
The key lessons around simplicity from the Agile Manifesto and for Sailing include:
Preparation – When a crisis hits (major customer issue, 120-degree wind shift, massive security breach, 40-knot puff), you will not have time to do things right or to think things through. You’ll only be able to react. If you have prepared well, your reaction will be measured and appropriate to the situation you are facing.
Without preparation, the situation will be more complex and the results less favorable.
Usability – The boat needs to be rigged in a way that makes it simple to do the tasks that are required. You could add one more block or pulley to the system, but does it make it easier to do the required job or is it just ‘cool?’ Similarly, we can put all kinds of choices and options on the first page of a website, so you can literally do just about anything. Is the page jumbled?
Even though the functionality is present, can anyone find it and use it or are they so overwhelmed with options that they leave your site as quickly as possible?
Good equipment – Simplicity implies that you are able to focus on the work at hand. If you are constantly working to repair broken equipment, you are not able to focus on completing the task. How is maintenance worked into your plan to prepare for the race? How is technical debt being addressed over time so it does not become an overwhelming monstrosity?
Ensuring that the system remains simple means that you have to plan for your tools and equipment.
Maintain focus – Agile encourages the entire development team to focus on the needs of the customer. If the requirements change, adjust the development. If the original plan does not work, scrap it and use a new plan. To ensure that this does not become a budget nightmare, agile also requires that you work on one thing at a time and that work is prioritized to ensure ‘working code’ is developed. In this way, the team may have setbacks, but overall progress is maintained as value is delivered continuously and not just at the end.
Similarly, on the boat, the focus during a race is on completing the race. Get sideways with someone in a port-starboard crossing? Do your turns and carry on. The focus is no longer on the crossing, it’s on continuing the race and sailing to the next wind shift. By focusing on the primary goal (keep it simple) and always keeping that in mind, the odds of success are increased.
Plan and adjust – Before each race starts, the course is known. Before the boat is even put in the water, the team knows what will be required. Put sails up, trim the sails, tack, gybe, watch the compass; repeat. Planning begins with ensuring the equipment is in working order, the right sails are on the boat, and the weather forecast has been checked. The team works out who is going to work in each of the roles (helmsman, tactician, grinder, bow, etc.).
As the starting sequence starts, the team works on positioning for best advantage. The course is assessed to determine which side is favored. And the starting gun goes off! The plan is now being executed and tactics are easier because everyone knows where they are going and what they are doing. When new situations present themselves (wind shift, tactical move by another boat, wind velocity change) adjustments are made.
For the agile team, it’s much the same. Plan the sprint, engage the team, regularly communicate, and adjust as needed.
In this context, simplicity is achieved through communication and everyone sharing a common purpose. When the entire team knows what they are working on and how success is defined, greatness can be achieved.
Steve Jobs once said: “That’s been one of my mantras – focus and simplicity. Simple can be harder than complex: You have to work hard to get your thinking clean to make it simple. But it’s worth it in the end because once you get there, you can move mountains.”