Skip to content

Commit

Permalink
Merge pull request #282 from rob-newsome/gh-pages
Browse files Browse the repository at this point in the history
Our Approach to Software Development and profile update.
  • Loading branch information
mgriffin-scottlogic authored Dec 13, 2024
2 parents 860138f + 622388b commit 2ef856e
Show file tree
Hide file tree
Showing 3 changed files with 83 additions and 1 deletion.
4 changes: 3 additions & 1 deletion _data/authors.yml
Original file line number Diff line number Diff line change
Expand Up @@ -120,6 +120,7 @@ active-authors:
- rgarside
- rgriffiths
- rlewis
- rnewsome
- rpilling
- rrogers
- rstrange
Expand Down Expand Up @@ -771,8 +772,9 @@ authors:
author-summary: "<p>Lead Developer at Scott Logic in Edinburgh.</p><p>I've been programming computers since before the web and doing it professionally since last century. Building the right thing is the hard part. Making it efficient is the fun part.</p>"
picture: robert-lewis.jpg
rnewsome:
author-summary: "Scott Logic's Head of Development, Newcastle upon Tyne"
author-summary: "I'm a Principal here at Scott Logic, and our Capability Lead for Development. I'm based in Newcastle upon Tyne."
name: "Rob Newsome"
picture: picture.jpg
rmarcalo:
name: "Rui Marcalo"
picture: picture.jpg
Expand Down
80 changes: 80 additions & 0 deletions _posts/2024-12-09-our-approach-to-software-development.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
---
title: Our Approach to Software Development
categories:
- Tech
tags:
- people
- teams
- values
- principles
summary: In the fourth of our series setting out how we work with our clients, we explore software development. We describe our underlying approach based on a set of guiding principles we've distilled from our collective experience.
author: rnewsome
---

_This is the fourth in a series of blogs setting out how we work with our clients, with earlier posts covering our approach to [Architecture]({{ site.github.url }}/2024/10/15/our-approach-to-architecture.html), [Delivery]({{ site.github.url }}/2024/10/23/our-approach-to-delivery.html) and [Testing]({{ site.github.url }}/2024/10/30/our-differentiated-approach-to-testing.html)._

For twenty years, Scott Logic has been building business-critical systems for some of the world’s largest organisations, from capital markets to public services. Our consultants have tackled a wide array of complex problems for many clients over that time – across a diverse set of technologies.

We tailor our engagement model to fit our clients and the context of the work. Sometimes this means we provide self-directed, multidisciplinary teams to deliver an outcome. At other times, our engineers are working collaboratively alongside our clients' own people. Sometimes the work is more advisory, where we’re helping a client determine a way forward or overcome a particular challenge.

There’s a lot that changes based on the sector we’re working in, the technology stack we’re using, the nature of the engagement or the specifics of each piece of work. But across it all, we’ve found there’s a consistent underlying approach.

Based on our experience, we've distilled the following principles for software development to communicate how we work and help guide our teams.

## 1) Build quality in

Doing good work is our default – it motivates our teams, delivers great results, and maintains our ability to deliver at pace. We establish high expectations throughout the team, take code reviews seriously, and intentionally manage technical debt.

We understand that some criteria for ‘high quality’ vary with context, and we need to account for the big picture. We take a holistic view of software design, delivering outstanding experiences for users underpinned by robust, reliable technology, and with future maintenance and extensibility in mind.

We write clean, clear code, prioritising readability, consistency and following established idioms. We make sure our work is both testable and well tested. We build software that we – or our clients – can maintain long term.

## 2) Make pragmatic technology choices

In a fast-evolving tech landscape, we look beyond the hype of current trends to focus on technologies and practices that deliver real value.

Our practical approach means we build up a strong understanding of our clients’ unique circumstances before recommending tools, technologies and approaches, keeping their requirements top of mind. We use our experience to ensure that our technology choices support innovation but will also be practical, reliable and integrate well into what’s already in place.

Scott Logic is technology-agnostic and vendor-independent. We pride ourselves on giving unbiased advice to best serve our clients’ long-term needs.

## 3) Embrace open source, open standards and cloud

Building on existing foundations allows teams to innovate faster and focus on meeting their own specific requirements rather than reinventing the wheel.

We favour open source, and actively contribute to open source projects and the community – including through our work with FINOS.

Open standards allow us to harness collective industry expertise, supporting seamless integration and preventing vendor lock-in.

Cloud services provide rapid deployment, scalability, flexibility, and cost-efficiency—offering instant access to cutting-edge tools without the overhead of managing complex infrastructure. We believe cloud is a value driver, providing a platform for change and a foundation for business agility.

## 4) Move safely at pace with tools and automation

We maximise team productivity with the right tools and automation – and know how to use them effectively. Efficient CI/CD pipelines reduce manual work while increasing repeatability, meaning reliable delivery at pace – allowing us to put our work in the hands of users quickly. Continuous integration, code analysis, and automated testing provide fast feedback. We recognise the benefits that AI coding assistants can provide, but use them thoughtfully.

## 5) Embed security from the outset

We design and implement appropriate controls, grounded in a good understanding of potential threats and the risks associated with technologies we’re using.

Automated pipelines safeguard software integrity, typically shifting security checks left and supporting a proactive approach to vulnerability management, in line with DevSecOps practices.

## 6) Demonstrate incremental progress

Our approach is practical, pragmatic, and genuinely agile. We do just enough up-front analysis to understand the current state and anticipate future direction, while focusing on incremental next steps to make measurable progress. Design is intentional but starts small and evolves over time.

We demonstrate value early and often with releasable, working software. We learn from feedback – we're not afraid to experiment and fail fast where it’s safe to do so. Frequent, smaller releases reduce risk and accelerate delivery of changes to meet our users’ evolving needs.

## 7) Stay focused on the outcome

We don’t lose sight of the desired outcome. Our teams demonstrate high levels of ownership, proactively driving progress, exploring requirements and overcoming challenges.

We embrace multidisciplinary work, taking an interest in all aspects of the solution. We understand the importance of relationships and collaboration with our stakeholders, involving them early and getting feedback often.

Recognising that our success involves more than simply writing good code, we challenge assumptions and deliver what’s truly needed for the business and our users, even when it requires difficult conversations.

## These principles in context

There is, of course, more to developing good software (and being a genuine long-term partner for our clients) than what’s covered here – including how our multidisciplinary teams are formed and work together to deliver value. You can read more about our approach to [Architecture]({{ site.github.url }}/2024/10/15/our-approach-to-architecture.html), [Delivery]({{ site.github.url }}/2024/10/23/our-approach-to-delivery.html) and [Testing]({{ site.github.url }}/2024/10/30/our-differentiated-approach-to-testing.html), and there’s more to follow around our broader approach to software consultancy.

## How can we help you?

If this approach resonates with you, find out more about [What we do](https://www.scottlogic.com/what-we-do) and how we can help your organisation.
Binary file added rnewsome/picture.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit 2ef856e

Please sign in to comment.