Aim high and then aim higher!

Good, great and beyond

Nearly a hundred years ago Konstantin Eduardovich Tsiolkovsky said his famous words “The Earth is the cradle of mankind, but one cannot stay in the cradle for ever”.

It’s easy to get carried away by such statement to think about the final frontier for human race. Imagine all the worlds that lay out there. But the sentence can also be used more metaphorically as a guideline for moving projects up to the next level – from good to great.

Good projects are those which work as planned, while great project evolve further and further. Good project can make you a decent living, but only the great projects can change the world.

In the cradle of Vision

Each project starts with a vision. The vision should be then kept in mind during whole project live, otherwise the project will become stale and fail in the result. Good vision is what drives the team in common direction, let people focus on what is important. The main goal of the project is to fulfil its vision.

Image you want to create an online book store, so you define your vision in a simple statement “Let’s create a book store”. You gather your team and assign tasks (even if your enterprise consist only of you, you will still form many functional teams!) – define logistics chain, define IT solutions, define marketing plan etc. You start working on details and implementation and sooner of later you end up with working solution.

You’re now selling books. You have a steady flow of orders, you have managed to build a good project. It works, it generates you income, it is predictable and utterly boring. Soon you will realize that your competitors start to run in front of you.

Evolving Vision Statement

What happened? You’ve achieved your main goal, but you failed to evolve your vision further. You sit comfortably in your cradle and capitalize on your hard work. You can grow up to the size of your market and compete hard, but unless you redefine your Vision, you are basically stuck.

Here’s where all the fun starts – you can move in many directions (be careful not to bite more that you can chew at once or you’ll choke), just give your teams more breathing space and you’re on the best way to creating a great project.

Can you imagine the world in which some of the greatest companies in evolving their vision would fail to do so and
* Google is maintaining only a web engine
* Microsoft is releasing only new versions of Basic and operating systems
* Facebook is a signle university only portal
* Walmart runs only one grocery shop
* Amazon still sells only books

Becoming a Wedding Software Developer

I’m currently preparing to become “a lawful wedded husband”, which involves buying tons of stuff. I was comparing various offers and one pattern emerged: if a thing X is renamed to “Wedding X” it automatically becomes at least two times as expensive. See for yourself: wedding photography costs 295-1500 GBP while corporate event photography 75-180 GBP for comparable time and effort. Wedding cakes are priced at 250-850 GBP vs event/birthday cake which can be bought for 10-80 GBP. So I decided: from today on I’m charging wedding software engineer rates!

You may ask what is a Wedding Software. I’ve analysed the differences between normal and wedding items and I found some common elements, which I intend to apply to software.

  • basic wedding offers are mediocre, so they enforce customizations and add-ons. For cakes you get a plain sponge cake with a white icing. You want some taste, maybe chocolate? No problem – just add +30% to the price :) Do you want some decorations? No problem, 25 milk chocolate stars pressed into the icing – +20 GBP! Or maybe you’d like to write something on the cake? No problem, …
  • customizations of wedding items are charge more for. The same text written on a birthday cake costs less than half of the price of the same text on wedding cake. Oh why?
  • you get a ribbon with everything. It’s a customization, but everyone is willing to provide you with this one for free.
  • you are not allowed to buy non-wedding items for wedding. They may fit, they may suit your needs, you may love it, but still your forced to buy something with a “wedding” tag
  • wedding items tell you that they are prepared for “your special day”, “most important day of your life” etc.

So, applying the same rules should improve our margins dramatically. What’s more we it should increase customers satisfaction level. So:

  • wedding software should be usable, but ugly and limited as possible. Create a blackAndWhite.css and doNotScaleForMobile.css and apply it to any page you release. Basic version of apps should run up to 800×600 and play sound in mono only. But plan ahead for at least 2 customizations for each feature, including (mostly) irrelevant ones like ALHMMO “Advanced Left-Hand Mouse Movement Optimization”.
  • customizations are sometimes called “extras” for a reason, they should be extra pricey. Just remember to tell the user that the extra stands for extraordinary usable and smart.
  • excel kills millions of lines of custom code a year, wedding software should not allowed users to use multi purpose tools like that. All data should be exported in unportable formats and all 3rd party imports virtually impossible. Or at least customers should be educated that doing so it a very nasty behavior and they should never do it. Hint: avoid question “why?”.
  • software should no longer be commodity or necessity. Wedding software should be luxurious and exclusive. Buying software should be advertised as a transition from the dark times to enlightenment. People live to buy software. It will take some time for them to understand that, the only way is constant repetition.

It worked for wedding industry, it will work for software also!

ps. I still haven’t found what the software counterpart of a free ribbon may be…

Does Agile really suck?

I just got a link to a digital edition of NT Insider, paper I used to read during my university studies (it seems pretty hard core stuff now…). Since then I forgot all about IRQs and kernel level debugging, but I remember I always loved “Peter Pontificates”.

See “Pros & Cons of Agile SW Development Methodology” to understand why agile is a temple of stupidity and was designed strictly for idiots, who wouldn’t do anything properly anyhow. Or maybe not? Peter at his best ;)
Here’s a direct link to pdf file.

Agile in practice

On Thursday I gave presentation for Java Users Group in Lodz about implementation of Agile methodologies in real projects in enterprise world. The presentation has been interrupted frequently with questions and has been followed by interesting discussion. The PPT accompanyingthe presentation can be downloaded here (in Polish):  Agile w praktyce_public.

The most important observations and conclussions so far:

  • There’s huge gap between wikipedia style theory and real world practice
  • There are tons of obstacles in implementation of agile processes
  • The benefits of Agile are enormous!

I need an excuse to investigate some more and prepare English version of the presenation – I hope some event like unconference will be comming soon!