I'm following Amy Hoy as much as I can, since last year, when I hear a podcast about her learning Rails process.
Now I have a testimony about her "Just ship. Seriously" article. We have a popular statement here in
The better is good’s enemy.
Delivering “the good” to achieve “the better”; if you try to deliver the better on the first try, you risk delivering nothing.
I try, as much as I can, persuade my bosses to forget about these HUGE projects, which will take months or years.
Ho Gosh, the testimony please! OK here it is: A few weeks ago, I get a mission:
“There is a user, in trouble getting data from this legacy client server application to pick some thing like 20 lines of information on a daily basis worksheet, I don’t want to involve the business-technology department on this, just go there and bring me a Java based solution”.
Here is the situation: The user takes 40 to 50 minutes, every single day, filtering information at two different pending flags on a supervisor level. There are 10 supervisors, so, 20 filtering actions on the system, counting grid lines returned by each, and put that value on a worksheet cell. Ridiculous! Yes, but that is the situation.
Mocking up the solution:
Execute two queries to get the proper grouped and counted information, and show the results.
My first option becomes: a night shift service, executing these poor performance queries and sending an email with the desired data to the user.
Some problems with the “web servers’ support” department and with the “job scheduler” application let us to another option.
The adopted option: improve the query performance (with specific indexes) and implement an intranet based application, where the user simply gets the information needed any time he wants.
All fine, this is a very simple application, so let me guess, to put it on production status on this BIG full of burocracy company, nothing less then a week, so that is it, my first shot, A WEEK to deliver this very simple application to the user.
Now the facts:
I get the queries and specification done, and send it to a third part partner (Java factory) to get things done.
On my side, I start the HUGE burocratic process to get a new intranet application on production status. So, I started three different threads:
To the Data Administration department, create the necessary indexes, improving queries performance.
To the Logical Security department, to create the necessary user, with the necessary privileges to be used by the application.
To the Operations department to get the new application registered like an intranet one.
The “partner” (Java factory), ask for a month to get the application done, two days after everyone agree that a week will be.
A week after I received the application, tested it, and figure they (the partners) changed the queries, and don’t get the behavior desired, which was: execute two different queries and show the result. I ask for a new version, with original queries and specified behavior.
Any way to get the burocracy done in advance, I have started another thread to the Systems Architecture department to check this non working version, just to verify if all necessary patterns and good practices where used.
I get the final version ready and tested, by me and by the user, on my local development machine; so, I start a new thread to the Pre-Production department to get this new application ready on the Pre-Production environment, to the user evaluation.
Now you could say: well everything possible was done, the burocracy in advance and in parallel, so you have the application delivered and accepted by the user…
NO, not yet. We have more problems:
People from the Development and Pre-production departments do not create the database users on each environment at time (lack of communication between departments).
People from the Data administration department spent too much time to create the indexes on the right way on each environment (lack of competence here).
The procedures and forms to get a new intranet application registered, has changed since the last time I have done, so, I need to start this thread again with the new forms.
With these problems we miss the first chance to get this new application thru the weekly forum. Ooops, I forgot any new application to get into production status, need to be approved by the user department’s manager and get into the weekly technical forum.
When everything was fine, there was some technical problem with the data access configuration on the pre-production environment. Another wasted day…
Now we are close, the user tested the application on the pre-production environment, I get the approvement of the user department’s manager, so, next Wednesday we go thru the forum and finally next Thursday we will get this delivery done.
May be at April, 10, the user will be ready to use it I HOPE !
We know from the beginning the user will love this SIMPLE application, even more if we could deliver it in a WEEK as expected by developers.
There are some cases where you know that you try to deliver it fast…