Artwork for podcast Loving Legacy
The QUEST for Better Software: Happier Teams and Happier Customers
Episode 323rd July 2023 • Loving Legacy • Richard Bown
00:00:00 00:28:10

Share Episode

Shownotes

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

Transcripts

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

Chapters

Video

More from YouTube