Monday, September 24, 2007

Alcohol Driven Development

I could not resist writing a post titled in such way, when my colleague Lukasz (his copyright and kudos go to him ) some time ago forged this term.

Today, searching for phrase "Alcohol Driven Development" using Google gives me just a single hit (to the empty wiki page ), so I dare say that I am the first one who may claim seizing it.

OK, so you could ask if I am a drunkard. I believe I am not – ask my friends if you doubt :)

However when this phrase was used by my colleague, it reminded me something very important related to the style of developing software and now, after years, often being called with trendy word "agile".

So what alcohol driven development means for me?
Definitely not a coding or design session after several drinks or a few pints of beer, although I know a few people who after small dose of alcohol start to think more intensively, or on higher orbit, I would say (this reminds me guild navigators consuming mélange in Frank Herbert’s "Dune").

I would rather follow other way of thoughts. At some moment of software development project, developers establish (or they should at least) closer contact with their customers. Especially if both parties are involved appropriately in the development as they should. People begin to spend a lot of time together – initially only during office hours, but later also they start to meet also after hours, in their private time. Needless to say (especially if duty trips of one party are involved), often during such meetings or "events" an alcohol is drunk. People begin to be more open, they share their thoughts, start listening, learning and understanding their partners. Finally some kind of trust, respect and finally even friendship appears. And guess what: this relationship has fantastic influence on the project.

When in the past the smallest bug in the delivered software caused a huge escalation, now the customer just calls his fellow developer and they quickly resolve the issue together without blaming each other. When in the past the smallest change in the requirements specification caused a lot of frustration, accusations and finally endless renegotiations of the contract, now instead developer just discusses with his partner the influence on the schedule and they together quickly reprioritize some features or a developer may just friendly say that "this is simple man, I will do it for you at the earliest occasion".

I used to work in such conditions – both – starting from distrust, accusation and contract driven development (and the project suffered a lot), but after some (long) time finishing in trust driven environment where we – developers - and our customers became a single band. And then our project turned out to be a huge success. Nothing else changed: people, technology, domain – all stayed the same for all this time. We just established the bond.

When my bosses were asking me to explain what made my project so successful and share best practices with developers from other teams, I had serious problems in convincing them that this was so simple: when you know, understand and respect your customer and vice-versa, then everything becomes much simpler.

So summing up, my minds strayed from alcohol driven development – to trust oriented and friendship driven development.

That’s all folks for today,

Wojtek

P.S. It's difficult to create such environment without face to face meetings. So this is also why huge corporations having "virtual" teams often work so unproductively.

Wednesday, September 19, 2007

I have a brand new son :)

Tymon was born on Thursday, September 13th. He is a really nice guy, take a look: here

Sorry for being non-technical here, but I couldn't keep myself from posting this news.

Thursday, September 13, 2007

Account removal

The story's simple - I created two accounts on different sites (photography related) and after testing both I decided I don't want to use service provided by them. I decided to remove accounts from their servers - as I don't like to leave my name and e-mail on sites I don't use.

So I checked both sites for some button to click to remove my account. On site A there was only a button to remove subscription (for some additional services). On site B also there was no option to remove the account.

So as a part of my being annoying customer I browsed their FAQ-s and help to ensure myself there no option available so I contacted them. I decided I will not leave it as it is and check how will they react.

Response from site A acknowledged that I cancelled my subscriptions and they thought that was it I was asking about. I wrote that my intention was to remove all details about my account. The responded that there's no such option but they can do it manually if I wished. Whole conversation was friendly and fast.

Response from site B was totally different - they asked me to explain why I want my account to be deleted. It pissed me off in the beginning but I think it's just their way to improve and get things better. I hope at least.

I'll proceed with both of those sites and hopefully will have my accounts deleted. But I wanted to write about something different - these are not the first sites that don't have options "remove account" available. I saw few other sites that had those options buried somewhere deep in their interface that it was very hard to find it and some other sites that didn't provide this feature.

That pisses me off - as I have a right to manage my identity and details about myself. When I'm subscribing to something I want to have an option to unsubsribe. Isn't that obvious? If I'm building system I think about those things, why they can't do the same?

Are they so desparate to have my e-mail address in their database (to spam me from time to time)? And why?

Remember that you should allow users to opt-in and opt-out as easily as you can.

Sunday, September 9, 2007

Check your passwords, they may not be secure at all!

Coding Horror has a great article about password strenght.

Since memory and CPU prices dropped and you can have a lots of free RAM for some pennies you can try to attack hashed passwords other way. Idea is very simple - use precomputed hashes and compare them against real passwords. This way you can boost cracking process to seconds! Check the article for details.

I think it's time to re-think your authentication mechanisms and policies. I beat that our company's policy for strong passwords can be invalidated within seconds for most passwords using this technique.

If you ever created system that stores password you MUST read this article. And who of us did never create one?

Thursday, September 6, 2007

Opera runs on Linux too!

Did you know that Opera - yet another cool web browser runs on Linux!?

I noticed this yesterday :-) I don't know where I was or why I haven't noticed this before. I checked Opera some time ago (I wanted to give it a try on my Linux box) but at that time there was not Linux version.

But now there is :-)
That's great news for me and other people - more competition means better producs and I'm happy that I'm no longer tied to Firefox (and don't start saying there are other browsers for Linux, sure there are and I know this - I'm still using lynx and elinks ;-)))

And there's a lot of cool widgets for it - for example Preziolicznik (only undestandable by Polish people).