Urgent.News

What's breaking now, across thousands of outlets.

Tech

Testing and Verification in AI SDLC, Technical Debt Management and Guardrails | Weekly Reflections #1

This week I worked on two things that ended up being really connected to each other: an end-to-end test setup for one of the projects I'm working on, and a technical debt management process for my squad. Replacing manual QA with tests an agent can run Before a risky release on this project, we depended on manual testing. I wanted a way out of that, so I built a lightweight end-to-end (e2e) suite,…

This week, I focused on two closely related tasks: developing an end-to-end test setup for a project and implementing a technical debt management process for my team. In the past, manual testing was the norm, but I aimed to replace it with automated tests that could be run by an AI agent before a risky release. To create this setup, I used Pytest and Playwright, a browser automation library, which work well for testing contained services like backend APIs and admin panels, such as Django Admin.

By running the tests from my local machine, I ensured that AI agents could execute the suite independently and validate their own changes. This approach eliminated the need for manual tests for this project's most crucial feature. When a new risky release approached, we ran the suite, and if additional coverage was necessary, we added test cases.

The authentication process for the service was initially limited to inside the cluster, but I added an API key authenticator specifically for local and QA environments, preserving production security. This process took less than a day and proved to be highly beneficial. While working on both tasks simultaneously, I noticed that the lack of harness and guardrails was becoming a significant source of technical debt.

Engineering principles for preventing and fixing debt can still be applied to AI, but we now delegate the implementation to agents rather than writing it ourselves. This shift enables faster development, but we must still prioritize the time invested. I believe that having a robust technical debt management process is easier now than ever, thanks to proper skills and agents integrated with the ticket system.

With guardrails for software architecture, design, security, and performance, we can avoid or mitigate new debt while still benefiting from the increased development speed provided by coding agents. To maximize the efficiency of coding agents, we need to focus on generating high-quality software and reducing the time spent on other aspects of the software development life cycle (SDLC), such as review, testing, and deployment.

These have become new bottlenecks, and guardrails play a crucial role in reducing them. I also reflected on the definition of technical debt, which refers to the hidden consequences of past decisions that hinder software change. Customers notice features and defects, but developers are the only ones aware of the debt, and it remains unnoticed until the system requires modification.

To measure the impact of technical debt, I estimated the hours lost each time a debt item becomes problematic, using a fixed scale (e.g., 15 minutes, 1 hour, 4 hours, 1 day, 2+ days). By calculating the interest burden per time period and dividing it by the repayment effort (fixing time), I determined the return on investment (ROI) in weeks.

For example, a 3-hour debt item with a frequency of four times per week would result in a 12-hour weekly expense, making a 40-hour fix worthwhile within just over three weeks. Implementing a tech debt budget for each development cycle or sprint is essential, ensuring that a 0% debt rate is not maintained as a permanent state. Technical debt that becomes more expensive to fix over time, such as an API with debt, requires careful consideration, especially when data changes are involved.

Even with agentic coding, data changes and migrations remain challenging. Lastly, I pondered how to build performance and race condition checks that an agent can run locally, similar to how it executes the end-to-end suite. Additionally, I questioned how to ensure data changes and migrations are safer when agents perform more changes.

To build guardrails effectively, I must address these concerns and explore ways to mitigate the hidden costs of technical debt.

Written by urgent.news from Dev.to's reporting — not their text. Machine-written — may contain errors; check the original before relying on it.

Read the original at dev.to →

More in Tech

The Expression Engine Is Small. That Is Exactly the Problem.

In June, a distributor customer of ours called about a quote that should never have existed. Their quoting app has a validation rule: the discount field must stay under thirty percent unless the…

  • Expression engine comprises six subsystems with unique parsing methods
  • Inconsistencies in parsing lead to user confusion and mistrust
  • Validation rule failure when referenced field deleted or renamed

CVE-2026-76441: Improper Access Control in Cisco Secure Email Gateway Exposes Restricted Functions

CVE-2026-76441: Improper Access Control in Cisco Secure Email Gateway Exposes Restricted Functions Cisco Secure Email Gateway (formerly Email Security Appliance) sits directly on the mail path of many…

  • CVE-2026-76441 vulnerability exposes restricted functions in Cisco Secure Email Gateway.
  • Remote, unauthenticated attacker can bypass authentication and gain unauthorized access.
  • Cisco recommends applying hardening advisory and consulting specific patched version.

More from Sunday 27 September →