Friday, February 13, 2009

The Crucible: Abandon hope all ye that enter

Our office has 3 senior developers/architects, and about a dozen other development staff of varying levels of competence and experience. We are very busy and always looking for talented new staff. Want to join us? Figure you are architect and can really help us out?

Enter the Crucible my young Jedi. Maybe you will survive to talk about it.

What is the Crucible? It's what I like to call a political/social situation that I think many senior technical staff must survive to become accepted into the office community. You are a talented, knowledgeable and enthusiastic worker. You don't know the answer to every problem there ever was, but given a decent computer, your favorite IDE and a little sealing wax and you KNOW you could fix anything and do a great job doing it.

So you sell yourself as a go-getter, and you get dropped into the maelstrom. No problem! You settle in, you grind through the mess and while under pressure you conceive and then flesh out The Perfect Solution. In every way, The Perfect Solution is going to solve all our technical problems, and launch us into years of contented and relaxed development on time, on budget. You pat yourself on the back and go into your first technical review meeting.

You rocked! You laid out the plan, demonstrated how The Perfect Solution would fix everything, showed how it was affordable, doable, and in every other way was, well. perfect! You paused to accept praise and were slightly surprised to hear nothing but uncomfortable silence.

You just landed in the Crucible my friend, and you don't even know it yet. What happens in the next 10 minutes will determine your career at this place.

You see, here is the thing. Like most shops, our software is bad not by accident, but by DESIGN. We love our software, we love the way it is written. We love the way we write software, and worse. we don't want to change our ways. We just want to do everything we did before but have the bad stuff go away. (Recall the definition of insanity)

If you can't figure out how to do that, then you must not be the right guy for us. In other words, you will not survive the Crucible.

So how do you survive the Crucible? Next post I will talk about how I did, and maybe how you can too.