Slide 1

Slide 1 text

Richard BOWN THE QUEST for Better Software We Are Developers World Congress 2023 @bown_rw

Slide 2

Slide 2 text

Five Daily Habits of Successful Software Teams

Slide 3

Slide 3 text

“It’s the prospect of failure that lights the fi re. The cold unamused stare of the audience is a great motivator” Dara O’Briain

Slide 4

Slide 4 text

1. Advice: There’s a lot of it 2. Good software requires daily attention 3. Building great software is a deeply human activity

Slide 5

Slide 5 text

Independent Software Consultant • Teams and Individuals • Software Leaders (CTOs, CEOs, VPs, Directors, Managers) Likes: • Making sense of complicated advice • Socio-technical systems, Conway’s Law • DevOps, CI/CD, Automation, TDD, DDD • Emergent Architectures Dislikes: • Technical Debt • Poorly tested code • Writing more code than necessary RICHARD BOWN

Slide 6

Slide 6 text

“If the architecture of the system and the architecture of the organization are at odds, the architecture of the organization wins.” Ruth Malan (@visarch) “Any organization that designs a system (de fi ned broadly) will produce a design whose structure is a copy of the organization's communication structure.” Mel Conway, 1967 (@conways_law)

Slide 7

Slide 7 text

Barbara Liskov - Photo: Kenneth C. Zirkel SOLID Principles - Single Responsibility Principle - Open / Closed Principle - Liskov Substitution Principle - Interface Segregation Principle - Dependency Inversion Principle Robert C. Martin - Photo: Angelacleancoder

Slide 8

Slide 8 text

Laziness Impatience Hubris LARRY WALL’S THREE GREAT VIRTUES

Slide 9

Slide 9 text

“software design is an exercise in human relationships” KENT BECK

Slide 10

Slide 10 text

Psychological Safety “To help geeks feel safe in the world.”

Slide 11

Slide 11 text

No content

Slide 12

Slide 12 text

No content

Slide 13

Slide 13 text

The Agile Manifesto 1.Our highest priority is to satisfy the customer through early and continuous delivery of valuable software. 2.Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage. 3.Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale. 4.Business people and developers must work together daily throughout the project. 5.Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done. 6.The most ef fi cient and effective method of conveying information to and within a development team is face-to-face conversation. 7.Working software is the primary measure of progress. 8.Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace inde fi nitely. 9.Continuous attention to technical excellence and good design enhances agility. 10.Simplicity--the art of maximizing the amount of work not done--is essential. 11.The best architectures, requirements, and designs emerge from self-organizing teams. 12.At regular intervals, the team re fl ects on how to become more effective, then tunes and adjusts its behavior accordingly.

Slide 14

Slide 14 text

The Agile Manifesto 1.Our highest priority is to satisfy the customer through early and continuous delivery of valuable software. 2.Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage. 3.Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale. 4.Business people and developers must work together daily throughout the project. 5.Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done. 6.The most ef fi cient and effective method of conveying information to and within a development team is face-to-face conversation. 7.Working software is the primary measure of progress. 8.Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace inde fi nitely. 9.Continuous attention to technical excellence and good design enhances agility. 10.Simplicity--the art of maximizing the amount of work not done--is essential. 11.The best architectures, requirements, and designs emerge from self-organizing teams. 12.At regular intervals, the team re fl ects on how to become more effective, then tunes and adjusts its behavior accordingly.

Slide 15

Slide 15 text

Agile Manifesto Customer Changing Requirements Deliver Work Together Motivated Individuals Environment & Support Team Conversation Working Software Sustainable Development Technical Excellence / Good Design Simplicity Self-Organizing Teams The Team Reflects

Slide 16

Slide 16 text

5IF*EFBMT •-PDBMJUZBOE4JNQMJDJUZ •'PDVT 'MPX BOE+PZ •*NQSPWFNFOUPG%BJMZ8PSL •1TZDIPMPHJDBM4BGFUZ •$VTUPNFS'PDVT

Slide 17

Slide 17 text

Scope: Team works in a context over which they have complete control Flow: Work in Small Batches (Lean, WIP Limits) Make Team Context Better Even Day. Freedom to Experiment without Fear Provide Solutions to Customers with Minimal Overhead Agile Manifesto Unicorn Project Customer Changing Requirements Deliver Work Together Motivated Individuals Environment & Support Team Conversation Working Software Sustainable Development Technical Excellence / Good Design Simplicity Self-Organizing Teams The Team Reflects

Slide 18

Slide 18 text

No prototypes, polish as you go. Make it always deployable/runnable. Keep your code absolutely simple. Great tools make great software. Test your own code. If you see a bug, fix it. Use a development system that is superior to your target. Write your code for this (piece of software) only. Encapsulate functionality to ensure design consistency. Code transparently. Code for the team. John Romero’s 10 Programming Principles

Slide 19

Slide 19 text

Scope: Team works in a context over which they have complete control Flow: Work in Small Batches (Lean, WIP Limits) Make Team Context Better Even Day. Freedom to Experiment without Fear Provide Solutions to Customers with Minimal Overhead Agile Manifesto Unicorn Project John Romero Deliver Quickly and Continuously Focus on Robustness Simplify for Maintainability Use the Right Tools Deliver Quality Code for Now Consistency for Customer Experience Code for the Team Customer Changing Requirements Deliver Work Together Motivated Individuals Environment & Support Team Conversation Working Software Sustainable Development Technical Excellence / Good Design Simplicity Self-Organizing Teams The Team Reflects

Slide 20

Slide 20 text

TEAM

Slide 21

Slide 21 text

SIMPLICITY

Slide 22

Slide 22 text

END-USER

Slide 23

Slide 23 text

UNRESTRICTED

Slide 24

Slide 24 text

QUALITY

Slide 25

Slide 25 text

Quality Unrestricted End-User Simplicity Team

Slide 26

Slide 26 text

“Success is the product of daily habits - not once-in-a- lifetime transformations” “Just because improvements aren’t visible, it doesn’t mean they’re not happening” “You do not rise to the level of your goals. You fall to the level of your systems”

Slide 27

Slide 27 text

No content

Slide 28

Slide 28 text

Richard BOWN https://richardwbown.com/we-are-developers-world-congress-2023/ https://www.linkedin.com/in/richard-bown/ https://twitter.com/bown_rw Q.U.E.S.T