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.

All the small things

We’re a small (but growing) software engineering company that likes to do things a little differently, from engineer-led teams to defined outcome projects. However, we’d like to work with our customers, partners, and competitors to share ideas and make the world a better place when it comes to sustainability.

The resources we have at our disposal are nothing compared to the large consultancies, but that’s not stopping us from doing our bit, so I’d like to broadcast some of the small things we’re doing and looking to trial.

Small firefly

Project delivery and product sustainability

When bidding for, planning, or initiating a project, why don’t companies define sustainability KPIs (Key Performance Indicators) for the delivery process and the end outcome/product? Probably because it’s hard, takes lots of time and eats into profit? Wrong. We have defined some simple sustainability measures we’re currently trialling and have not seen project durations increase, and in all honesty, we’re potentially more likely to win the work (TBC).

Our sustainability measures

These are our three (work in progress) sustainability measures to sit alongside common sense:

  • NFRs (Non-Functional Requirements). Formally documenting environmental, human, and socio-economic requirements. There are different kinds of NFRs for delivery and products, such as the need for long term tracking and assurance.
  • Quality Having spent half my life obsessed with governing and improving technical quality, I see sustainability quality as an extension of that. The ease and flexibility of system change is a technical and environmental quality concern.
  • Risk Climate change is an example of a project and business risk. Investors will now typically request data covering environmental, social and corporate governance, as poor performance and practices pose a substantial financial risk.

Government Digital Services (GDS)

Having been involved in many GDS projects, I’m surprised there is still no mention of sustainability in their technology code of practice, which will help set the benchmark for public services. However, I’m sure it’s coming, and if it’s as successful as other standards is likely to transfer to some private sector projects and gain wider adoption.

Butterfly chaos

Remote by default

Starting San Digital during the pandemic did have some benefits. We were able to design an officeless business with the right tools and processes from day one and adapt quickly to improve constantly. Sales meetings, workshops, and interviews are efficient and effective conducted remotely. Video conference beers are probably the main disappointment, but I have run virtual/remote whisky and wine tasting nights to some success.

Batch meetings

We adopt a common-sense approach to travel; I’m not someone who enjoys or wants to waste time driving up and down motorways with a couple of shirts hung in the back.

When I need to travel, I batch meetings in the same city and plan the content to maximise the time and cover tasks better suited to in-person.

Spending a few days in an Airbnb next to a customer is a great way to bond as a team. It allows us to smash a project and, more importantly, socialise as a team, not in front of a screen.

Electricity and energy

Electric vehicles and smart energy

Our last three projects have centred around electric vehicles and smart energy (mobile apps, cloud platform and technical strategy), which is a natural follow on from my experience and passion for IoT (Internet of Things).

These types of projects have an additional emphasis on sustainability and raise further questions such as:

  • Is that data transfer/cloud consumption necessary?
  • Can we run that process on an edge device rather than in the cloud?
  • Would it be possible to power the IoT device with a solar panel?

In closing

I suspect I will be posting more on this topic as our processes mature; get in touch if you’d like more info.

Cryptocurrency

In the meantime, stop mining carbon-intensive cryptocurrencies; I no longer own any. Musk is promoting dogecoin to accelerate the Mars move ;)

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.