The return of tech specsWhen I was studying computer science as an undergraduate from 1996 to 2000, I took a course called Software Engineering that focused on the formal process of developing software. We learned to write a functional requirements document describing what the application should do, followed by a technical specification outlining how the software would achieve that. Only after completing both documents, often a semester-long effort with multiple review cycles, were we allowed to write any code. At the time, I didn’t realize it, but we were being taught the waterfall process. In the early days of software engineering, the field looked to other industries for guidance on how to professionalize. The waterfall process came from manufacturing, where building physical products is expensive and hard to change once development begins. That approach made sense for software too, back when applications were shipped on physical disks. But as the internet grew and web applications became the norm, that rigid process started to fall apart. My professional experience. In my early career, I still saw tech specs from time to time, but they gradually faded away. After the release of the Agile Manifesto, teams began looking for ways to speed up development. While the Manifesto doesn’t mention documentation at all, many took it as permission to skip it entirely. After all, most software engineers don’t get into the field because they’re excited about writing specs. The new norm became chatting with a product manager and then jumping straight into coding. By the time I became tech lead on the Yahoo homepage rewrite in 2008, tech specs had mostly disappeared from the company. But with a project that large, involving over 20 engineers across four countries, I brought back a formal spec process for all new features. The team wasn’t thrilled. I heard all the usual complaints: it’s a waste of time, we need more time to code, this shows a lack of trust, I’m acting as a gatekeeper. Still, with support from my director, we stuck with it. And something interesting happened. The number of production issues dropped noticeably for features that followed the spec process compared to those that didn’t. Even better, years later, when a mostly new team was trying to understand the codebase, the old specs became valuable references for how things worked. My ESLint experience. I relearned this lesson while maintaining ESLint. As more features were added over the years, it became harder to remember how everything worked, including the parts I built myself. Eventually, we introduced an RFC process that served the same purpose as a tech spec for new features. This gave the team and the community time to review large changes, identify issues, and explore solutions. The result was better features with fewer problems. And whenever we need to look back at a decision, the RFC is there to remind us not just of what was done but why. AI and tech specs. All my experience with tech specs has convinced me they are an important part of software development. That’s why I’m excited to see AI-assisted programming moving in this direction. I’ve already shared my process of using AI to create a product requirements document (PRD) and a tech spec before asking Copilot to implement a major change. Since then, tools Windsurf’s planning mode, Cursor’s default planning, and Amazon’s new IDE Kiro have focused on creating implementation plans before coding. I’m confident that going forward, software engineers will need to relearn how to create detailed tech specs for complex changes. It’s also likely that AI will help write and review these specs before implementing them. It’s time to embrace tech specs again because they can be a key to advancing your career. Key Takeaways
Stuff I've Enjoyed this Month📝 npm 'is' package hijacked in expanding supply chain attack by Kirill Boychenko, Sarah Gooding 🎬 Cracks in AI productivity bull case by CNBC 📝 It's time for modern CSS to kill the SPA by Jono Alderson 🎬 What's new in web UI by Una Kravets (Chrome for Developers) 📝 Adding a permission system to Node.js by James Snell (NearForm) 🎬 Build epic startups: NotebookLM and Gemini 2.5 workflow by Blazing Zebra What I'm Working On🏠 Real Estate: The midwest, where my properties are located, was hit by tornadoes and flooding. I was lucky that only one property sustained any damage. The basement flooded which then damaged the hot water heater and furnace. Both were repairable, thankfully. The sump pump in the basement just couldn't keep up with the speed with which the water was coming in. Follow my Instagram for real estate photos. 🎧 Podcast: I was on the JS-Craft podcast to talk about AI-assisted programming, JavaScript, and longevity in software engineering. 🍞 Bredbox: When Pocket shut down, I was really disappointed because I used it all the time. So, I decided I would make my own. Bredbox is my not-yet-released clone of Pocket that I'm hoping to make available soon. I have a lot of plans for this project and I'm pretty excited about it. 💻 ESLint:
Coaching for Tech Leads and Staff+ EngineersIf you're a tech lead or staff+ engineer, chances are your manager has no experience in your role. While they may be well-intentioned, they may not know how to help you grow in such a challenging position. That's where working with me can help. As a former tech lead and principal engineer at multiple companies, I learned firsthand the ins and outs of these roles. I work with my clients one-on-one to develop their leadership, communication, organization, and problem-solving skills to succeed in the upper ranks of the individual contributor track.
|
A once-per-month newsletter discussing topics important to senior-level software engineers, with a particular focus on frontend technology and leadership.
Deno: What happened? When Ryan Dahl introduced Deno at JSConf EU 2018, it generated significant interest in the JavaScript community. As the creator of Node.js, Dahl presented a compelling vision: a new runtime that would address the common pain points developers face. Deno (a palindrome of "node") promised a fresh approach with new core APIs, ESM-only modules, familiar web APIs, independence from npm, and security by default. Who better to reimagine the JavaScript runtime than the person who...
Getting Buy-In You’re a tech lead with an idea for a large project, one that would make your life easier. But to make it happen, you'll need help. The project requires additional developers and possibly some cross-team collaboration. That means getting it on the roadmap and securing resources. Whether this is your first proposal or not, there’s a clear path you can follow to get your project approved. Start by clearly defining the problem. To build a strong case for your project, you need to...
Agents and MCP Last month, Visual Studio Code officially launched agent mode. While similar features existed in VS Code forks like Cursor and Windsurf, this release put agents into the hands of the wider developer community. The result? A surge of interest in agents, and in MCP, as developers began experimenting at scale. It may be the most important milestone since GitHub Copilot first arrived, marking a real leap forward in how we build software. So, what is an AI agent? It's a program...