I’ve been working on the same project at work for about three months now and I’m well beyond the burned-out point.
You might think that sounds a little bit attention-deficit-disorder, and maybe you’re right. See, the thing is, I work in the IT organization. While that doesn’t afford me the paycheck that I might see in a product development role, it does lend itself to project flexibility - you can do a different thing every week (sometimes every day!), so you don’t get bored. (It does become a little problematic when there are too many things to do because the context-switching between 50 different things takes its toll.)
What I’m working on now is a product-related project. I’m the only full-time developer devoted to the project, and at the outset of the thing, I didn’t know anything about how our product functioned internally… and I sort of liked it that way. Now I’m three months in on one of those typical “too many requirements, not enough time” deals and after a couple of really long weeks in there and more patience-taxing situations than I care to recount, I’m spent. I mean, seriously burned. I’ve lost the caring that I had at the beginning for the elegance of a solution and I’m starting to fall into that “just make it work” stage, which is not something I’m proud of but is what happens when you’re tired of it all.
It wouldn’t be so bad if I hadn’t come off a nine-month bender working on another hardcore “too many requirements, not enough time” project. Finish up one, move right to the next.
I have learned something about myself, sort of keyed off a colleague’s desire to “thank me for my patience” when things are going awry. My patience is like money - there’s a finite amount of it, and it gets “stored up” between taxing situations (maybe pun intended). When a difficult situation comes along, I spend my allotted patience on it and then build up again for the next situation. This project has my patience bank tapped out. Like a cat burglar broke into my patience vault and raided every last bit of it.
Why’s it such a grinder? What’s different about this project than every other project? Let’s do a little post-mortem before the project is finished, shall we?
Requirements: If you’re building a product, you’d better know what you want. Don’t call the developers until you have an idea and can start laying out requirements. When you ask the developers how to deliver the requirements, listen to the answer, then follow it. If they say they need screen shots (because use cases can be sometimes inferred from screen shots or mock-ups), don’t hand them an Excel spreadsheet with lists of prose. Crafting a user interface from prose is like trying to be a police sketch artist… in code. It doesn’t work so well.
Moving Targets: When you’re working on a large project, particularly in a new technology, you need to minimize the number of moving targets in the scenario. If the SDK you’re working with is going to change, you need to at least have firm requirements and a stable development machine to work with. If the development environment is going to change, the SDK needs to remain consistent and the requirements have to be pretty solid. If the requirements are going to change, the rest of the technology needs to be reasonably stable. I’ve got a situation where the SDK is changing, the requirements change, the development environment isn’t the most stable, and the whole concept I’m working in is new to me, so I’m trying to learn it while all of that’s going on. More structure = more productivity in cases like this.
Resources: Every company is running lean nowadays, so it’s no surprise that when someone goes on paid time off there can be bumps in the road. That said, it’s probably not a good idea to schedule a three month project with lofty goals and allocate only two developers, one of whom hasn’t used the technology before and one of whom will be gone for a full month during the middle of the project. Doesn’t work so well.
I could go on and on about this sort of thing, but we’ve all read The Mythical Man-Month so we all know the pitfalls of this stuff. (Oh, and if you’re into that sort of book, Peopleware is a great one.) Let’s just leave it to me being frustrated and tired (I wake up tired, I go to bed tired, I’m tired all day long).
Man, I’m glad my blog is back up. How else am I supposed to vent?