Code review

A good code review process can greatly improve code quality while bringing significant benefits in engineering team culture. 

At its most basic, code review helps catch errors that would otherwise have been missed by the author of a code change. Involving more senior engineers and/or those with more experience in a particular codebase or technique can catch higher level issues such as leaky abstractions, locking hierarchy or threading problems.

But just as importantly, code review can be used to encourage engineers to take responsibility for their work. Not just make something work, but think through what they’re doing, understand it, make a good change, and be prepared to defend it.

A team that can respectfully give feedback and even challenge each others work is a stronger team.

The time / scope / quality tradeoff

The tradeoff inherent between time, scope and quality is fundamental in Software Development. Pushing a team to “crunch” has diminishing returns, and whilst it can be justified occasionally, resentment will build up if it’s used as a crutch for bad planning / unrealistic expectations.

Set pragmatic quality gates for different release types and stick to them. Involve engineers in the planning process to set realistic expectations for release dates, but accept that the more novel something is, the less certain the timeline will be. 

If a release date is set in stone, accept that scope may need to be reduced to make the date, and make the call on what to cut early.

Respect the time / scope / quality tradeoff.

Rigor in Software Development

Different software systems require different levels of rigour applied in their development. Software running on a medical implant is life critical, heavily regulated, and requires the highest degree of rigour.

By contrast, software running a barebones minimum-viable-product for a nascent startup can be Rube-Goldberg-esque in structure, as long as it gets the job done.

Founders should carefully consider what their requirements and expectations are for the products they are building. Developing a system that is reliable, scalable, correct, testable, performant and maintainable software to solve complex problems requires a level of rigour. 

Don’t assume a development team will deliver on system requirements that haven’t been specified.

Attention to detail

Attention to detail is critical in software development. Software is described as code, and computers execute the code as it is written, regardless of the intent of the developer. 

In the best case, errors are picked up by the developers editor or compiler and can be rapidly fixed. Worst case, errors can lurk for years undetected, causing intermittent small failures, or eventually a critical failure.

When every character matters, it pays to “dot your i’s and cross your t’s”. 

Pixiotix

From exceptional circumstances come new directions: announcing Pixiotix Consulting - helping deep-tech companies start, innovate, deliver and grow.

Pixiotix allows me to bring my skills and experience of over 20 years working in innovative, research and development focussed startups and scaleups to a whole range of new and developing ventures.

With a broad and deep background in Software Engineering,Technical Leadership and Product Development, and a distinct focus on deep-tech / high-tech / emerging tech, Pixiotix can help startups & scaleups in many different ways.

I’m always keen to chat to startup founders, so please drop me a line.

I’d really appreciate your support - please sign up to this list, follow Pixiotix and/or myself on LinkedIn and by all means pass on this announcement to colleagues who might be interested to hear more.

© 2021 Pixiotix (ABN 56490051669) - All Rights Reserved