I normally don’t write posts just to point out an article by another author, but the latest by Jeff Atwood is a must read:

Hardware is Cheap, Programmers are Expensive

I point this out because this is something I’ve been fighting recently. It’s easier for management to tell the development team to fix a performance issue than to request money for the new hardware that’s needed.

In the long run it would be much cheaper to just throw more hardware at it – though that requires higher level approval. Whereas assigning a couple developers doesn’t require going nearly as high.

Tagged with:
 

I love what I do, and I work with a great team. While it’s still far from perfect; I can say that I do love my job. For the last couple weeks though, I’ve had to remind myself of this several times. I’m sure we’ve all done it, in this industry it’s hard to avoid. You read an email or receive a phone call and repeat the mantra “I love my job, I love my job, I love my job.”

Unreasonable clients, managers that just don’t understand; there are so many reasons, so many triggers. While reciting this mantra often invokes laughter from those nearby, some thought should be given anytime it’s used. More often than not, used as a joke, but a joke masking true problems.

Some issues are unavoidable, some no amount a planning or preparation will help with; for those I can offer no advice. For those, even a perfect environment won’t help. It’s the others I care about, those issues that shouldn’t be, the deadlines that should never have been set, and those whose sole cause is lack of planning or forethought. Those are the ones that tire me; those are the ones I hate.

When I run into one of these situations, it makes me wish this was closer to reality than a dream of how we want things to be. However, why shouldn’t it be reality? Why do we allow this to happen time and time again?

Wait, read that last sentence again. Why do we allow, why do we allow? Yes, as developers we allow this to happen, and often encourage it. Late nights, working weekends, 90-hour weeks. Those could all be prevented, and could be reduced significantly should we stand up. If we do not take a stand, we encourage those that push us too far by doing just what they ask. Why should they stop if they can get a single developer to do the work of two?

A Solution?

So, what are we to do? Taking a page from Rob, here is my modest proposal. A few simple rules for both developers and managers to keep in mind. While rules such as these can never be enforced, keeping these things in mind could make life more pleasant for everybody.

Managers…

  • shall keep requests for after hours work to a minimum. While there are “crunch times” on occasion, these should be minimal.
  • shall seek input from at least one developer before estimating a project. An estimate should not be created without consulting those that will be working on it, as they should have the most realistic idea of how long it will take to implement.
  • shall not ask developers to implement a hack or kludgey solution to meet an unreasonable deadline or request; especially if it will compromise stability or maintainability.
  • shall understand that developers are often passionate about their work, and the quality of the software they produce. Asking a professional to implement a solution based on a bad design, or inferior technologies will often be viewed as an insult, especially when this is done to meet an unreasonable goal.
  • shall shield developers from unnecessary distractions and meetings. Distractions can destroy productivity.
  • shall not ask developers to do the job of a Support technician. Tasks such as installing or configuring third-party software should not be given to a developer.
  • shall filter all requests and put policies in place to ensure that requests do not go directly to a developer.
  • shall give developers the freedom and opportunity to test different development methodologies when the schedule allows.

Developers…

  • shall make every reasonable effort to complete a task, including working long hours (so long as the hours and frequency are reasonable).
  • shall not complain about boring or undesirable tasks.
  • shall alert management when an issue arises that may impact a deadline, as soon as possible.
  • shall build the best software they are able to.
  • shall provide accurate estimates when asked.
  • shall be available as much as possible should an emergency arise.
  • shall not over-build, or over architect just for the sake of doing so.
  • shall try to understand the pressures and forces at play when communicating with management.
  • shall make an effort to improve development methods and processes.

If you agree with this last, take it to your manager and talk about it; if not, build your own and talk about it. Either way, the idea is to talk about the issues and try to find ways to get everybody on the same page. If we make no effort to improve things, then we are just as much a part of the problem as anyone else.

If you don’t like things, complain; but complaining to a friend or co-worker won’t help, you need to let management know that there are problems and that you have some ideas to fix them.

Tagged with:
 

Today I had to do something I’ve not done since I switched to Vista: burn a ISO image. Normally I would just fire up Nero and be on my way; but my version of Nero is old, and I didn’t feel like fighting with it. So I decide to find something new.

I found a fair bit of discussion on the topic, and a few highly recommended (and free) choices:

  • ImgBurn – This is a well polished application, it exposes a fair bit of information about what’s going on, and some of the behind the scenes details. Novice tend to prefer knowing as little as possible, but for more advanced users, it looks like a winner.
  • CDBurnerXP Pro – This one received a several recommendations, though I’d have to advise against it. While it seems like a well built application, it’s obvious that it’s not been tested on Vista (the warning about running on Windows 95 or Windows NT doesn’t inspire confidence).
  • ISO Recorder – This is one that I didn’t get a chance to test, though it sounds quite promising.

Of those I tested, all had the same major flaw: none worked. ImgBurn came the closest, though failed to actually start writing. After a quick search I turned up the reason: my old Iomega CD-RW drive was so old, it doesn’t follow the standards newer drives implement.

So now I’m facing buying a new copy of Nero (as it’s always worked for me), when I stumbled upon a writeup for BurnCDCC. Even though I thought it would be a waste of time, I went ahead and tried it. After downloading the whopping 69KB file, I fired it up, and sure enough; it worked!

BurnCDCC

So if you’ll looking for a free way to burn ISOs, and have and old, hopeless drive; BurnCDCC just might help. Seems to be a great little program, and I have to appreciate the simplicity. Something nice about software that does one thing, and does it very well.

Tagged with:
 

For those interested, and those that have an MSDN subscription, Office 2007 Professional is now available for download. The 411MB ISO contains the following applications:

  • Microsoft Office Access 2007
  • Microsoft Office Excel® 2007
  • Microsoft Office Outlook® 2007 with Business Contact Manager
  • Microsoft Office PowerPoint® 2007
  • Microsoft Office Publisher 2007
  • Microsoft Office Word 2007

Hopefully the Ultimate edition will be made available soon.

Update: Microsoft has announced that Windows Vista will be available on Nov. 17th.

Tagged with:
 

Developers have jobs for the money, right? If you want a developer to work hard, give them more money, right? Wrong. For many developers, money has little effect on motivation.

Being an odd creature anyhow, developers are a bit different in that the things most people seek in a job means little to most developers. A developer is motivated by a completely different set of factors, and I believe I’ve ran across a great definition of the things that really matter.

Rob Walling offers great insight in “Nine Things Developers Want More Than Money” – this is a great read, and I recommend it highly for both those that write code, and those that manage those that write code. For that matter, I highly recommend this for everybody, read it.

Tagged with:
 

Ever wondered how they do things inside of Microsoft? As a developer that makes extensive uses of Microsoft technologies and tools, I’m always interested in an insight into their development process. Well, if you’re like me, then I may have a real treat for you.

Vinny Pasceri, the AERO Program Manager for Microsoft has posted an great insight on the (fairly new) Windows Client Team Blog. This is a great peak into what the design process looks like, and even includes what may be the first publicly released feature spec. This makes for a great read, I highly recommend taking a close look at this article and the included spec.

Tagged with: