Feb 21, 2007

sysem design error

About a year ago my team has done a site MyActivityMatch.
One can use it to find who to play sports with.
The system has a rather complex search algorythm - it takes into account geographic location, distance, date, time (hours or a day part like "morning"), time zone, sport type, skill.

I underestimated the complexity, defined the lower price then it deserves, and entrusted the developement to an employee of mine, a good person and a good programmer, but not too experienced with the complex solutions at that time.

After a while it came out that the system works slowlier then expected.
Some bottlenecks were fixed close after launch and the site continued to work.

Some time ago the customer ordered the modification of the system.
Being knowledgeable about the complexity I took the work myself and started to solve each of the problems I saw, one after another.

Couple of days ago, after several months of fighting with problems, I faced an unexpected issue - the database contains many duplicating records. ID of the records are different, but the data is the same.
It's not a bug, it does not break anything. It just makes the system slowlier.

I call it a system design error. The developer did not foresee the interactivity of elements and modules. He coded the solution per specification - and did it good!

Whose fault is it, who is responsible? Me and the customer are.
Me - because I incorrectly positioned the project and provided the solution with a logical issue. Now I have to waste time to rewrite parts of it from sketch.
Yes, I kept the budget and fulfilled the contract per specification.
But is it what the customer wants?

Customer - cause actually everything in the project is his responsibility.
He did not provide any requirements for the performance and inner structure, never discussed anything, ignored any offers and was just holding the idea to get the cheap solution of the complex project.

A consequence I made for myself: Do not avoid system design, as you don't avoid the layout design, accept it's value and cost.
There are thousands of people ready to help a customer spend his money, but I want to do something valuable besides cash.

I hope I won't get into such pitfalls in the future.
At least during last year I havn't - I set the adequate price for my work and provide the really good solutions.

One can't make a million dollars by paying a couple of thousands, doing nothing and expecting a cool programmer will code something great. I don't even understand why so many people expect this :)

Feb 20, 2007

web 2.0 radio - plays what you want to listen

At last I see a streaming solution I really like.
Pandora plays the music I choosed to listen. I am not dependent on the DJ mood, don't have to switch channels when hear the commercial and may skip the track I don't like.
I gave a name of a band I wanted to listen and it made a playlist of the similar music - so I don't choose each song, and still listen what I want.

If you got a broadband connection - try it. Good implementation of Web 2.0

Feb 15, 2007

IT management - what programmers want

Recently I had a project to build a restaurants reviews site.

We successfully did 25% of the work during a week. Suddenly a customers said to stop, throw out the code, take a ready-made constructor PHPFox and go on customizing it.

His idea was that to buy a ready-made code customize it will be faster and cheaper then writing the custom system.
Despite I said it will be much faster to complete the system, he just wanted to get the existing additional functionality of PHPFox instead of developing (and paying for it).

I choosed an option to discontinue the project, keeping the small advance that did not cover the amount of work done.
The most importaint reason was that I don't want to work with the old platform.
PHPFox is an out-of-the-box solution, intended to be sold to as many people as possible. It has to be compatible with older releases and old platform - so it keep an old ideology.
That's not what I like to work with! I like to do something new :)

Today I saw a great article Nine Things Developers Want More Than Money

It is great. If you plan to do a successfull IT project, you will depend on your developers, and you will need good reationships with them. Please read the article, cause it's very true.

Feb 8, 2007

Today I saw the description of an IT project starting with the words:
The requirments are still in the works. I am looking for someone to take this project from the craddle to the grave.
Oh yes, there are lots of people ready to bury the project! :)

Feb 3, 2007

video conferencing

Half of the projects I am discussing last month is connected with online video streaming.
Yes, YouTube has changed a direction of thoughs of many people with it's price :)
Pity, but most of people who want to do something like that just emphatically keep wanting a freebie - to make a million paying a thousand or two.

What I recommend to look at is a site Stickam.com. I enjoy their video chat feature.
If you have a web cam and a good internet connection - you are ready for web conferences.
Try - it is great.
Now I can discuss projects using a video conference with my customers.

web, control over the business and open-source

A customer sent me a link to an interesting article:
Zend seeks a sustainable open-source model

I think it has a couple of interesting ideas.

1. Many businesses based on the open-source double the revenue each year.
That's a good and stable trend, and I saw better results for the correctly managed web projects.

2. An old generation of IT businessmen still can't realize what to do with the open source.
I mean the phrase
the company does not have "complete control" over the project
Control, control, control ... world is divided by the spheres of influence between USA and USSR ... companies own their means of production ...

Time to forget that.
In IT it's all a matter of user satisfaction, flexibility and speed.
The essence of a "byte" is being transferred, it does not exist in a static form, same as light.

I don't even know how to approach the flexibility of the open-source from the "control" concept.