“Driving is not about getting the car going in the right direction. Driving is about constantly paying attention, making a little correction this way, a little correction that way.” Kent Beck, creator of Agile programming.
The nice thing about co-authoring a book is that someone else writes half of it. That might sound obvious, but it’s not. Dr. Hugh Thompson unearthed with concepts for The Plateau Effect that I would have never encountered. Today’s entry includes two of my favorites: Failing slowly, and the “Just Noticeable Difference.”
While high-drama events in our lives get all the attention — breakups, layoffs, graduations, childbirth — almost all the action really happens in between these events. In fact, you can go a long time without hitting one of these dramatic events. Minutes turn to hours, hours to weeks, weeks to months, months to years, and so on. Just because they go by quietly doesn’t mean they are unimportant, however. In fact, they are usually MORE important than melodrama. No marriage ends when someone says the words, “I’m getting a divorce.” It ends during 1,000 small events, like death by 1,000 cuts. For some couples, getting a divorce may be for the best, especially if they’ve tried everything to fix the relationship. Some people may find that speaking to someone like a Divorce Attorney Chicago might be a step worth taking if this is getting too much for them to handle alone. Speaking to someone who will have your best interests at heart could help you get your life back on track.
We may think our lives are on cruise control, but if you’ve ever used cruise control, you know that even on what seems like the straightest patch of road in the Arizona desert, you’d better not take your hands off the wheel. Most of us, however, take our hands off the wheel all the time. cruise along on auto-pilot, and then we’re surprised when the plane we’re flying ends up at the wrong airport.
Sometimes, this is ok. Young parents, for example, crave stability and welcome any part of their lives that can be set on cruise control. For young companies, however, this can be a disaster. There’s nothing worse than spending five years throwing money at a startup that’s doing sort of ok and only losing a little money. When the doors finally close on such a venture, everyone regrets the five years lost that could have been spent on another idea. As we like to say, failing spectacularly — going belly-up in the first six months — is a far better fate than going belly up in five years. Failing slowly is the worst kind of failure because it robs you of resources that could have been spent elsewhere. And if you wanted to fail slowly, you’d put your life on cruise control.
Kent Beck, quoted at the beginning of this chapter, took this idea to heart when he laid down the foundation for a new kind of software development known as Agile.
Before Agile, most big software development projects were rigidly structured and followed a model known as “waterfall.” In waterfall, development occurs in a few monolithic stages, where one flows to another in sequence. It’s an approach that structural engineers might take when they design and build skyscrapers – design, build, test – very structured, very methodical, and like a skyscraper, could take up to several years to complete. Committees would meet and agree on all the features a piece of software would need, while programmers twiddled their thumbs. When the feature set was finished, and set in stone, the “blueprints” would be given to programmers, who slogged through lists of tasks while testers twiddled their thumbs and the committee’s collective blood pressure rose. When programmers finished, their code was handed off to testers who probed for bugs, and everyone else twiddled their thumbs. At this point, almost certainly 18 months or so after the committee first met, someone would mention that Netscape was invented, or Facebook was invented, and so whatever the committee thought it wanted at the beginning had become totally irrelevant. Of course, with the feature set in stone, there was no going back. Finally, some programmers would quit in frustration, and the marketing team would join in the discussion and figure out how to lie about what the software could actually do.
The needs of a software product change quickly. New technologies emerge, and yesterday’s design can become outdated- fast. Features that users once demanded become useless before the product is even shipped. These dynamic systems, where things are constantly changing, meaning that the stable course originally set by software designers was leading projects into irrelevancy.
By the time most waterfall-developed projects were actually finished, they were either irrelevant, or they had to be completely rebooted. The result was delayed, exploding budgets, and some of the most expensive plateaus in modern business. A survey at the time of IT development efforts found that a third of business software projects were canceled before they got completed, and just more than half those that made it to completion cost twice as much as their original estimates. The industry needed to change.
The model used to build software was rigid but needs were dynamic. When we have a rigid model for something that changes often (and quickly) we end up in chaos. Software developers from somewhere like SDLC Partners try their best to be ahead of the game, when it comes to changing trends.
Kent’s approach was to abolish structure and the imagined stability that came with it; his mantra was two words: embrace change. Agile is, by definition, nimble. If you’ve ever been a part of software design, or really any large project, you will understand how rebellious Ken’s ideas are. The new software is built in small, self-contained pieces. Developers must produce working projects they can share with stakeholders within…get this…not years, not months, but weeks! In fact, Agile’s “timebox” requirement means that programmers design, code, test, and share working models of their sub-projects within one to four weeks. Meanwhile, the Agile Manifesto set out what seem like impossibly accommodating principles, such as “welcome changing requirements, even late in development.” And Agile allows managers and sales staff to assess the market and make course corrections. If something was headed towards failure, Agile made it fail fast instead of prolonging the inevitable
Beck describes the process like driving a car:
I can remember clearly the day I first began learning to drive. My mother and I were driving up Interstate 5 near Chico, California; a straight, flat stretch of road where the highway stretches right to the horizon. My mom had me reach over from the passenger seat and hold the steering wheel. She let me get the feel of how the motion of the wheel affected the direction of the car. Then she told me, “Here’s how you drive. Line the car up in the middle of the lane, straight toward the horizon.”
I very carefully squinted straight down the road. I got the car smack dab in the middle of the lane, pointed right down the middle of the road. I was doing great. My mind wandered a little. . .
I jerked back to attention as the car hit the gravel. My mom (her courage now amazes me) gently got the car back straight on the road. My heart was pounding. Then she actually taught me about driving. “Driving is not about getting the car going in the right direction. Driving is about constantly paying attention, making a little correction this way, a little correction that way.”
This is the paradigm for XP. Stay aware. Adapt. Change.
Most of us live our lives as a waterfall, but modern life increasingly demands an agile approach. If we don’t stay aware and adapt, we fail slowly – we run off the road. We fail to notice the changing winds that indicate a storm is brewing. We continue to hope that a bad relationship or a horrible job will somehow get better. We continue to invest our time and energy, to persevere, when deep down we know that we’re headed towards an unrewarding plateau. Change feels decisive; drifting off the road might seem like the result of failing to make choices, but in reality, it is a series of incremental choices of stop versus continues, where we pick the latter. Stopping would be to admit failure and most of us have a deathly fear of failure..
Failing slow is natural because it’s difficult to tell that a situation is incrementally getting worse. If you toss a frog into a pot of boiling water he’ll immediately jump out. But if you put him in the pot a few minutes earlier, while the water is still cool, he’ll ride it out as the temperature climbs. As things get just a little warmer with each passing moment he never notices when he crosses a dangerous threshold – and neither do we. Science has a lot to tell us about this type of incremental failure, and why we have such a hard time noticing it.
The answer sits at the intersection of psychology and physics in a concept known as the just noticeable difference or the JND. Psychophysicists define it as the amount of change in something it would take for us to notice the change. The just noticeable difference has its own law: it takes a specific percentage of change in the intensity of the stimulus for someone to notice, and that percentage is constant for a given stimulus. It’s the word percentage that’s important here. For example, if you stared at a pile of four rocks, walked away for a while, and then came back and saw that there were five rocks, you would likely notice the difference. That’s a one rock change but it’s a twenty-five percent increase in the number of rocks. Now let’s do that mental experiment with a bigger pile. What if someone added one rock to a pile of a hundred rocks? You’re unlikely to notice the difference (that’s only a one percent increase; well below the just noticeable difference).
The just noticeable difference is why parents don’t realize how much their newborn has grown in a week until a friend comes over and says “I can’t believe how big she’s gotten!” To the friend, a week’s worth of growth came all at once. To the parents who see the baby every day, all that incremental hourly growth fell short of the just noticeable difference. Marketers are experts at using the just noticeable difference to their benefit. If they reduce the number of crackers in a box just a little, nobody notices. It’s under the radar of the JND and it lets the company increase profits. If they then introduce a “Jumbo Pack,” they make sure that the perceived increase is above the just noticeable difference. You can only perceive incremental change when there is some point of comparison, some marker – like a friend coming to visit, or an outfit that just doesn’t fit the baby anymore. Without these markers, we’re sitting in a pot of warm water staring at a frog.
The just noticeable difference helps explain why we continue forging ahead when we’re in the throes of a plateau – we just don’t realize how much less we’re getting for our efforts. Once you understand the just noticeable difference, however, you can counteract its effects. By setting clear markers, you can objectively see how you’re progressing, figure out what’s working and what’s failing, correct it and move on. If the frog had a thermometer he’d have known to jump ship and head to another cozy spot (a sink perhaps?). It’s when he boils slowly – and finds out too late – that you get green soup. Without objective markers, changes may happen slower than the just noticeable difference and what was a good model yesterday will be outdated. Conventional wisdom becomes bad advice.