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.
*sigh*
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?