Six years ago, when I first learned about what software developers call unit testing, I was so excited I talked about it in my sleep. I'm told I was trying to explain to my sister just how cool it was. I might have succeeded, too, under two small additional conditions:
- if my sister had been within earshot
- if I'd been using words chosen by my conscious mind
But I was far too excited — and, simultaneously, too asleep — to arrange for either. For a software development team, unit testing is a game-changer. All other things being equal, teams who do unit testing are way better at developing software than teams who don't. I get excited about these things.
A much older software development lesson is that adding programmers to a project doesn't make it go faster. I was hired as a programmer this summer. There's a large, ongoing project on which the team's energies are focused. I was added to it. For some reason, it took me a few weeks to notice that this wasn't going amazingly well. By then, a third of the summer was gone. If I wanted to have a positive impact, I needed to find a new direction, and fast.
The people I work with are smart and get things done. They communicate effectively. They pay attention to how they do their work, look for shortcomings in the process, and opportunistically adopt improvements. They function well individually, they function well together, and they make themselves better over time. Also, they're hilarious and genuinely enjoy each other. They're a very good software development team trying to become a great one. It occurred to me that I know some development techniques that'd accelerate the process.
So I met with my boss and laid things out. “I have eight weeks left before school starts and I'm concerned about my productivity. I could keep being another set of hands, eyes, brain lobes, etc.,” I said, “but that takes well more than three months to start paying off. Or I could leverage my experience to improve your development process.” I explained the risks and benefits of a few potential avenues. She knew a thing or two about unit testing already, and was pretty quickly sold.
”Does this excite you?” she asked.