Tuesday, June 26, 2007

Programmers Bill of Rights

Coding Horror posted an article in 2006 that proposed a Programmers Bill of Rights. I've worked at some pretty messed up places that violated all or most of these "rights". Although I know that the word "rights" was used in a tongue-in-cheek manner the point was that these things make sense. Calling it a "Bill of Rights" was meant to get the readers attention, but it's fair to call the list "Common Sense". To be fair, most of these things I'd be happy to get myself if I'm paid well enough, but somethings can only be provided by the employer, such as the quiet working conditions and fast internet connection.


  1. Every programmer shall have two monitors

  2. Every programmer shall have a fast PC

  3. Every programmer shall have their choice of mouse and keyboard

  4. Every programmer shall have a comfortable chair

  5. Every programmer shall have a fast internet connection

  6. Every programmer shall have quiet working conditions

Submit this story to DotNetKicks

Heroic Developer

Look, over in the cube. It's a nerd. No, it's a geek. NO! It's Heroic Coder. Coding longer than a puny developer! Introducing bugs and errors faster than a marketing drone can dream up the next greatest feature. HEROIC CODER!

Seriously, how long can we take it? If the manager can't plan the project based on sustainable and healthy working hours over time, then you need to push back. Just because you can work late into the wee hours of the morning and over the weekend doesn't mean you should. Take a break, go home and drink a cup of tea. Go for a walk and read a (non-technical) book. Your brain needs a break. Spending too much time trying to hack in another knee-jerk requirement is going to end up taking longer and wear you out, leading to increased mistakes and a myopic view of the problem. That tunnel-vision and fatigue will only add up to having to spend more time later debugging a rapidly deteriorating code-base while still trying to shoehorn in yet another new feature. It's a vicious cycle and it's up to you to break out of it and take on the mantel of "Professional Developer".

Heroics == Hours Spent
Professionalism == Effort Maximized

Submit this story to DotNetKicks

GWDD

Greasy-wheel Driven Development

All development is driven by whomever is screaming loudest. Project priority is determined through a bidding type system where the competing requests are escalated up to the next highest person in the management chain. Progress is managed by continuous nagging and veiled threats to whatever resources are assigned to, or at least coerced into working on, the issue.

See also ADD.

Submit this story to DotNetKicks

Automated code formatting tools

I love automated code formatting tools. Anything that will help clean the layout of code, especially code that I've inherited, is a major productivity booster.

I've been a bit of an evangelist for ReSharper in every development team I've been a member of. If the only thing ReSharper provided was code formatting I would still recommend it. It provides a great deal more which I'll cover some other time. ReSharper has granular enough code-style rules tools that should satisfy almost any possible team standard for code layout. The rules can also be imported/exported which is a time saver when you work on several machines or in a team. ReSharper is one of the few tools I've bought out of my own pocket and will be happily upgrading my 1.x license to the new 3.0 version very soon.

A classic free tool is GhostDoc. It doesn't reformat your code, but it will clean up and generate the xml documentation for methods, constructors and properties. It's very handy when you are maintaining code that doesn't have any xml comments to select "Document This" from inside the method and have the template filled out for you.

A new tool that seems very promising is Regionerate. It will automatically organize your C# class properties, fields, constructors, events and methods into neat regions with nice labels that contain a count of the number of items in that region. Very slick.

Submit this story to DotNetKicks

Monday, June 25, 2007

The Play

The actors are assembled for the Writer's play. Some will play heroes, and some villains while most will walk through the scene forgotten and unheard. The Director moves the actors through the tragedy and comedy and the quiet moments in-between. When the script is done and the speaking stops the curtains draw and the all is ended. The cast is called to take a bow, is the villain still applauded? Or is he taken away and punished for his role? Is the hero to be knighted? The Writer wrote their deeds and they played their part as it was already decided. Who will be invited to the post-production party?

Submit this story to DotNetKicks