This blog contains reflections and thoughts on my work as a software engineer

onsdag den 20. februar 2008

Minimize Outlook to System tray

I found this small registry hack today because I have always been tired of having Outlook consume space in my Windows Taskbar. Enter this registry key and whenever you minimize Outlook it will only appear in the System tray. Sweeeeet....

Disclaimer (primarily because 90% of the readers of this blog are from the States ;o) ): Do NOT in any way try to alter settings in the Registry if you do not know what you are doing. I will not be held responsible blablabla.... if you mess up your own machine.

Hack is for Outlook 2003 - the Key path will be different if your Outlook is not the 2003 version.

Key: Software\Microsoft\Office\11.0\Outlook\Preferences
Name: MinToTray
Value: 1 = System Tray, 0 = Taskbar

Reference: Click here

mandag den 18. februar 2008

How to share knowledge amongst teammembers

I had an idea today - it was triggered by the countless number of Emails flooding my (and my teammember's) Inbox. The problem as I see it is not that people send Emails - that is perfectly fine. The problem is that they often send me valuable information which I have a hard time backtracking when I need the information 3 months after I recieved the Email....

I tried figuring out how to avoid this scenario and came up with a few stories:

S1: A user should be able to save valuable information received by Email
S2: A user should be able to search through stored information
S3: No anonymous access to the information should be possible
S4: The cost in time of storing information should be very close to zero to assure that the shared container of information will be updated frequently.

I think we actually achieved all goals in a matter of 2 hours work... How did we do it? Well, Uncle Google to the rescue:

I had an idea that saving everything in a private blog could be the silver bullet for us and ensure that story S1 and S2 was easily solved so I created a GMail account which could serve as a shared login to ressources hidden behind the login. I quickly set up a blog and clicked around a bit to ensure the privacy of the blog (no search engine should index the content, no pingback to tracking sites etc.). Then I changed the blog from being open for anybody to only being open to the people I invited. Everything went fine - until I discovered that RSS is not possible for a private blogs... Oooops. That wasn't part of my master plan at all because I always had the idea that invited people should be able to subscribe to the RSS-feed of the blog.

I tried fiddling around Google to see if I could establish a workaround but I discovered that due to the nature of RSS it is not possible to validate the viewers... Bugger, bugger, bugger, bugger, bugger... I knew for sure that my idea required that viewers should be notified somehow whenever new content was added otherwise the Email-hell would continue.

I actually thought that my idea was going down the tubes until I discovered that Blogspot has this nice feature called Mail-To-Blogger. When you want to add something to the blog you could simply do it by Email to make it magically appear on the blog! Voila, problems solved...

I set everything up and now whenever somebody in our team has something they want to share with us ("I updated the server X with patches Y and Z - it shouldn't have any effect on process B but be aware anyway. Read about the patches here" (where the link is the valuable information nobody can find 3 months later) they send an Email to each of us as usual - but they also send a CC to a special Email-address to save the Email in our private blog. If I recieve something such as a new password to a service we use I send it to this Email to ensure that when I go on vacation nobody is stopped in their work because the Email is located in my Inbox only. Sweeeet.......

Security? Well I have made a lot of effort to turn off RSS, to explicitly tell Google to NOT index anything on the blog etc. The content of the blog is viewable only to the people I have sent invitations to - the Gmail-account which was used to create the blog has been shared between all members so everybody are able to administer the blog. Does anybody have any experience with private blogs and how private they really are? Please let me know if you do.

We will evaluate the blog in a few weeks time to see if we have had any value out of it. The Email-hell is still there but Emails are not bad just because they are Emails. They only become a living hell when you as a user are unable to find that single Email which contains information you need and that's the problem we are trying to solve right now. I will get back to you with an update when we have more experience on the subject.

søndag den 10. februar 2008

Definition of quality

I just started in my new job - I am about to work with 3 highly intelligent and competent software developers plus whatever consultants and external ressources we add to our pool of ressources.

I have a few personal goals with this new job. One of them is to try to ask the questions which are impossible to answer correctly but nevertheless make people think. So I took the initiative and gathered our small crew to a little session which was supposed to be a wrap-up of all the things I had worked on in my previous job. What had I been doing, what had I learnt, what kind of personal insight had I gained and so on... Primarily I wanted to focus on the process and not so much on tech-stuff and implementation of projects.

I started out and soon I had wound up all the failures and fuckups of my previous projects... Yes, I have made lots of weird, unmaintainable sicko-code which however had made the business happy and had earned loads of money to the company. I started thinking: "What is quality?". Ooooooohhhhhmmmmmm........ A sudden insight appeared before my eyes and I felt it coming: "Define quality!". I asked the other guys when we came around the subject in our talk and asked them to define quality. They went quite blank and I knew I hit something. When I asked them who should define quality one of them said without blinking: "Well... in this firm we do..."

I have thought a lot about what quality is after we had our talk. What is quality? As a software engineer I tend to focus on issues such as code readability, ability to extend, logging, choice of technology and so on. For a guy working in a sales departement I think quality can be summed up to: "Can I earn a shitload on money on this feature?" He couldn't care less that I use LINQ or NHibernate to fetch data from the database. He only cares that when somebody clicks "Confirm order" the order is stored in a way which makes it possible to invoice the customer.

It makes a lot of sense to me to define quality as the least possible amount of effort spent to keep the sales departement happy. Why should we measure things differently? If they are happy it means they are able to sell - and if they are able to sell you know you will also be payed for your work at the end of this month. I regret that I haven't found any better definition because it actually promotes cowboy-coding to be an legal approach to new software in about 80% or 90% of all new business cases!! Oh my God...

Somebody save me - how can I go to work tomorrow knowing that I am obliged to be writing sloppy, unmainainable code in order to have a short Time To Market which will enable Sales departement to earn a shitload of money because we were first movers on the subject?