I recently learned that Ken Thompson developed the Linux grep
utility in just one day. One single day! And ever since, I’ve been sitting and wondering… how?
For the uninitiated:
- Ken Thompson is a pioneer of computer science who designed and implemented Unix, B, C, and Plan 9 operating systems. He also invented regular expressions, UTF-8, and Go, and won the Turing Award in 1983.
- Writing a program like
grep
is no ordinary feat. It’s implementation is complex due to the intricacies of regular expressions, performance optimizations, and file handling capabilities.
How did Ken Thompson pull off the unthinkable? That too without Jira tickets, story points, or a bi-weekly sprint review?
It’s baffling, to say the least.
No whiteboard brainstorming sessions? No backlog grooming? No “let’s circle back on this” Slack threads? Just raw genius and code?
I’m sure, if we tried this today, it would require atleast:
- Five microservices (all Dockerized, of course)
- A Kafka pipeline to stream every character from stdin to stdout
- A GraphQL gateway to query the matches
- CI/CD pipelines for automated testing & deployment
- A monitoring solution (like Prometheus) to track performance metrics
- A security audit to ensure compliance with data protection guidelines
It doesn’t stop there.
DevOps team would insist on using Helm charts.
QA team would open a dozen tickets titled “does not work with emoji input”.
Product team would delay release until it supports real-time collaborative regex editing.
To put it simply, what Ken accomplished in a day, we would probably need a month just to organize the kickoff Zoom meeting.
This prompts me to unleash a few questions about the structured chaos (or organized clutter) of contemporary software development:
- Could contemporary dev teams ever replicate such a feat?
- Is our emphasis on organization and planning becoming an obstacle to swift implementation?