Software Installation User Interface

I’m a bit of a control freak when it comes to how my computer is configured. I like to be aware of how things happen and why they do. Currently on a Windows system, the thing that irritates me the most is the Windows Registry. A nasty, unknown shared resource used by almost all applications and extremely hard to fix manually when corrupted. But it is a standard, so somehow I get along with it.

Anyway, installing programs has always been one of the worst experiences ever while setting up my work/fun environment, on any platform. Linux makes it easy for you to install distribution packages, but I still haven’t spend the time to figure out how to uninstall them. What happens to all dependencies that you didn’t note down when installing? Do they remain in the system?

Since program installation is usually the first impression that software makes in a user, I think every software developer should spend the time and make it as perfect as it can be. This is clearly not only my opinion, but in this post I wanted to mention two features of software installations in general that I find wonderful, and cannot figure out why there are people that miss to put them in.

1. “Don’t create a Start Menu folder” option

install1

2. “Create a Desktop icon” and “Create a Quick Launch icon”

install2

First, I have so many things in the Windows Start Menu, that I probably never open it. I don’t need more things there by default, and I need an option to control this when installing software. Second, I extensively use the Quick Launch toolbar, and if the installer puts an icon there for me, that would be great. Obviously the FeedDemon installer made me happy and the people from NewsGator did their job. Why don’t the others do it? Why don’t you do it every time?

What to love in a job?

Let me begin with a quotation: “If you love your job, you’ll never work a day in your life”.

This has been attributed to Confucius, James Worsham, Mark Jackson, and Anonymous. I don’t know who the credits go to, but it’s someone of the above.

It is a fact that people who love their jobs are in general more productive than others and get things done. I see a strange phenomenon here, though. This one has to do with how programmers love their jobs compared to normal people.

Why do people love their jobs? I would imagine the answer to this is that they love what they achieve through them. A manager loves the teamwork spirit he has established in his team. A salesman loves the revenue coming from the many products he sold. A craftsman loves the product he created. I can go on like this forever. Until… I reach the obvious exception – programmers. Programmers don’t like what they create – they like the means they used to create it. I know most of them don’t admit it, but what programmers like is code and coding, not the outstanding web app coming out of it – or the slick 3D game.
I might be wrong at this one, but the longer I think about it, the more real it seems. We (yes, I consider myself a programmer) love the means we use, not the final product. I’ve tried to explain this to myself since I realized it, but I reach dead end all the time. Finally I just decided to accept it, like anything else that seems weird about programmers.

Here are some examples:

  1. Programmers fall in love with development practices (Agile or TDD)
  2. Programmers fall in love with frameworks (.NET, Ruby on Rails)
  3. Programmers fall in love with programming languages (like… you know)
  4. Programmers fall in love with operating systems (Linux)

Recently there’s been a lot of hype on similar phenomena. I’ve witnessed brutal debates on what practice to use, or what framework to use when developing a product. The question I ask all the time is “Does it really matter?” What if we concentrate on what is coming out as a result and see what happens? What if we try to use what we create and constantly improve it until we love it? This is what our customers and users do and this is what causes the gap between us and them. We can try and change, but then we would be going against the community. After all, we’ve always done it this way.

Programmer Ethics

I read a lot of blogs. Everyone’s definition of “a lot” is different, what I’m saying is that I have too many feeds in my reader to follow. This is why I delay reading some of them. I usually disregard the ones I know are not that interesting and then come back to read the ones I really want. Jeff Atwood’s blog always remains the last one – the reason: I know everything he writes is worth reading.

Today, I started catching up on reading his blog, and I was astonished. WOW is the least I can say. So I know this is a little old, but you already know the reason. I know posting links is not that good for a blogger, but I couldn’t skip this. Please read the article and if you’re a developer – DON’T DO THIS.

Thank you!