Technical Debt Creating Risk?

Technical Debt Creating Risk?

At a recent meetup for Tech Vancouver, a speaker presented on the concept of technical debt. This term refers to the practice of sacrificing quality for speed or convenience, often leading to less clean or stable code. For coders, this means that certain parts of the code may require shortcuts, creating a kind of indebtedness to those choices. These shortcuts come with both risks and a commitment to revisit and resolve them later. The implications of accumulating technical debt can become more severe over time, potentially leading to significant issues down the road.

Agility Problem?

Agile methodology has emerged as a popular approach in software development, promoting incremental progress by breaking down work into manageable chunks. While Agile aims to support iterative development, it inherently assumes that the product will undergo numerous iterations before reaching a state close to completion. This approach alleviates the burden of achieving perfection on the first or second pass, allowing for flexibility in development. However, it also increases the risk of errors and bugs if not paired with strict quality control measures. Agile is not inherently flawed; rather, it necessitates robust oversight to ensure high-quality outcomes.

Patch, Patch, Patch

In today’s connected world, software patching has become a norm. In the early days of software development, shipping a faulty product could spell disaster due to a lack of effective patching mechanisms. A poorly released product could mean not only a failed launch but also potentially jeopardize the company’s future. Although the risks of releasing subpar software still exist, the bar for what constitutes an acceptable product release seems to have lowered over time.

Forever Beta

Beta releases were once limited to a select group of customers who would test for bugs and ensure that features functioned correctly before the public release. However, the role of beta testing has evolved. Today, beta releases often resemble wide releases, capturing a broad array of issues that should ideally have been identified during quality control. The longstanding IT adage advises against adopting version one of a product, suggesting users wait for the x.1 release to avoid major bugs. Yet, many software products seem to exist in a perpetual state of beta, where new features continuously require patches instead of delivering a polished final product. This reality is often driven by marketing pressures, with strict delivery dates that prioritize timelines over product quality. After all, there’s always the option to patch it later, right?

Risks Exposed

One argument for open-source development is that it fosters transparency; anyone can read, review, comment, and correct code issues. This collaborative approach suggests that open-source code tends to have fewer errors and vulnerabilities due to collective oversight. In the private sector, however, such transparency is less practical. As cyber threats increase, the need for lower-risk software becomes more urgent. In a recent interview with Lachlan Turner of Arcinfosec, we discussed the rising threat of cyber terrorism. Losing data to encryption is a significant concern, but the potential for catastrophic events—such as losing control over pressure in a gas pipeline—highlights the urgency of addressing these risks.

Looking ahead, we may see more legislation aimed at establishing standards for software development, particularly concerning high-value assets. While these controls won't eliminate risk, they could introduce certain standards modeled after manufacturing practices that ensure physical products do no harm. As our world becomes increasingly connected and reliant on software, the exposure to physical risks will likely become a more pressing issue. Software is not just a digital tool; it plays a crucial role in our physical environments, making security and quality more critical than ever.

The Panama Papers - How were they hacked?

The Panama Papers - How were they hacked?

20 Business Applications to Evolve Your Business

20 Business Applications to Evolve Your Business