Agile Design and Development
So that you can get feedback on it and make it better
The most rewarding iterations
Building is never a straight line
Product owner vs. product manager
A Product Owner is focused on output i.e. how quickly can we build these features?
Product Management, on the other hand, is focused on outcomes i.e. why are we building these features in the first place?
Good design is redesign
Good design is redesign. It's rare to get things right the first time. Experts expect to throw away some early work. They plan for plans to change.
It helps to have a medium that makes change easy. When oil paint replaced tempera in the fifteenth century, it helped painters to deal with difficult subjects like the human figure because, unlike tempera, oil can be blended and overpainted.
Finish designing as close to the end of a sprint as possible
The traditional process of delivering design, vs. delivering design just in time.
Designers are often working at least one sprint ahead of engineers. While one sprint might not seem like much of a lag, a typical product team learns a lot after the design hand-off. ...Instead of working ahead, we should finish designing as close to the end of a sprint as possible: just-in-time design.
We optimize what we measure
Scrum does not say âonly focus on outputâ, but, unfortunately, humans will optimize for what they measure.
If you worry about story points & hitting your estimations, thatâs what is going to consume your attention. That is what you and your team will optimize for.
And that is the core critique of Scrum as it is practiced: That it focuses a product teamâs attention so heavily on delivery â on building lots of features quickly & efficiently â that teams fail to focus on spending time to discover what the right thing to build is.
How we can do better
It actually doesn't matter whether you actually have a formal retrospective. It doesn't matter whether you have four or five labels of things on your retro board, or exactly how you do the retro. What does matter is the notion of thinking about what we're doing and how we can do better, and it is the team that's doing the work that does this, that is the central thing.
The 'date scrum' anti-pattern
Date Scrum is an R&D pattern where developers are asked to estimate software project requirements upfront for the entirety of the project. After the project is green lighted and the budget is set based on the final estimates, the team then holds daily scrums to status and manage risk as they âiterateâ the solution toward the release date. To some, this approach is described as doing Waterfall in sprints.
The fundamental problem with Date Scrum is that the team is de-focused from discovering the best solution. Instead they are heavily focused on delivering Something⢠by the Dateâ˘. Engineers are problem solvers, and if the primary problem becomes delivering Something⢠that will pass QA by the Dateâ˘, they will, with enough pressure, solve that exact problem.
That which requires caring
Today's real world of technology is characterized by the dominance of prescriptive technologies.
The temptation to design more or less everything according to prescriptive and broken-up technologies is so strong that it is even applied to those tasks that should be conducted in a holistic way. Any tasks that require caring, whether for people or nature, any tasks that require immediate feedback and adjustment, are best done holistically. Such tasks cannot be planed, coordinated, and controlled the way prescriptive tasks must be.
Prescriptive technologies eliminate the occasions for decision-making and judgment in general and especially for the making of principled decisions. Any goal of the technology is incorporated a priori in the design and is not negotiable.
Manifesto for Agile Software Development
AÂ DefinitionWe are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value:
- Individuals and interactions over processes and tools
- Working software over comprehensive documentation
- Customer collaboration over contract negotiation
- Responding to change over following a plan
That is, while there is value in the items on the right, we value the items on the left more.
Agile Scrum is not working
The Agile founders had it right, one size doesn't fit all. What the founders perhaps didnât foresee, or couldnât agree on, is that in order for the world to scale and consume their wisdom, it had to be packaged as concrete practices, not as abstract classes with virtual methods to be defined in context. And to the proponents of Agile Scrum, give them their due, for their part, they made it concrete â Agile Scrum has been packaged and delivered. Yet much work remains to realize the promise of Agile, which in summary is, the realization of wise use of lightweight development practices and workflows that flexibly adapt to the changing and evolving needs of customers.
Driving engineers to an arbitrary date is a value destroying mistake
An Article by Gandalf HudlowWhat happens when you apply date pressure to software engineers working on high value software projects? The engineers will focus on delivering Something⢠by the Dateâ˘! This fatal flaw results in delivery of a Something⢠full of chaos and features that nobody really wants or needs.
Beware SAFe, an Unholy Incarnation of Darkness
An Article by Sean DexterThe Lean Portfolio Management function that controls funding, are given sole authority to approve which Portfolio Epics move into each stream. Epics are not explanations about a problem that needs to be solved. They are pre-formed ideas about how best to solve those problems.
Right away we can see signs of the old-school mindset of viewing teams as a âdeliveryâ function instead of a strategic one. The high level thinkers come up with ideas, and the low level doers execute on those ideas. Ignored is the possibility that those closest to the work might be best equipped to make decisions about it. Escaping from this misguided mindset is a core goal of Agile thinking that SAFe fails to remotely accomplish.
Why Scrum is killing your product
An Article by Henry LathamDesign Systems, Agile, and Industrialization
An Article by Brad FrostIâve come to the conclusion that âenterprise web developmentâ is just regular web development, only stripped of any joy or creativity or autonomy. Itâs plugging a bunch of smart people into the matrix and forcing them to crank out widgets and move the little cards to the right.
In these structures, people are stripped of their humanity as theyâre fed into the machine. It becomes âa developer resource is neededâ rather than âOh, Samantha would be a great fit for this project.â And the effect of all this on individuals is depressing. When peopleâs primary motivation is to move tickets over a column, their ability to be creative or serve a higher purpose are almost completely quashed. Interaction with other humans seems to be relegated to yelling at others to tell them theyâre blocked.
Reading âAS PER THE REQUIREMENTSâ in tickets makes me dry heave. How did such sterile, shitty language seep into my everyday work?
The value-destroying effect of arbitrary date pressure on code
An Article by Gandalf HudlowThe mandate from above is clear, just get it done! Avoid everything that's in the way: all advice, all expertise, all discovery efforts that detract from hitting the Dateâ˘!
What these organizations don't realize is that all software change can be modeled as three components: Value, Filler and Chaos. Chaos destroys Value and Filler is just functionality that nobody wants. When date pressure is applied to software projects, the work needed to remove Chaos is subtly placed on the chopping block. Work like error handling, clear logging, chaos & load testing and other quality work is quietly deferred in favor of hitting the Dateâ˘.
Agile is Dead (Long Live Agility)
An Article by Dave ThomasThe word âagileâ has been subverted to the point where it is effectively meaningless, and what passes for an agile community seems to be largely an arena for consultants and vendors to hawk services and products.
âŚLetâs abandon the word agile to the people who donât do things. Instead, letâs use a word that describes what we do. Letâs develop with agility.
- You arenât an agile programmerâyouâre a programmer who programs with agility.
- You donât work on an agile teamâyour team exhibits agility.
- You donât use agile toolsâyou use tools that enhance your agility.
/
Individuals and Interactions over Processes and Tools
Working Software over Comprehensive Documentation
Customer Collaboration over Contract Negotiation, and
Responding to Change over Following a PlanTraditional companies are losing because they mismanage software engineers
An Article by Emma WattersonInnovation is messy, and frankly Anti-Steve [Jobs] canât figure out why you wouldnât just tell people the right thing to build and skip all the trial and error that comes with innovation. Anti-Steve and his board of directors that keep him in place fundamentally believe that they know what needs to be built. Or at least that they can hire the messiah that will come down off the mountain and tell everyone what to build. There is no such messiah.
- ââSteve Jobsââ
Why we stopped breaking down stories into tasks
An Article by Adam SilverThe Scrum process says to break down stories into tasks to make estimation easier, encourage collaboration and to be able to show more granular progress during a sprint.
But after a few sprints, we decided to do the next sprint without creating tasks. As a result we drastically increased our velocity and never went back. Here I'll jot down some of the reasons we decided to do this:
- Breaking down stories into tasks is time consuming
- The tasks we came up with invariably would change as we worked on the stories
- Tasks are repetitive
- Tasks were often carried out in parallel
- Our estimates didn't improve
- It decluttered our task board
- It encouraged collaboration throughout the sprint
While we started our process by following Scrum to the letter, we soon realised that breaking down stories into tasks was something that wasnât worthwhile for us. In the end we realised that it was overplanning and poor use of our time. In the end we used that time to get on with the work and deliver at a significantly faster pace.
Why We Don't Do Daily Stand-Ups at Supercede
An Article by Jezen ThomasYesterday I worked on the widget.
Today I will work on the widget.
I have no blockers.Are you asleep yet? The developers are. You promise them an intellectually stimulating work environment and what they end up with is drudgery.
What value can be had from these meetings anyway? Using âalignmentâ for justification is so nebulous that it is essentially meaningless. Engineers align themselves. They talk. Especially if you hire good ones (which, you know, youâll struggle to if you have a culture of coercing them into this kind of busywork). Where does the real discussion happen? Itâs written down.
Software that nobody wants
An Article by Gandalf HudlowFinding value is the result of enabling individual and group-level discovery attempts. It's not the result of everyone following one leader's gut.
What just happened is a new software product/feature was created that no customer wanted. This happens way too often. In fact, most hyper important software projects that must be done by date certain or else, have deep flaws that cause some variation of this phenomenon, flaws that include:
- Not wanted - Company specified a solution to a problem that customers don't actually have
- No Rarity - Company is pursuing an iKnockoff of existing products. The market already has two scaled competitors with working solutions, customers naturally spend budget on products that are already successful to avoid risk
- Incorrect Packaging - Customers need a website, but the company created an iOS app instead
- Incorrect Pricing - Customers need SaaS pricing, but the company created a shrink wrapped, on-premise solution with CapEx and maintenance agreements instead
Making sense of MVP
An ArticleHenrik Kniberg:
The top scenario (delivering a front tire) sucks because we keep delivering stuff that the customer canât use at all. If you know what youâre doing â your product has very little complexity and risk, perhaps youâve built that type of thing hundreds of times before â then go ahead and just do big bang. Build the thing and deliver it when done.
Doing It Right
An Article by Brad FrostDoing it right requires a different pace of working and a much broader thought process than âok, letâs get this thing out the door.â Which is super tough because most workplaces place a huge emphasis on getting things out the door, and fast. Little agile tickets that are expected to be completed in micro sprints to me seem to be antithetical to doing it right.
Planning doesn't make for better software
AÂ Fragment by Robin RendleMy own time in a Silicon Valley startup has proved this much to be true; planning doesnât make for better software. In fact today our design systems team doesnât have sprints, we donât have tickets or a daily standup. Each day we come to work, figure out whatâs the most important thing that we could be doing, and then weâgasp!âactually do it.
Watching so many other teams slowly flail about whilst they plan for quarter 3.2 of subplan A, whilst our team produces more work in a week than they all do combined in a quarter has been shocking to me.
After four years of working in a large startup, I know what I always assumed was true: you donât need a plan to make a beautiful thing. You really donât. In fact, thereâs a point where overplanning can be a signal of inexperience and fear and bullshit. The scrum board and the sprints and the inane meetings each and every day are not how you build another Super Mario 64.
Instead all you have to do is hire smart people, trust them to do their best work, and then get the hell out of their way.
Agile as Trauma
An Essay by Dorian TaylorThe Agile Manifesto is an immune response on the part of programmers to bad management.
Yagni
AÂ Definition by Martin FowlerYagni originally is an acronym that stands for "You Aren't Gonna Need It". It is a mantra from Extreme Programming that's often used generally in agile software teams. It's a statement that some capability we presume our software needs in the future should not be built now because "you aren't gonna need it".
The State of Agile Software in 2018
AÂ Talk by Martin FowlerOn the surface, the world of agile software development is bright, since it is now mainstream. But the reality is troubling, because much of what is done is faux-agile, disregarding agile's values and principles. The three main challenges we should focus on are: fighting the Agile Industrial Complex and its habit of imposing process upon teams, raising the importance of technical excellence, and organizing our teams around products (rather than projects).
Product vs. Feature Teams
An Article by Marty CaganThis article is certain to upset many people.
Steve Jobs: The Lost Interview
- ââOn Valueââ
- ââOn Businessââ
- ââOn Programmingââ
- ââOn Successââ
- ââOn Processââ
On Value
It was clear that [Hewlett-Packard] recognized that its true value was in its employees.
On Business
How do you learn to run a company at 21 with no business experience?
Throughout the years in business I found something, which is, Iâd always ask why you do things, and the answers you invariably get are âoh thatâs just the way itâs done.â Nobody knows why they do what they do, nobody thinks about things very deeply in business. Thatâs what I found.
Iâll give you an example. When we were building our Apple Is in the garage we knew exactly what they cost. When we got into a factory in the Apple II days, accounting had this notion of a âstandard cost.â Where youâd kind of set a standard cost and then at the end of the quarter youâd adjust it with a variance. And I kept asking, âwhy do we do this?â And the answer was just âwell thatâs the way itâs done.â And after about 6 months of digging into this what I realized was the reason you do it is because you donât really have good enough controls to know how much it costs, so you guess, and then you fix your guess at the end of the quarter. And the reason you donât know how much it costs is because your information systems arenât good enough.
But nobody said it that way. And so later on when we designed this automated factory for Macintosh we were able to get rid of a lot of these antiquated concepts, and know exactly what something costs, to the cent. And so in business a lot of things are what I would call âfolklore.â Theyâre done that way because they were done that way yesterday. And so if youâre willing to ask a lot of questions about things and work hard you can learn business pretty fast. Itâs not the hardest thing in the world. Itâs not rocket science.
On Programming
I think everyone in this country should learn a computer language because it teaches you how to think. Itâs like going to law school â I donât think anyone should be a lawyer, but going to law school could be useful because it teaches you how to think in a certain way. So I view computer science as a liberal art.
On Success
The technology crashed and burned at Xerox.
What happens is, like with John Sculley, John came from PepsiCo, and they at most would change their product maybe once every ten years. To them a new product was like a new size bottle. So if you were a product person you couldnât change the course of that company very much. So who influenced the success of PepsiCo? The sales and marketing people. Therefore they were the ones that got promoted and they were the ones that ran the company.
Well, for PepsiCo that might have been ok, but it turns out the same thing can happen in technology companies that get monopolies, like IBM and Xerox.
If you were a product person at IBM, or Xerox, so you make a better copier or a better computer? So what? When you have a monopoly market share, the company isnât any more successful. So the people that can make the company more successful are sales and marketing people, and they end up running the companies. And the product people end up getting driven out of the decision marking forums. And the companies forget what it means to make great products. The product sensibilities and the product genius that brought them to that monopolistic position gets rotted out by people running these companies who have no conception of a good product vs. a bad product. They have no conception of the craftsmanship thatâs required to take a good idea and turn it into a good product. And they really have no feeling in their hearts, usually, about wanting to really help the customers.
So thatâs what happened at Xerox.
On Process
People get confused, companies get confused. When they start getting bigger, they want to replicate their initial success, and a lot of them think that somehow thereâs some magic in the process that theyâve created. And so they start to institutionalize process across the company. And before very long people get very confused that the process is the content.
In my career Iâve found that the best people are the ones who really understand the content. And theyâre a pain in the butt to manage. But you put up with it because theyâre so great at the content. And thatâs what makes great products. Itâs not process, itâs content.
On Greatness
Whatâs important to you in the development of a product?
One of the things that really hurt Apple was that after I left John Sculley got a very serious disease. And that disease â Iâve seen other people get it too â itâs the disease of thinking that a really great idea is 90% of the work, and if you just tell all these other people âhereâs this great idea,â then of course they can just go off and make it happen.
The problem with that is that thereâs just a tremendous amount of craftsmanship in between a great idea and a great product. And as you evolve that great idea it changes and grows. It never comes out like it starts, because you learn a lot more as you get into the subtleties of it, and you also find there are tremendous tradeoffs you have to make, there are just certain things you canât make electrons do, there are certain things you canât make plastic, or glass, or factories, or robots do. And as you get into all these things, you find that designing a product is keeping 5,000 things in your brain, these concepts, and just fitting them all together and continuing to push to fit them together in new and different ways to get what you want. And every day you discover a new problem or a new opportunity to do it a little differently. And itâs that process that is the magic.
On Teamwork
What Iâve always felt that a team of people doing something they really believe in is like, is like when I was a young kid, there was a widowed man that lived up the street. He was in his 80âs, and a little scary looking, and I got to know him a little bit â I think he paid me to cut his lawn or something â and one day he told me, âcome into my garage, I want to show you something.â
And he pulled out this dusty old rock tumbler. It was a motor and a coffee can and a band between them. And he said âcome out here with me,â so we went out to the back and we got some rocks, just some regular old ugly rocks and we put them in the can with a little bit of liquid and a little bit of grit powder, and he turned the motor on and said âcome back tomorrow,â as the tumbler was turning and making a racket.
So I came back the next day and what we took out were these amazingly beautiful and polished rocks. The same common stones that had gone in â through rubbing against each other, creating a little bit of friction, creating a little bit of noise â had come out as these beautiful polished rocks.
And thatâs always been my metaphor for a team working really hard on something theyâre passionate about. Itâs that through the team, through that group of incredibly talented people bumping up against each other, having arguments, having fights sometimes, making some noise, and working together, they polish each other, and they polish their ideas. And what comes out are these really beautiful stones.
On Criticism
People are being counted on to do specific pieces of the puzzle. And the most important thing I think you can do for somebody whoâs really good and whoâs really being counted on is to point out to them when their work isnât good enough, and to do it very clearly, and to articulate why, and to get them back on track. And you need to do that in a way that does not call into question your confidence in their abilities, but leaves not much room for interpretation.
On Help
Microsoftâs orbit was made possible by a Saturn V booster called IBM.
On Taste
The only problem with Microsoft is they just have no taste. They have absolutely no taste, and what that means is â and I donât mean that in a small way, I mean that in a big way â in the sense that they donât think of original ideas, and they donât bring much culture into their product. And you say âwell why is that important?â Well, you know, proportionally spaced fonts come from typesetting and beautiful books, so thatâs where one gets the idea. And if it werenât for the Mac they would never have that in their products.
And so I guess I am saddened, not by Microsoft's success â I have no problem with their success. They have earned their success â I have a problem with the fact that they just make really third-rate products. Their products have no spirit to them, no spirit of enlightenment about them. They are very pedestrian. And the sad part is that most customers donât have that spirit either. But the way that weâre going to ratchet up our species is to take the best and to spread it around to everybody so that everybody grows up with better things, and starts to understand the subtlety of these better things. And Microsoft is McDonaldâs.
So thatâs what saddens me â not that Microsoft has won, but that Microsoftâs products donât display more insight and more creativity.
On Technology
As we look back 10 years from now, the web is going to be the defining technology, the defining social moment for our generation.
I think itâs going to be huge.
On Tools
I read an article when I was very young in Scientific America. It measured the efficiency of locomotion for various species on the planet â you know, for bears and chimpanzees and raccoons and birds and fish â how many kilocalories per kilometer did they spend to move? And humans were measured too. And the condor won, it was the most efficient. And mankind, the crown of creation, came in with rather an unimpressive showing about a third of the way down the list.
But somebody there had the brilliance to test a human riding a bicycle, and it blew away the condor, all the way off the charts. And I remember this really had an impact on me, I remember thinking that humans are tool builders, and we build tools that can dramatically amplify our innate human abilities.
And to me â we actually ran an ad like this, very early at Apple â the personal computer is the bicycle of the mind. And I believe that with every bone in my body, that of all the inventions of humans, the computer is going to rank near if not at the top as history unfolds and we look back. It is the most awesome tool that we have ever invented, and I feel incredibly lucky to be at exactly the right place in Silicon Valley, at exactly the right time where this invention has taken form.
On Theft
How do we know whatâs the right direction [for computers to take]?
Ultimately it comes down to taste. It comes down to trying to expose yourself to the best things that humans have done, and then trying to bring those things in to what youâre doing.
Picasso had a saying: âGood artists copy, great artists steal.â And we (at Apple) have always been shameless about stealing great ideas. And I think part of what made Macintosh great was that the people working on it were musicians and poets and artists and zoologists and historians who also happened to have been the best computer scientists in the world. But if it hasnât been for computer science, these people would all be doing amazing things in life in other fields. And they brought with them â we all brought to this effort â a very liberal arts air, a very liberal arts attitude, that we wanted to pull in the best we saw in these other fields into ours.
On Expression
There was a germ of something there. And itâs the same thing that causes people to want to be poets instead of bankers. I think thatâs a wonderful thing, and I think that same spirit can be put into products, and those products can be manufactured and given to people and they can sense that spirit. If you talk to people that use the Macintosh, they love it. I mean you donât hear people loving products very often. But you could feel it, there was something really wonderful there.
So I donât think that most of the really best people that Iâve worked with have worked with computers for the sake of working with computers. They work with computers because they are the medium that is best capable of transmitting some feeling that you have that you want to share with other people. And before they invented these things, all these people would have done other things. But computers were invented, and they did come along, and all these people did get interested in them, either in school or before school, and said âHey, this is the medium that I think I can say something in."
On Talent
I observed something fairly early on at Apple, which I didnât know how to explain then, but Iâve thought a lot about it since. Most things in life have a dynamic range in which [the ratio of] âaverageâ to âbestâ is at most 2:1.
For example, if you go to New York City and get an average taxi cab driver, versus the best taxi cab driver, youâll probably get to your destination with the best taxi driver 30% faster. And an automobile; whatâs the difference between the average car and the best? Maybe 20%? The best CD player versus the average CD player? Maybe 20%? So 2:1 is a big dynamic range for most things in life.
Now, in software, and it used to be the case in hardware, the difference between the average software developer and the best is 50:1; maybe even 100:1. Very few things in life are like this, but what I was lucky enough to spend my life doing, which is software, is like this.
So Iâve built a lot of my success on finding these truly gifted people, and not settling for âBâ and âCâ players, but really going for the âAâ players. And I found something⌠I found that when you get enough âAâ players together, when you go through the incredible work to find these âAâ players, they really like working with each other. Because most have never had the chance to do that before. And they donât work with âBâ and âCâ players, so itâs self-policing. They only want to hire âAâ players. So you build these pockets of âAâ players and it just propagates.