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
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.
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
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