In 1994 I took a contract at Intel writing the client portion of an intercontinental telephony project. I had begin in 1988 so this project was far over my head but I hoped to get a few paychecks before my impostership was discovered.
Then I started thinking; I broke the component down into objects with interfaces, wrote each simple piece separately. Then came one Tuesday six weeks later when I stitched all the pieces together, connected to the local server stub, and started testing. I had done no testing at all as I worked.
No bugs. Not a single one.
My managers issued me a challenge: get the caller’s phone number. I looked up the name for the name-value pair containing that number and wrote some temporary code to put the number in the error message field. Five minutes after the challenge I called out the number.
Intel excused me from the daily meeting and most other meetings to let me work, infuriating the Intel people to whom wasting others’ time was the holiest of grails.
OK. Sounds boastful and you probably don’t believe me. That’s fine; it’s true (OK I found a few minor bugs, misspelled tags mostly). Now: I am not a genius, I am no Wunderkind, but I have one skill that seems to have vanished from the industry in the years since.
I can concentrate.
Back in 1989 at Microsoft the primary imperative of management was to insulate us from interruptions. We had one meeting per week, we had private offices, hallways were quiet as libraries.
All this is gone.
We could get it back, but scrum. But sprints. But social programming.
Therefore, unit tests, therefore TDD, therefore “technical debt.” (Spits).
We have lost our way. Bring back focus and concentration and dump all this methodology horseshit.