Agile Businesses

There are more than enough articles about agile software development; this post is about agility elsewhere.

Two kinds of company

Agile: Adjective

  1. Able to move quickly and easily.
  2. Relating to or denoting a method of project management, used especially for software development, that is characterised by the division of tasks into short phases of work and frequent reassessment and adaptation of plans.

Most companies don’t develop software; technology is undoubtedly a core part of their operation, but it’s not how they add value; it’s process, not product.

Creating an agile business is a different proposition to developing software with an agile process.

It's process, not product

Flexibilty vs Efficiency

Different organisations have different priorities depending on the level of commoditisation of their product or service. If competition is only on price, e.g., providing power or insurance, operational efficiency is the priority.

If the product or service is more novel and margins higher, then gathering and responding to changing requirements is more critical than absolute efficiency. A business may have multiple products or services, each at a different level of commoditisation.

In the same way that stars can be placed on the main sequence, so can products be placed on the path to commodity.

The path to commodity

Agility comes at the cost of reduced efficiency; a long-term lease on a property may reduce costs but reduce flexibility.

Simon Wardley uses the Pioneers, Settlers and Town Planners framework to understand the differing modes of operation.

Right approach at the right time

The landscape that businesses operate in evolves; what was once a novel product or service may be rapidly commoditised; companies must choose to become more efficient or continue to innovate.

The process of commoditisation driven by competition may move quickly or slowly but never backwards.

People, Processes and Tools

The golden triangle of business: people, process, and tools, defines the key components that make any business operate. All three factors change as a business, and its market evolves and grows over time.

PioneerSettlerTown Planner
PeopleExperimentationContinuous improvementEfficiency
ProcessAgile iterativeKanbanSix Sigma
ToolsCustomEcosystemEnterprise

Change may be triggered by internal factors such as the growth of the business resulting in a desire to standardise or external factors such as market maturity causing price competition.

Transformation

The process of transformation from pioneer to settler can be painful if embarked upon accidentally. Accidental change frequently reverses the order of the golden triangle starting with tools and technology and expecting the rest of the organisation to fall into place. The business complains to whoever is managing the technology about an issue, a solution is presented, and then nothing changes, except for a loss of confidence in the technology.

Transformation needs to start with people who have the skill and will to create appropriate processes enabled by the right tools. Careful analysis and development of methods tend to understand where they are, or can be, standard.

A standard process can use a standard tool.

Lots of standardised tools

Stakeholder management and business change are critical to transforming any organisation; any complexity that can be removed from the tooling and technology allows for more focus where it counts.

Ecosystems

Given a standard set of challenges for a company, an appropriate set of tools can be chosen. With a credit card and a few days of research, most small companies can access tooling that will allow them to achieve parity with, or frequently surpass, the largest enterprises.

However, without care, an antipattern can manifest in the form of poor integration between all the new tooling. With no integration, users are required to do the work of moving information between applications, leading to inefficiency and error.

A true ecosystem can only be created with a suite of integrated applications, allowing users to reduce the number of applications they interact with.

Staying flexible

If integrated correctly, ecosystems can provide a strong foundation for organisations to build upon, changing components as necessary. In addition, connected applications can provide a wealth of information about the customer experience from across the organisation, allowing continuous improvement to be measured.

Agile Businesses

To grow companies must continually adapt and change modifying the business in line with strategy and market forces. A potential hazard lies in wait in the form of large initiatives prone to losing focus and traction “we’re embarking on a 2-year digital transformation programme” are words to fear.

Strategic change can be agile with multiple small projects, each delivering more information and influencing the overarching roadmap. The process of change may not be as efficient as a meticulously planned multi-year programme, but it is much more likely to meet the actual requirements of the organisation.

Sustainability - engineering a sustainable future

At San Digital, we believe the work we do today should positively impact the environment and not compromise the ability of future generations. It seems obvious, but large organisations continue to think sustainability is a box-ticking exercise and an inconvenience.

Agile Businesses

There are more than enough articles about agile software development; this post is about agility elsewhere.

Jumping into the FHIR - type systems and objects

We have been doing a deep-dive on FHIR implementations and tooling following our initial FHIR investigation. A critical area of investigation for any system, particularly a large distributed system with many clients and peers that need longevity and guided evolution is its type system. Use of a strict type system can have many benefits - interoperability, governance, data quality, security, performance, developer experience, reduced component complexity and the ability to evolve services with confidence

Integrating with Events

The San Digital team has worked with numerous organisations in both the public and private sectors to transform their applications architecture into a flexible and business-focused model. Working with events at scale is key to maintaining individual teams' agility.

The process of building a mobile app

The team at San Digital has extensive experience developing apps for mobile devices, smartwatches, and smart TVs; using native and hybrid technologies (and everything in-between!) including using Rust for complex comms.

Low friction development environments

While setting up a sample project from an unnamed large vendor the other week I was disappointed by having to read large amounts of documentation and run various bits of script to install dependencies and set up infrastructure. We live in a world that has tools old (Make) and new (Docker) that can be combined to make onboarding engineers low or zero friction.

Cloud-native FHIR platforms

Continuing our series of posts on web protocols, we have been investigating more specialist protocols, in this case, "FHIR". We have produced a document based on our research, investigations and experience.

Team Structures

Multiple team structures can work to deliver software projects. There is no real one size fits all, however, there are common components that can be seen across different structures. At San Digital we believe that Engineer-led teams deliver great results for short duration high-impact projects.

Rules of the Road

This is called rules of the road but they aren't rules they're more guidelines, so they're rules until there is a good reason to ignore them.

Estimating and delivering defined outcomes

Recently there has been a shift away from time and materials projects towards defined outcomes, driven by various legislative changes, specifically IR35, but also cost control in the procurement function of larger organisations.

The San Digital Stack

San Digital has been designed as a remote first business from inception, on the assumption that it's easier to add offices later if they are necessary in an agile way. To work in collaborative way completely remotely takes a carefully thought out set of tools. Some of the ones that we use are really standard and some are a little more interesting.

Test driven design, or planning driven development

Design processes in most business software development resemble peer review or crowd-sourcing. A putative design is presented to peers, who will do their best to find problems while the originator of the design defends it against these challenges. Ideally, where they are demonstrated incorrect or incomplete the process will iterate and an updated design produced and defended.

A human view of computer vision at scale

Computers analysing and acting on what they see is not science fiction or even a new concept, it has been a reality of humankind's drive towards hyper-efficiency since around the time I was born.

Building scalable frontends

Scaling frontends is hard, actually scaling all codebases is hard, frontends just happen to be particularly visible and have a tighter feedback loop and a higher rate of change. As with all codebases, it is in principle possible to scale development through standards and integration processes, but these are a poor substitute for communication. Once development moves beyond the scope of a single team, either progress slows to take into account of different processes or implementations drift away from each other over time. Teams need to find a way to operate independently towards a goal.

Cross platform native mobile development with Rust

San Digital have extensive experience of mobile development and the use of Android as an embedded operating system. We treated android as a deployment target target for Rust firmware as well as writing our intricate real time communications component for both iOS and Android. This approach has advantages, you can maintain a single code base for a complicated communications layer, while also taking advantage of the full native capabilities of each platform

The evolution of web service protocols pt 2

At San Digital, some of us have been building things for people since the dawn of the web. Our historical perspective helps inform us about technological culture and trends today, almost compensating for the creaking knees.

The evolution of web service protocols pt 1

At San Digital, some of us have been building things for people since the dawn of the web. Our historical perspective helps inform us about technological culture and trends today, almost compensating for the creaking knees.