google-site-verification=ELxx8BxZxh0FRvrpsz3X3djO2LXa4N0xnq_ADRpt8wA The QUEST for Better Software: Happier Teams and Happier Customers - Loving Legacy

Episode 32

The QUEST for Better Software: Happier Teams and Happier Customers

To kick off a new season, I start with a deep dive into the QUEST framework-which-isn't-a-framework. QUEST is a mnemonic that helps you remember essential software delivery tasks. This previews my upcoming "We Are Developers" conference talk in Berlin 2023.

In this episode, I take a view on the Agile Manifesto, the 5 Ideals from the Unicorn Project as well as John Romero's 10 Programming Principles and rewrite them, group them and then provide you with a way to remember how to apply them (and what they mean) every single day whether in your team, for your teams, or your customer.

NOTES

The Agile Manifesto

https://agilemanifesto.org/

The Five Ideals from the Unicorn Project

https://itrevolution.com/articles/five-ideals-of-devops/

https://richardwbown.com/software-engineering-happiness-the-five-ideals/

Scope: ensure that the team can work on a context over which they have complete control. See Team Topologies, see SOLID principles, see DDD.

Flow: Work in small batches with complete mastery of our domain.

Agility: Make our context better every day. Improve our experience.

Freedom: to experiment, to try without fear.

Delivery: provide solutions to customers with minimal possible overhead.

John Romero’s 10 Programming Principles

https://www.youtube.com/watch?v=IzqdZAYcwfY

https://github.com/anttiviljami/romero-programming-principles

https://richardwbown.com/john-romeros-ten-principles-for-building-great-software/

Kent Beck’s Presentation about Refactoring and Cost of Upfront Design:

https://www.infoq.com/presentations/refactoring-cleaning-code/

It’s a great talk and worth watching. Because it exposes the social side of software development.

QUOTES

Transcript
Richard Bown:

Hello and welcome to the Loving Legacy Podcast.

Richard Bown:

My name is Richard Bown.

Richard Bown:

I've been working pretty hard on a talk, which I'm gonna be giving

Richard Bown:

in a few weeks time at the We Are Developers Conference in Berlin.

Richard Bown:

It's called The Quest for Better Software, and it's.

Richard Bown:

Based around the framework that I came up with earlier this year, although I

Richard Bown:

don't wanna call it a framework, I just wanna call it a word, a mnemonic If you,

Richard Bown:

if you like a way of remembering how we can make our software better every day

Richard Bown:

and how we can make our software teams maybe a little happier every day too.

Richard Bown:

So today I'd just like to go through the presentation.

Richard Bown:

In short, , I'm also sharing this on YouTube, so feel free

Richard Bown:

to look at the slides and gimme some feedback on there too.

Richard Bown:

The subject of this talk is about creating better software.

Richard Bown:

And over the last year or so, I've been catching up with many of the

Richard Bown:

theories or the books, podcasts, talks around creation of quality software.

Richard Bown:

Um, after many years of actually building software and being

Richard Bown:

in the trenches, so to speak.

Richard Bown:

Um, working with teams, working in teams, working as a software developer myself.

Richard Bown:

I've seen many things that enable us to improve quality, deliver features

Richard Bown:

faster to production with more clarity over what the expected outcomes will

Richard Bown:

be, better results, essentially.

Richard Bown:

So I have some practical experience, quite a lot of practical experience with this.

Richard Bown:

I also have now have read quite a lot of theory on this and

Richard Bown:

listened to various other opinions.

Richard Bown:

And at one point, or rather towards the end of last year, maybe earlier

Richard Bown:

this year, I thought, well, this is great having all of these books,

Richard Bown:

but how do we remember all the stuff that we have to do as an individual?

Richard Bown:

Because typically when we go into an organization, we're working in a team.

Richard Bown:

To build some software.

Richard Bown:

There are very many opinions based on people's experience and

Richard Bown:

what they've understood, learned, read their education and so on.

Richard Bown:

Um, and it makes it sometimes muddy.

Richard Bown:

It makes it sometimes quite difficult to understand how we can get the

Richard Bown:

best out of our software and the best out of ourselves and our team.

Richard Bown:

Um, every day it becomes sometimes just a case of we are building something, but

Richard Bown:

we don't know quite why we are doing a certain task, like a quality related task

Richard Bown:

or maybe a code review or, um, analyzing a pool request or creating an environment

Richard Bown:

or loading some data for testing.

Richard Bown:

Some of these things, we just kind of fall into a routine around them.

Richard Bown:

So in this talk, I wanted to explore some of the best practices that we have in our

Richard Bown:

industry and which are given to us by our experts, , and maybe make things a little

Richard Bown:

bit clearer for us every single day.

Richard Bown:

So the talk is the quest for better software, daily habits, for happy

Richard Bown:

software teams, and happy customers.

Richard Bown:

Um, so quite a bold statement, I suppose you'd say, and regarding the talk.

Richard Bown:

I also want to discuss fear as well, because fear is something which

Richard Bown:

in a day to day way of working, we shouldn't really come up against.

Richard Bown:

We don't want to, to feel that.

Richard Bown:

We want to feel that we can express ourselves in our best way,

Richard Bown:

especially in a software development job, which is quite creative.

Richard Bown:

We wanna be able to feel that we can.

Richard Bown:

Do what we like, um, within certain guidelines, maybe within

Richard Bown:

certain guardrails in order to express ourselves safely.

Richard Bown:

, another way of looking at, this is the phrase psychological safety,

Richard Bown:

which is currently very popular in the world of software engineering,

Richard Bown:

which enables us, again, to describe a way of expressing ourselves without

Richard Bown:

feeling that we will encounter fear or without fear of something bad happening.

Richard Bown:

Um, Also because this is a presentation I'll be giving on a stage in front

Richard Bown:

of potentially 500 people, fear is something I will be feeling.

Richard Bown:

I'm pretty sure when I get up on a stage and I heard a great quote,

Richard Bown:

from Dara O'Brien, the Irish comedian the other day, saying that it's the

Richard Bown:

prospects of failure that lights the fires, the cold, unused stare of

Richard Bown:

the audience is a great motivator.

Richard Bown:

So that's his view on fear.

Richard Bown:

I think he.

Richard Bown:

Many, probably 30 years ago, turned a switch in his head to

Richard Bown:

say, okay, well I might fail, but this is a way that I can motivate

Richard Bown:

myself to be a success on a stage.

Richard Bown:

So that's a standup comedian's view of how fear can influence them or

Richard Bown:

encourage them to produce better work.

Richard Bown:

However, day-to-day as a software engineer, we don't

Richard Bown:

want to be encountering fear.

Richard Bown:

We want to be able to feel safe and be able to.

Richard Bown:

Execute to the best of our abilities.

Richard Bown:

So how can we do this?

Richard Bown:

So one of the books I've read over the last year or so has been Kent Beck's,

Richard Bown:

test Driven Development by Example.

Richard Bown:

Um, and whilst I wasn't really an XP or T d d follower in any way or at

Richard Bown:

all, I didn't know very much about it.

Richard Bown:

I wanted to open my mind and my ideas to.

Richard Bown:

Different ways of approaching how you build software.

Richard Bown:

And I have to say, when I read this book, when I read test driven development,

Richard Bown:

um, by example, I suddenly thought, aha, okay, this is what I've been missing.

Richard Bown:

Because test driven development is all about writing tests

Richard Bown:

before you write the code.

Richard Bown:

So writing a failing test first, then writing, , a piece of code which will

Richard Bown:

pass the test and then refactoring that code to make it better and make it more.

Richard Bown:

Neat, tidy, um, cleaner and so forth.

Richard Bown:

That's essentially what test driven development is about.

Richard Bown:

So you change, you flip, change the dynamic, you flip it around so that

Richard Bown:

you will create the tests first.

Richard Bown:

So inevitably you will have good coverage because you'll have tests.

Richard Bown:

Covering every single piece of code that you write.

Richard Bown:

You will also think about your design.

Richard Bown:

It forces you to think about your design as you go because you will encounter

Richard Bown:

way that your code is being used as the first thing you need to think about.

Richard Bown:

And a lot of the time as coders, as software engineers, we see a

Richard Bown:

requirement or someone's asked us to do, to do a piece of work, and we will

Richard Bown:

go and write some code to do that?

Richard Bown:

So we'll create a class or a couple of classes and we'll hook them

Richard Bown:

together and they will do something.

Richard Bown:

But we don't typically think about, okay, well how is it gonna

Richard Bown:

be used further down the line?

Richard Bown:

Essentially, unless you do make that flip and you say, flip in your

Richard Bown:

head and you say, okay, I'm gonna deliberately write the test first.

Richard Bown:

This is what TDD is all about.

Richard Bown:

It forces you to design as you go along.

Richard Bown:

And consequently, I watched a, I recently watched a YouTube of his,

Richard Bown:

it was around his stuff, all his good stuff, he was talking about a new

Richard Bown:

book, which he's writing at the moment.

Richard Bown:

Um, and this was a quote from the beginning of that book, , which

Richard Bown:

really struck home with me as well, which is software design is an

Richard Bown:

exercise in human relationships.

Richard Bown:

, and that.

Richard Bown:

Tallys with a lot of the feelings that I have around how software, good software

Richard Bown:

is built and deployed, and also how customers come to see that software too.

Richard Bown:

So as, a quote that I could be use to maybe sum up this talk, it's essentially

Richard Bown:

this software design designers and excise in human relationships.

Richard Bown:

, so test driven development by example, as I've mentioned by Ken Beck.

Richard Bown:

Okay.

Richard Bown:

Onto the subject of my talk, which is something that I also saw the other day,

Richard Bown:

um, and I'm not sure if it's entirely serious by the author, but I do have a bit

Richard Bown:

of a problem with lists of things to do or not do, and you, what you'll see as we

Richard Bown:

get into this talk is that essentially, I've got lots of lists in there.

Richard Bown:

Yeah.

Richard Bown:

Lots of lists of things that we should think about, things that we should

Richard Bown:

probably consider, things that we should do, best practices, et cetera.

Richard Bown:

And it becomes quite unmanageable because we can only keep a few things

Richard Bown:

in our head, as I'm sure you know.

Richard Bown:

Um, and as a man you end up having even fewer things in our head cuz we

Richard Bown:

get very easily distracted by stuff.

Richard Bown:

So.

Richard Bown:

How can we possibly hope to keep all of these best practices, all these

Richard Bown:

ideas, all of these things that we read no matter how good the quality of the

Richard Bown:

source, and how well intentioned and well presented, all of these various

Richard Bown:

ideas are, how can we keep them all in our head, keep them all practical.

Richard Bown:

So today I'm gonna be focusing on three pieces of work.

Richard Bown:

These are.

Richard Bown:

The manifesto for Agile software Development, the Unicorn Project by

Richard Bown:

Gene Kim, who's also, um, co-author of Accelerate, is also co-author

Richard Bown:

of the Phoenix Project all around DevOps maven and very sensible

Richard Bown:

guy who knows a lot about DevOps.

Richard Bown:

Um, There's the DevOp Enterprise Summit that he's always appearing at.

Richard Bown:

I think his company also runs that as well.

Richard Bown:

So he's a name in the world.

Richard Bown:

World.

Richard Bown:

DevOps, the Manifesto for Agile software development, obviously.

Richard Bown:

Um, I hope you've all heard of that.

Richard Bown:

If you're working in.

Richard Bown:

Professional commercial software development today.

Richard Bown:

It's kind of underpins a lot of the things that we do day

Richard Bown:

to day, the way that we work.

Richard Bown:

Um, scrum, lean, Kanban, et cetera.

Richard Bown:

Um, individuals over interactions and also signed by many great software

Richard Bown:

engineers, although all of them unfortunately I noticed are male.

Richard Bown:

But it was, you know, 20 years ago before apparently female

Richard Bown:

software engineers existed.

Richard Bown:

That was a joke.

Richard Bown:

Sorry.

Richard Bown:

Um.

Richard Bown:

No, that's the, that's also the point as well.

Richard Bown:

It's not a joke.

Richard Bown:

But including Kent Beck, um, and Robert C.

Richard Bown:

Martin and many others, famous people and the.

Richard Bown:

The person down on the bottom right there you'll see is John Romero, who was

Richard Bown:

one of the founders of its software.

Richard Bown:

And together with other couple of other guys, they wrote Doom and

Richard Bown:

Quake and many other games, which I spent way too much time playing when

Richard Bown:

I was at university, when I should have been working on other stuff.

Richard Bown:

Um, but his 10 programming.

Richard Bown:

TIPS or 10 software development tips also feature in this torque.

Richard Bown:

So without further ado, onto the first one, which is the Manifesto

Richard Bown:

for Agile software development

Richard Bown:

. So Agile is something which has

Richard Bown:

for do we need to it anymore?

Richard Bown:

And previous to that, it's always been, um, before Agile existed,

Richard Bown:

before the idea of Agile existed, it was Prince two or other software

Richard Bown:

management philosophies, which tended to be very waterfall in their approach

Richard Bown:

to software delivery, which meant.

Richard Bown:

That you would get, gather some requirements from a customer, turn those

Richard Bown:

into specifications, and then drop them down to maybe design a design phase, work

Richard Bown:

alongside some developers or designers to create some designs and then drop

Richard Bown:

it down into a phrase of development, which when some code would get written

Richard Bown:

and then that would stop, and then that would fall off into a phase of testing,

Richard Bown:

and then some testing would, or quality assurance, and then that would continue.

Richard Bown:

Until it stopped and fall off into a another phase of testing or qu

Richard Bown:

or customer acceptance or another round of development, who knows?

Richard Bown:

You know, it was waterfall it, it went in steps essentially through our process.

Richard Bown:

Agile was a reaction to that, and it said, well, We understand fundamentally that

Richard Bown:

we're not gonna get specifications, right?

Richard Bown:

So therefore, why don't we make it faster?

Richard Bown:

And why do we make this that feedback loop quicker?

Richard Bown:

How can we make that quicker?

Richard Bown:

And to do that, we prefer to un to work with, um, prefer to work

Richard Bown:

iteratively closer together with our customers, closer together with

Richard Bown:

our release in our release cycles.

Richard Bown:

Um, and the various.

Richard Bown:

Tips, I suppose you call it, or principles that came from this

Richard Bown:

are preferring individuals and interactions over processes and tools,

Richard Bown:

working software over comprehensive documentation, customer collaboration

Richard Bown:

over contract negotiation, responding to change over, following a plan.

Richard Bown:

So basically keep it nice and loose, but let's focus on delivering stuff.

Richard Bown:

Great idea.

Richard Bown:

A great idea, which has somehow become.

Richard Bown:

Lost maybe over the last 20 or more years and to a point now where we have kind of

Richard Bown:

seen a bit of pushback from around Agile processes around Scrum to just, well,

Richard Bown:

let's just build some code that works.

Richard Bown:

However, agile still underpins a lot of what we do and a lot of the terms there,

Richard Bown:

maybe familiar to a lot of you, so.

Richard Bown:

To analyze it in more detail.

Richard Bown:

I looked at the principles, the 12 principles behind the

Richard Bown:

manifesto, the four main points.

Richard Bown:

I don't think there is any argument about that.

Richard Bown:

We do want to work with people better, and we do with e with each other.

Richard Bown:

We do want to have better software, uh, working software.

Richard Bown:

We want to work closer with our customers, and we want to respond to change faster.

Richard Bown:

Those are all great points.

Richard Bown:

I can't argue with those.

Richard Bown:

So, okay, so the manifesto for Agile Software Development, um, which

Richard Bown:

has 12 principles as part of it.

Richard Bown:

We have the five ideals of the unicorn project, which are locality

Richard Bown:

and simplicity, focus, flow and joy, improvement of daily work,

Richard Bown:

psychological safety, and customer focus.

Richard Bown:

Plus we have John Romero's 10 programming Principles, and I'm gonna go through

Richard Bown:

all of these in turn and break them down and then reassemble them.

Richard Bown:

So starting with the manifesto for Agile software development, we see number one.

Richard Bown:

Our highest priority is to satisfy the customer through early and continuous

Richard Bown:

delivery of valuable software.

Richard Bown:

And I think you'll agree that this is a good priority.

Richard Bown:

It needs to be early, it needs to be valuable, and continuous delivery.

Richard Bown:

Well, we can debate that one, but I think this is a good

Richard Bown:

one to take along with this.

Richard Bown:

Number two, welcome changing requirements.

Richard Bown:

Even late in development, agile processes aren't as change for the

Richard Bown:

customer's competitive advantage.

Richard Bown:

Well, I think in some ways this is a restatement to the first one, um, but

Richard Bown:

it's a good one to maybe take along.

Richard Bown:

We'll keep it in amber, which means we'll take it along with us.

Richard Bown:

Number three is deliver working software frequently from a couple of

Richard Bown:

weeks to a couple of months with a preference to the shorter timescale.

Richard Bown:

Well, I think we've already said this in number one, so

Richard Bown:

we're gonna discard this one.

Richard Bown:

Number four, business people and developers must work together

Richard Bown:

daily throughout the project.

Richard Bown:

I think this is a good one.

Richard Bown:

Let's keep it.

Richard Bown:

Number five, likewise build projects around motivated individuals.

Richard Bown:

Give the environment and support they need and trust them to get the job done.

Richard Bown:

Yeah, we keep on on Number six.

Richard Bown:

The most efficient and effective method of conveying information to and within

Richard Bown:

a development team is face-to-face.

Richard Bown:

Okay, we say that's screen for the minute.

Richard Bown:

We will tweak it slightly later because a lot of us are remote these days.

Richard Bown:

Number seven, working software is the primary measure of progress.

Richard Bown:

Well, I would disagree with this.

Richard Bown:

I think working software is great, but it needs to be working

Richard Bown:

software, which is actually doing what the customer needs it to do.

Richard Bown:

That's more important, so we will ignore this one.

Richard Bown:

Likewise, number eight, agile processes promote sustainable development.

Richard Bown:

The sponsors, developers, and users should be able to maintain

Richard Bown:

a constant pace indefinitely.

Richard Bown:

I don't think this is useful.

Richard Bown:

I believe agile processes promot a way of maybe promoting themselves as part

Richard Bown:

of the way that we, you move forward.

Richard Bown:

They don't themselves promote sustainable development, whatever that actually means.

Richard Bown:

Um, when constant pace is a little bit, I would say overrated.

Richard Bown:

We want to be able to change pace for sure.

Richard Bown:

We want to be able release stuff when we want to, but I don't think constant pace

Richard Bown:

is particularly useful or achievable.

Richard Bown:

Number nine, continuous attention to technical excellence and

Richard Bown:

good design enhances agility.

Richard Bown:

I think we can agree that that's a good thing to think

Richard Bown:

about and take along with us.

Richard Bown:

Number 10, simplicity.

Richard Bown:

The art of maximizing the amount of work not done is essential.

Richard Bown:

Agree.

Richard Bown:

Um, 11.

Richard Bown:

The best architecture's, requirements and designs emerge from self-organizing teams.

Richard Bown:

I would say maybe, but definitely not true.

Richard Bown:

And finally, at regular intervals, the team reflects on how to become

Richard Bown:

more effective than tunes and just its behavior accordingly.

Richard Bown:

Now, I agree with this in concept.

Richard Bown:

However, I believe what I'm trying to propose is that we

Richard Bown:

don't make it a regular interval.

Richard Bown:

We make it continuous.

Richard Bown:

So I'm not gonna take this along, I'm gonna build it into our process.

Richard Bown:

So those are the 12 Agile principles.

Richard Bown:

And from my, from my opinion, the important ones are the ones in green.

Richard Bown:

The ones in orange are ones that we should definitely

Richard Bown:

consider and take along with us.

Richard Bown:

And the ones in red are either duplicates or perhaps misstate something, or

Richard Bown:

perhaps are already wound up in our, or bundled into our process that we're gonna

Richard Bown:

take forward just to simplify things.

Richard Bown:

And we're gonna get rid of the ones in red.

Richard Bown:

Okay, so moving on to the five ideals.

Richard Bown:

These come from the book, the Unicorn Project and the Unicorn Project is a

Richard Bown:

work of fiction written by Gene Kim, and it is the follow up to the Phoenix

Richard Bown:

project book, which was based on same company called Parts Unlimited, who are.

Richard Bown:

A American company who are selling car parts, secondhand car parts, I think

Richard Bown:

also new car parts, um, through a, through a chain of stores in the US

Richard Bown:

and they also have an online presence.

Richard Bown:

And they've realized that they're a company which is kind of at the mercy of

Richard Bown:

its software and IT systems and for too long has still pretended that it's, it's

Richard Bown:

just a car parts company rather than a.

Richard Bown:

An internet business or a business that sells online, therefore, it's

Richard Bown:

kind of realizing too late that it needs to improve its systems.

Richard Bown:

And the first book, the Phoenix Project, is all about the operations of the IT

Richard Bown:

operations and also systems thinking.

Richard Bown:

A lot of talk around, um, ideas that are created, um, or, or discussed in

Richard Bown:

the goal by you, like gold rat, um, systems thinking like I mentioned, also

Richard Bown:

lean, uh, Toyota production system.

Richard Bown:

Lots of those ideas come into the first book, in the second book is

Richard Bown:

more around software development.

Richard Bown:

So the Unicorn project is more around software development process, how

Richard Bown:

teams work together, how individuals feel, , or how they can express

Richard Bown:

themselves in the context of the system.

Richard Bown:

So some systems thinking does in as well, but Unicom project is

Richard Bown:

very much more about software development, but both are excellent.

Richard Bown:

I would recommend you read both of them.

Richard Bown:

, I found both books.

Richard Bown:

As someone who's had experience in these kind of projects

Richard Bown:

are very relatable as well.

Richard Bown:

They're kind of like, get out of my brain.

Richard Bown:

You know, because they do provide such insight into the

Richard Bown:

way things work in industry, the, ideas that people have around.

Richard Bown:

Imposing more structure to make things better, um, is kind

Richard Bown:

of counter counterproductive.

Richard Bown:

That that idea is core to certainly, well probably both books, but certainly

Richard Bown:

the Phoenix project as well, around how the, the default reaction in lots

Richard Bown:

of circumstances is to create more process around our, for example, release

Richard Bown:

processes or our quality processes.

Richard Bown:

so the five ideals of software development are number one, locality and simplicity.

Richard Bown:

So this means being able to make changes.

Richard Bown:

As a team in your own scope, that is building, testing and deploying without

Richard Bown:

being dependent on other teams or their work, which means a simple code base

Richard Bown:

which is not tightly coupled to the rest.

Richard Bown:

, so ideally, maybe again, you could think about architectures.

Richard Bown:

You could work in a scope where a team has complete control over their context.

Richard Bown:

A lot of these ideas discussed in books like Team Topology or perhaps we

Richard Bown:

can understand some SOLID principles or perhaps even architectures such

Richard Bown:

as microservices architecture.

Richard Bown:

So that's locality and simplicity, how teams can get delivery

Richard Bown:

towards the customer quickly.

Richard Bown:

And secondly, related to that, comes from the first.

Richard Bown:

Focus, flow and joy.

Richard Bown:

If the work is decoupled and independent, then teams can feel they're

Richard Bown:

achieving flow through their work.

Richard Bown:

And this means being able to get stuff through to production quickly and again.

Richard Bown:

Number three, improvement of daily work means that the teams or the

Richard Bown:

individuals can address technical debt and architecture decisions every day to

Richard Bown:

make their own code better, to make their improve, their feeling that every day they

Richard Bown:

can do something to improve the next day.

Richard Bown:

There's a great quote from Gene Kim in Accelerate where he says

Richard Bown:

it's important to raise awareness amongst technology leaders about how

Richard Bown:

technical debt and legacy systems slow down valuable development work.

Richard Bown:

And number three is all about addressing that as we go.

Richard Bown:

So number four,

Richard Bown:

psychological safety.

Richard Bown:

And as we mentioned earlier, it is being able to work without fear.

Richard Bown:

To try without fear, and according to accelerate, according to the um,

Richard Bown:

Dora reports and the research that goes on every year around teams

Richard Bown:

and high performing organizations when it for software delivery,

Richard Bown:

psychological safety is one of the top predictors of team performance.

Richard Bown:

It's a good thing to, that people can express themselves essentially in teams.

Richard Bown:

Finally, customer focus.

Richard Bown:

So this is of course providing solutions to customers with minimal possible

Richard Bown:

overhead, continuous delivery of value.

Richard Bown:

, basically , putting the customer at the center of everything that we do.

Richard Bown:

And what I've done is I've gone through these and renamed them

Richard Bown:

slightly or reworded them in order to make them fit in with the other

Richard Bown:

concepts that we already have.

Richard Bown:

So locality and simplicity.

Richard Bown:

I've changed this to scope to ensure that the team can work on a context of

Richard Bown:

which they have comp, complete control.

Richard Bown:

See team topologies, solid principles.

Richard Bown:

D, D, D, focus, flow, and joy.

Richard Bown:

Flow work in small batches with a complete mastery of our domain

Richard Bown:

improvement of daily work.

Richard Bown:

This is around agility, making our context better every day,

Richard Bown:

improving our experience.

Richard Bown:

Psychological safety, freedom to experiment, to try without

Richard Bown:

fear, and customer focused.

Richard Bown:

This is about delivery, providing solutions to customers with

Richard Bown:

minimal possible overhead, continuous delivery of value.

Richard Bown:

So we have now done the 12 Agile principles.

Richard Bown:

We have done the five ideals of software dev development by Gene Kim.

Richard Bown:

Now we're on to the last leg, John Romes 10 programming principles.

Richard Bown:

Thank you for keeping with me this long.

Richard Bown:

I didn't realize this talk was so long.

Richard Bown:

It is now way too long, but I will edit it down and I will use

Richard Bown:

this podcast to give myself some feedback, which I can take into my

Richard Bown:

talk, which is only 25 minutes long.

Richard Bown:

So thank you for sticking with me.

Richard Bown:

And here's the last third.

Richard Bown:

So John Romero's, 10 programming principles, no

Richard Bown:

prototypes, polishes, you go.

Richard Bown:

But I've renamed this deliver stuff quickly and continuously.

Richard Bown:

Number two, make it always deployable, runnable, and it in

Richard Bown:

this case is your software, which I've renamed as focus on robustness.

Richard Bown:

Number three, keep your code absolutely simple, which is simplification,

Richard Bown:

helps the code stay more maintainable.

Richard Bown:

Number four, great tools.

Richard Bown:

Make great software.

Richard Bown:

Use or build the right tools.

Richard Bown:

Time to get important tools, right?

Richard Bown:

Number five, test your own code, deliver quality.

Richard Bown:

Number six, if you see a bug, fix it quality all the time,

Richard Bown:

or you incur technical debt.

Richard Bown:

Number seven, use the right tools to help you build the right code.

Richard Bown:

Number eight, write your code for this piece of software only code in the now.

Richard Bown:

Focus on what you're delivering.

Richard Bown:

Number nine, encapsulate functionality to ensure design,

Richard Bown:

consistency, architectural decisions.

Richard Bown:

Should enable good customer experience, design, and code for the customer.

Richard Bown:

Number 10, code transparently, code for the team.

Richard Bown:

And I've said on this one, be thoughtful towards others in your team.

Richard Bown:

So those are rewording of John Romero's 10 programming principles done Very quickly.

Richard Bown:

I will link his talk below as well.

Richard Bown:

You should check it out so we have.

Richard Bown:

The 10 programming principles of John Romero.

Richard Bown:

We have the five ideals of Gene Kim.

Richard Bown:

We have the 12 Agile principles.

Richard Bown:

What do we do now?

Richard Bown:

Well, what I did is I grouped them and I grouped them like this, so we will see.

Richard Bown:

Be thoughtful towards others in your team.

Richard Bown:

Ensure that the team can work in a context over which they have complete control.

Richard Bown:

Work in small batches with complete mastery of our domain.

Richard Bown:

Freedom to experiment, to try without fear.

Richard Bown:

Work with motivated players.

Richard Bown:

I've lumped these all together under the name team.

Richard Bown:

Number two, keep workflow simple and focused.

Richard Bown:

Focus on robustness.

Richard Bown:

Keep improving our code base and design simplification helps the code

Richard Bown:

stay more maintainable code in the now use or build the right tools.

Richard Bown:

I take time to get the important tools right, et cetera.

Richard Bown:

I've put these under simplicity.

Richard Bown:

Number three, Accepting changes late in the process, delivering

Richard Bown:

stuff quickly and continuously.

Richard Bown:

And you'll see this one, this is the third part of the acronym.

Richard Bown:

This has the a mixture of all three.

Richard Bown:

Source materials in here as well.

Richard Bown:

So we have accept changes late in the process, which

Richard Bown:

is from the Agile manifesto.

Richard Bown:

Deliver stuff quickly and continuously from John Romero.

Richard Bown:

We have delivery, provide solutions to customers with minimal possible

Richard Bown:

overhead from the five ideals along with continuous delivery value.

Richard Bown:

Um, and I've lumped these together under the customer label, but

Richard Bown:

I've called it end user because it works better with the acronym.

Richard Bown:

That's our third number four, freedom to experiment, to try without fear.

Richard Bown:

Be thoughtful towards others in your team, working in small

Richard Bown:

batches, working within your scope.

Richard Bown:

Within the scope you have complete control over.

Richard Bown:

This is obviously about being, in this case, what I've call Call is unrestricted.

Richard Bown:

Unrestricted means that you as a team, Have the ability to do whatever you like.

Richard Bown:

You have , lack of fear.

Richard Bown:

So this is certainly around psychological safety.

Richard Bown:

And within your world, you can do whatever you like to express yourselves

Richard Bown:

in order to, , meet your goals and deliver better quality software.

Richard Bown:

And finally, I.

Richard Bown:

There's just two points here, both from John Romero, which is not really

Richard Bown:

necessarily brought up in the others.

Richard Bown:

Maybe implied and maybe this is the end result of what you get.

Richard Bown:

But this is all around delivering quality, quality all the time.

Richard Bown:

So the final letter is Q for quality.

Richard Bown:

Therefore, you see we have quests, Q U E S T, quality, unrestricted

Richard Bown:

end user simplicity, and team.

Richard Bown:

Somehow we got there through.

Richard Bown:

All of those pieces of work and those pieces of work are

Richard Bown:

in themselves, summations of lots of other pieces of work.

Richard Bown:

So I hope in some ways this has provided a a way that we can consider every

Richard Bown:

day how we can think about ourselves, how we can think about our team,

Richard Bown:

how we can think about our software, and how we can act on it as well.

Richard Bown:

So quality first Q, first end user in the middle.

Richard Bown:

Customer end user at the center of everything.

Richard Bown:

If you just remember those two points, then perhaps I'd have done my job.

Richard Bown:

Quality unrestricted end user simplicity team, thank you

Richard Bown:

so much for sticking with me.

Richard Bown:

It's been a real honor to go through this.

Richard Bown:

For you for the first time ever, and I hope you find this useful.

Richard Bown:

Please let me know in the comments and please get in touch if you're having some

Richard Bown:

success applying this to your daily work.

Richard Bown:

This is Richard Bown for the Loving Legacy Podcast, wishing

About the Podcast

Show artwork for Loving Legacy
Loving Legacy
What are legacy software systems and why are they so fascinating?

About your host

Profile picture for Richard Bown

Richard Bown

DevOps Engineer | Software Designer | Writer