AI
An AI CEO finally said something honest
This Reddit post was a treasure trove of comments that resonated strongly with my current opinions about how AI is applied in software engineering. The gist of anoma.ly’s CEO’s comment is that producing code is not usually the bottleneck.
Why AI Adoption Stalls, According to Industry Data
“New research shows that AI initiatives often stall because employees’ industry-shaped anxiety about relevance, identity, and job security drives surface-level use without real commitment.” I appreciated that the authors called into question the typical approaches (more training, clearer mandates, tighter governance) when needs to be addressed is what AI adoption means for individuals. “Stop treating usage as a proxy for buy-in” was another insight.
Code Quality Doesn’t Matter Anymore…
KLOCs are back as a means of measuring output for LLMs despite several prominent software people claiming it’s a worthless metric for quality. When developers outsource the engineering, they never build the mental context to help them debug, refactor, and simplify later. We’re confusing activity with achievement. Gene Kim and Steve Yegge’s book Vibe Coding also used KLOCs as a success measure.
Software Engineering
How to Make the Best of AI Programming Assistants
- Nyquist-Shannon theorem – if you want to accurately represent a signal, you have to sample at twice the frequency
- AI increases the frequency of code production, but the feedback mechanisms haven’t kept up. If you’re waiting until the end of a big AI prompt, you’re undersampling.
- Mistakes are subtle, volume is too difficult to manually verify
- Continuous integration (CI) is the solution; run the pipeline at every significant change
- Ensure the change is releasable (full test suite)
- Use automated checks for correctness (types, linting, coding standards, architecture sanity checks, contract tests)
- Check actual behavior
- For teams using AI
- No large-batches of code; work in small steps and collect feedback
- Optimize for fast feedback
- Treat tests as the source of truth
- Avoid feature (long-lived) branches
- Invest in deployment pipeline (fast, reliable, repeatable)
Approval Tests vs Acceptance Tests: What’s the Difference?
- People often use approval testing frameworks to do characterization tests.
- Instead of arrange/act/assert, approval testing is arrange/act/print/diff (where the diff is a comparison against the previous approved output).
- With the tools, it’s easy to just “accept all” and move on.