I’ve been a SOLID1 fan of TDD over many years and have spent a lot of time drilling myself in writing tests first to drive applications forward. I truly believe I have been at a place where my BIT has been FLIPPED. There are occasions though when attempting to write tests first have just been hard and completing a feature with test-first has been a record in will power and what felt like an eternity to deliver a feature. But if it was easy then everyone would be doing it.
Let me introduce you to Skybert (pronounced Sheeburt, for those of that haven’t grown up in Norway). He’s my imaginary developer-friend currently working at Mega Enterprise Inc Ltd Corp. He’s been butting heads with the lead developer, Jack, for a while now. They don’t seem to be seeing eye to eye on a feature that Skybert implemented. You see, Jack doesn’t like how Skybert writes his code. Formatting is wrong and he uses way too long variable names, and he doesn’t write a single comment and…(list goes on)! Jack hates reviewing Skyberts code. Skybert usually gets his code back from Jack, with a long list of TODOs. So Skybert goes off to re-do most of his work just to give it back to Jack…When Jack’s finally happy with the code; It adheres to his preferred coding style and uses the correct enterprise patterns that have been decided upon. He allows it through the magic gates to master.
We’ve been joking a long time about the rate new technologies arise and how we as software developers need to keep abreast of the new so we don’t get completely outdated and irrelevant. With web development though, we’ve set a new standard.
I have been open and committed to my desire to change. Or rather push myself to professional excellence in my areas of interest. Through this I’m creating tangible goals… so this should get me all set up, right? RIGHT!? …
How to go about change though? Given the desire to push myself to new heights and at the same time change several aspects I’ve embraced the blogosphere again. But have I started out on the wrong foot?
“Boundary” - Something that indicates bounds or limits. Also called frontier.Most of us have heard about “pushing yourself to the limits”. It’s something I associate with performing ones very best for a given end result. New personal record at the local 10k race? Getting to market with a new product? Landing the stage 1 rocket after it’s delivered payload into orbit?
Focusing on the end result can be a powerful motivator, and also a door-opener to new possibilities, but there’s something lost there. Is it really only about the end result?
“How are you?”
A simple question that usually is followed by a polite response expressing our contentment with our daily life situation. I’ve been answering it a little differently lately: “Not so good, really. I’m completely burnt out!”
People are taken aback by this brutal honesty and many don’t know how to respond. I don’t want to make things hard on them, but I can’t stand lying to others (and myself) anymore. Regardless of peoples responses, it’s been a relief to come out in the open.
Recently I had the discussion with a colleague on how new code was being added to a code-base without maintainability in mind. The discussion was sparked by a code-review that had been ping-ponging between the reviewer and the developer where readability and ( as a result ) maintainability was an issue.