Growing Software: Gardening Advice for Better Harvests
At a Diversity & Inclusion conference a couple years ago, I attended a session on generational differences. I expected to learn a few tidbits that I would share with my co-workers and possibly integrate into my leadership repertoire. I got SO much more than tidbits from that session. That day, I connected with a wonderful mentor, role model, and inspirational leader.
Jones’ most recent book is Always Growing. In this entertaining and educational read, David, a leader who may have bitten off more than he can chew in his new role, uses lessons learned from his sister’s gardening expertise to improve conditions in his department. Through David’s activities we learn the importance of growing, cultivating, pruning, and harvesting to channel our energy into achieving desired objectives.
Instead of a traditional book review I’ve taken Jones gardening advice and integrated it into my world – software development. The seeds sown to develop software are ideas and innovations designed to create value somewhere in the business model of an organization. Software may not grow on trees but what could happen if we pretended that it did?
Let’s look at software development through a gardening lens, as outlined in Always Growing, to find out.
GROW. Create the environment that gives a plant the best chance to grow. The circumstances (light, temperature, and soil conditions) matter.
What can you do to create the right environment for a bountiful harvest of software functionality? Successfully growing software requires:
People equipped with a balance of social and technical skills
Technology that enables and augments business operations and innovations
Processes to support the interactions between stakeholders (human and computer; internal and external)
A culture that emphasizes shared objectives and empowers its people to define and achieve their collective goals
As leaders, our responsibility is to combine these factors in a manner that generates positive outcomes. Do team members possess appropriate skills? Are you predicting and removing obstacles (i.e. broken processes or dated technology)? Do you understand and value the talents your team members possess?
CULTIVATE. Stay focused on what you want to grow and don’t let the weeds grow. Seek advice and share ideas to improve results.
Careful cultivation of software development activities enables people, processes, and technologies to stay focused on shared objectives. Typical weeds (challenges) in IT projects include requirements ambiguity, resistance to change, and scope creep. These weeds must be addressed before they overrun the project and suffocate the intended objectives. Can you identify the weeds on your projects? How do you proactively address unwanted circumstances? Who might help you strengthen your weed-fighting abilities?
PRUNE. Pruning channels energy into the areas of greatest importance. Pruning should occur at the first sign of undesirable outcomes.
Project activities consume finite resources. Expending vital resources on non-essential tasks inhibits the ability of stakeholders to achieve desired results. For example, the inclusion of “nice-to-haves” uses time previously allocated for the coding and validation of core functionality. Time is usually of the essence in IT projects and, while one or two additions might be sustainable, adding functionality mid-cycle may set an unsustainable precedent with your stakeholders. Pruning unnecessary requests by saying “no” reserves resources that could allow you to say “yes” to an even better opportunity.
(This is not to say that project functionality cannot or should not be changed. Pruning guidelines should support the specified objectives of the organization and team. If those goals change so should the supporting guidelines and activities.)
HARVEST. Purposefully celebrate your harvest(s). Reflect on the steps that enabled you to achieve your results, so that future harvests benefit from the knowledge.
In software development, the ultimate harvest is the successful delivery of an IT project that introduces new software into the business model. Celebrating the successful harvests (completion of projects) and thanking contributors is a common occurrence (at least in my experience). However, taking the time to reflect on what worked and what didn’t work during the project is less common. Even worse, if reflection did occur, is when the knowledge obtained wasn’t integrated to inform future activities. How well did activities performed align to the desired objectives? What should you do more of? Less of?
Interim milestones are also harvests worthy of celebration, as each task checked off the to-do list brings stakeholders one step closer to reaping project benefits. Recognition of growth and performance improves engagement levels and motivates team members to press on. Taking time to reflect on progress after a build or upon completion of a test run may offer insight into areas in need of cultivation or pruning.
We learn as we grow and, since we’re Always Growing, make sure you control what gets planted, and ultimately harvested, in your gardens.
This post contains affiliate links. Author Jones Loflin provided me with a copy of his new book, Always Growing, in exchange for feedback.