How to Stop Our Software Development Projects Becoming Untied

There are loose ends everywhere. This has never been more true than my last visit to the coffee shop near the office, and I learned a useful lesson about the craft of software development. 

Untied

You know me. There isn’t anything worse for me than speaking to strangers I do not know. Yet in the queue at the coffee shop the man alongside me had their shoes untied, looking like he might trip any second.

I pointed to his shoes:

“Your shoes are untied”

and he shrugged at me with the devil-may-care attitude of someone who walks around with their shoes untied. I might guess that he wanted to avoid a conversation with The Secret Developer due to the terse reply he gave.

“They keep doing that”

I then saw him confidently tie his shoes with a double-knot. If you’re double-knotting your shoes how do they possibly come untied?

Had I come across a dancing acrobat who happened to love coffee, right in the center of the office district of my city?

No. Shoes untie themselves. Just as software becomes techdebt itself.

Entropy

Shoes untie themselves, say no less than a set of mechanical engineers at Berkley UC

When running, your foot strikes the ground at seven times the force of gravity. The knot stretches and then relaxes in response to that force. As the knot loosens, the swinging leg applies an inertial force on the free ends of the laces, which rapidly leads to a failure of the knot in, as few as two strides after inertia acts on the laces.

That is, there is a double-whammy of stomping and whipping forces that act in tandem on your sneakers. They loosen the knot and then tug on the free ends of your laces until the whole thing unravels.

The authors of the study noted that shoelaces don’t always become untied for walkers, but eventually, one little bit of motion causes loosening that starts this avalanche effect leading to knot failure and untied shoes.

Just like in software engineering.

Software development

Despite our best efforts — much like the double-knot used for your sneakers — the forces of entropy constantly work against us as software developers. Things “come undone” over time just like shoe laces, but rather than causing a trip hazard, we risk a build-up of tech debt.

The following factors lead to a build-up of tech debt that eventually causes software development work to screech to a halt, or even the working software to collapse and stop functioning.

Stomping Forces

These are external pressures like unrealistic deadlines, changing requirements, and lack of direction. They stretch our projects to their limits, causing stress and potential failure points.

Whipping Forces

Internal team dynamics, poor communication, and lack of proper testing or code reviews. These whip through our projects, pulling at the loose ends until they come undone.

Actions to Prevent Stomping and Whipping Forces Ruining Your Project

To prevent the stomping and whipping forces that cause our software projects to come untied, we need proactive strategies and disciplined practices. Here are some ways developers can combat these forces:

Managing Stomping Forces

Set Realistic Deadlines

Push back against unrealistic deadlines by clearly communicating the necessary time for quality work. Include time to tackle any linked tech debt in your estimate.

Clarify Requirements

Ensure requirements are well-defined and understood before starting a project. Engage in thorough discussions with stakeholders to iron out ambiguities and make sure everyone is on the same page and the right software is developed.

Maintain Flexibility

Adopt agile methodologies that allow for iterative development and accommodate changing requirements. This way, adjustments can be made without causing chaos.

Prioritize Tasks

Use prioritization techniques like MoSCoW (Must have, Should have, Could have, Won’t have) to focus on the most critical features and reduce pressure.

Tackling Whipping Forces

Enhance Communication

Foster open and effective communication within the team. Regular check-ins, clear documentation, and collaborative tools can help keep everyone aligned.

Promote Code Quality

Implement strict code review processes and encourage the use of automated testing. This reduces the likelihood of bugs slipping through and ensures a higher standard of code quality.

Foster a Collaborative Environment

Encourage a culture of collaboration where team members feel comfortable sharing ideas and asking for help. This can mitigate the impact of poor team dynamics and prevent the build-up of “toxic” work environments.

Invest in Training

Provide regular training sessions to keep the team updated on best practices and new technologies. This reduces the skill gap and improves overall productivity.

Document Properly

Maintain clear and comprehensive documentation. This helps in onboarding new team members and reduces misunderstandings during development.

Conclusion

Most developers take the wrong approach.

“With this knot, I will finally stop the avalanche of failure.”

Even though they know that nothing can stop it.

If you think that your laces keep coming untied and nothing can stop it take a different approach.

Velcro

In software development follow the advice given above.

There you go, thanks. Bye!

Previous
Previous

The Urban Legend of the Human Documentation in Software Development

Next
Next

You Don’t Need Coffee. You Need…