Okay, before I go much further, I want to thank Jessica Kerr for her great article that help inspire me with this article.
I find myself thinking a lot about the software industry as a whole. Since I’ve had the privilege of consulting, I have enjoyed seeing numerous teams and companies over the years. This kind of outside-in view has led me to reach certain conclusions about the industry’s condition, and I’d like to offer a metaphor to explain it.
Imagine a gardener. They grow various flowers and vegetables and enjoy the sight, smells, and flavors of their labor. I want to say this is kind of like our industry as well. We are pretty similar to gardeners. Much like a gardener sows, weeds, fertilizes, and harvests, so do we.
Unfortunately, in this metaphor, I think our industry has become a bit too obsessed with how much we harvest, and this has lead to a gradual and disastrous lack of emphasis on sowing, fertilizing, and weeding.
When I describe harvesting in this metaphor, I’m describing at a high level, getting what the industry seems to want. Currently, this revolves around quick-turnaround on new applications, and in the world of web and mobile, this is the most emphasized.
For the developers, we harvest what is already there. We quickly consume libraries and frameworks. Often this is the first answer to any problem we see. We go look to see what library solves it, or what answer exists on google. While not all of these are bad traits, we are far to quick to harvest another’s work. We often don’t understand what we’re harvesting. We don’t see its diseases. We don’t see if it quite matches the need. We don’t see how we will have to incorporate into future sowing, weeding, and fertilizing.
We, as an industry, I feel, are far too quick to run towards a harvest.
When I describe sowing, I think of the activities we take early in our efforts to make sure we’re intentional about giving ourselves the best possible chances of success.
Now, I want to be careful here as over emphasis on sowing can lead to much-wasted energy. But when I think of sowing activities almost every company can benefit from, we can think about building collaboration and feedback in our teams and work. Sowing these attributes early will allow us to move through our garden quickly, see weeds and disease, and quickly correct it.
Compare this to a lack of sowing where we have a few meetings behind closed doors, put up a road map based on one person’s opinion, and commit everyone to a path. This is sort of like someone yelling out that they want a garden, throwing seeds in an area, and saying, “Just wait and see how much we’ll harvest.”
To me, when we think of fertilizing, we begin to think of the soil and the nutrients and what we’re doing to make sure our delicate plants take hold. This is the growth and development of our people and the deep reflection we take on our effort.
How many of us have a built-in mechanism to grow or develop our skills? How many of us do something called a retrospective that where we can’t remember a single improvement?
It seems interesting that we expect our harvests to yield better results, but we take so little care to make sure the soil is going to nourish our efforts.
Gardens, like software development, exist in a living ecosystem. No matter how clean our PowerPoint decks are and how simple we wish the world were, it simply doesn’t work that way.
Teams exist in groups in companies. Each layer creates interactions that push in specific directions. The software grows and fades with integration, policies, and many hands.
All this to say that our software, like gardens, will have weeds, pests, and diseases that will show up, no matter how much we hope they won’t.
What does this look like in software? Why don’t we talk about changeable design, refactoring, testing, staying current on versions, performance checks, change detection, and all these other ideas that are so often put off until after the harvest?
In other words, we think about stopping the disease after we’ve harvested the infected plant.
Honestly, this is a tough one without simple answers. My increasing worry is that we’ve been leaving behind all that gardeners do to make their flowers bloom and create delicious vegetables. We’re working so hard to show that we can pluck from our garden that we forget that we can be a lot healthier and better for us.
But if I had to pick a place to start, look at what I mentioned in sowing. There is always room for better communication, collaboration, and feedback.