Image for post
Image for post

When we spend time focussing on specific problems, it comes at the cost of the ability to focus on others. The mind becomes conditioned to make certain things invisible, no matter how many times we look them over.

In the case of this article, it might be a spelling mistake, but in the case of a product it can be all kinds of things — bugs, designs, even market fit.

But we can learn to see again. There are ways to escape the myopia, and one is the power of liminal thinking.

Rites of Passage

Transitions are an important part…


This is Minard’s analysis of the fall of Napoleon’s Grand Army at the French invasion of Russia in 1812, considered a masterpiece of analytic design:

Image for post
Image for post
(source)

It features in my favourite book by Edward Tufte, “Beautiful Evidence”, as the focal piece for explaining the principles of data presentation. It is a landmark in the history of the ‘infographic’, renowned for its cleverness (in stark contrast to the military disaster it describes).

With not much more than a glance, we can learn a great deal. We immediately see the French Army was decimated — that the approach cost many lives, that the…


Image for post
Image for post

Key Takeaways

  • “Synthetic” means to find truth through experience, to use experiential practices to build understanding.
  • Software systems demand synthetic problem solving — we test, observe, and experiment to validate our work and ascertain its value.
  • The history of building software systems is a history of discovering and formalizing synthetic ways of working into practices that guide our process of creation.
  • A variety of synthetic management approaches have emerged to pair with the synthetic practices used to build software systems.
  • Synthetic management contrasts with the analytic approaches used to run a business, forming new constraints on the creation of value.

A new kind of proof

Long before…


How to make better strategic sourcing decisions for your software supply chain

Image for post
Image for post

The market for application components delivered in the cloud using a subscription model is exploding — it spans the software supply chain and it is growing constantly.

Given the high quality of these component services, it can be difficult to determine how to source your parts — should you use a supplier, or build it yourself? There are many different ways to cut this problem, but a valuable mental model that can help you make your decision is to look at code as a liability.

The natural inclination is to think of code as an asset to the business. It’s…


Thinking about software delivery as part of a supply chain can help clarify the problems large enterprises face, and provides a better way to move forward with integrating activities and achieving systemic benefits

Image for post
Image for post

Seasoned business leaders are experiencing an uneasy feeling of déjà vu. Adapting to the digital world, they know they need to rely heavily on their own software development capabilities to enable digital strategies to create value for their discerning customers.

Yet there’s a tendency to treat these operations as different beasts from the traditional business arena under a mistaken assumption that they are exempt from traditional models…


Technology decisions that ignore cultural debt will involve more cycles and greater risk

Image for post
Image for post
Photo: Thomas Vogel/Getty Images

Businesses today are faced with myriad challenges to innovate and optimize. In doing so, we often need to make decisions that borrow against the future. This can come in a tangible form, such as taking money from investors to fund growth, or in more inconspicuous forms, such as making tradeoffs in technical decisions. When we make such tradeoffs, we expect them to come at the cost of additional technical work in the future; however, these decisions can also borrow against an externality that is often overlooked: culture.

What is technical debt?

Technical debt occurs in the development of software when the “easy path” is…


Image for post
Image for post

If you’ve spent a bit of time coding, you will come across the interesting and unusual idea of idempotence. The word not lending itself well to either spelling or pronunciation, many like me become immediately curious.

A concept found deep at the heart of mathematics and computer science, idempotence is a highly valued attribute of operations that relates to efficiency and effectiveness.

An idempotent operation sends a message to a receiver that can be performed again and again without negatively impacting the receiving system. …


Achieving efficiency across a scaled engineering organization means using systems-thinking, an approach that looks at how all of the components in the delivery lifecycle work together to create value. But designing a software delivery system that produces a continuous flow of value often requires a paradigm shift in organizational thinking.

Organizations can easily fall into the trap of allowing local optimizations at the expense the system, getting caught up on resource-level problems, attacking issues that don’t actually improve productivity, thereby hurting, not helping, the overall output of the system.

So how do we even know what the right problems to…


Image for post
Image for post

So you’re doing the DevOps. You’ve got integrated teams and an automated continuous delivery pipeline. You release on demand 47 times a day using fine-grained feature toggles, canary builds, and the whole world is your A/B test.

Great! Now leave the the UI out of it please!

I hear a lot about the importance of bringing customers into the delivery process as early as possible, a laudable goal when done the right way. The sooner you get the product in the hands of customers, the wisdom says, the sooner you can understand their experience and make improvements based on feedback.


Image for post
Image for post

New categories of product are emerging at the seams of the software supply chain.

To optimize the development of software products, we need a holistic view of the system used create them. I call this view the “software supply chain”, and it looks at how the creating activities are connected with each other and the rest of the business.

Those connections are significant business opportunities, and a number of tool categories have formed at these business-IT intersections with innovative functions that allow you to achieve ground-breaking new operational efficiencies.

In this article, I look at some of these emerging categories…

John Rauser

Software Engineering Manager @ Cisco Cloud Security

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store