• Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other Pie Elite all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Jeanne Boyarsky
  • Ron McLeod
  • Paul Clapham
  • Liutauras Vilda
Sheriffs:
  • paul wheaton
  • Rob Spoor
  • Devaka Cooray
Saloon Keepers:
  • Stephan van Hulst
  • Tim Holloway
  • Carey Brown
  • Frits Walraven
  • Tim Moores
Bartenders:
  • Mikalai Zaikin

Do you compromise on design in pressure situation / tight deadlines?

 
Ranch Hand
Posts: 418
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
I always find a certain situation described below very changeling �

Imagine that you have just released a new IT system to the business that is going to replace its existing popular website in phases (of course with loads of new features!). The testing team has done enough functional testing and everything�s seems to be working fine. But hey, business is in such a hurry and even though you had originally planned for through performance testing, you have to push the system out of the door without doing all performance testing and tuning cycles. So the new website is released and a partial load from older one is being routed to this one. Things are looking good as the website can handle partial load very well. Business is happy! 

Now comes a hard part� the traffic starts increasing and the newbie can no longer handle that and performance and sales are dropping!!! Panic situations: O and there is a SWAT meeting in the IT department. Business wants improved performance from IT as soon as possible. So you go on hunting the bottlenecks in system and resolve it. Now comes a tricky situation. A certain component in the system is designed very well in terms of object oriented approaches. But there is deign overkill which is causing performance issue. Now if you fix it immediately, then business is happy as their sales figures� damage can be restored. Having said that, this fix damages the OO design or rather makes the code a little dirty. But it surely solves the bottleneck. And there is no time to take a call or redesign the component so that design principals are not breached and yet you can gain performance. What do you do? Do you go ahead and make such change � as sales figure is the only thing that business cares and not about design principals. How do you handle such situation?

I know that above example is pretty hypothetical one; but, I would still appreciate ranchers� opinion.
 
Ranch Hand
Posts: 999
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
These situations come frequently in our lives.We try to convince sales team.Or fix that problem and later convince them that you need long term solution and not patch.
 
Ranch Hand
Posts: 194
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Tell the project sponsor that there are three factors in the success of commercial software development.

-cost
-on time delivery
-quality

You can only ever deliver on two of them. So choose.
 
Ranch Hand
Posts: 2308
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Many times its necessay to put a bad , ugly code (working code .. what IT professionals generally call work-around) to get things done.
But one should bring this issue soon after the crisis situation is over .So that it can be fixed when time permits.
I have many times done this.
 
Rashmi Tambe
Ranch Hand
Posts: 418
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Thanks for the replies guys! I have already informed my managers that its going not going to be a permanent solution and we need more efforts & time for long-term fix. And they have agreed on it.

However, I suppose I posed the original question with an incorrect aspect... what I really meant to ask was how MUCH do you compromise? No one can give any quantitative measure of how much, but just a general idea... Rather do you fell guilty that you have breached OO principal while providing the fix? And how hardcore OO purists are you?
 
(instanceof Sidekick)
Posts: 8791
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Ken Schwaber makes a strong case that Code Quality is a Corporate Asset and a decision to reduce quality to increase speed is a financial decision that belongs with corporate officers. Further any such attempt will eventually fail, because quality reduction will slow down future releases more than the gain on this one. His approach is to hold quality at the highest possible level for a consistent velocity and let the customer set the scope and dates within that constraint. The presentation is well worth the time.
 
Ranch Hand
Posts: 662
Eclipse IDE Spring Java
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Originally posted by Rashmi Tambe:

I know that above example is pretty hypothetical one;



- Hypothetical. I would say NO. Many a time, I have seen this happening. The only thing I would replace is instead of the product being sent to production environment, we have iterative cycles of code, test and a particular point of time demo the product to the customer.
Pressures are from Marketing , Customers and there are sometimes pressures from managers who want the product to be built having various customers in mind. I still remember seeing the Project Plan having only 3 days to start going through the requirement Doc <lacking complete information>, understanding it, getting back with replies, DO THE DATA MODELING WITH DOCUMENTATION, analysis, ... hmmm. sounds tough.

Out of all this, I even know, developers who suggest adding a column or table, without considering the various options of achieving something and still get away with the idea and implement it, due to pressure from the managers, lack of time.

I even know, design meetings which are held without the data modeler or DBA (whom I believe knows the entire system and flow of data), decisions are taken of adding a column, adding a table to the system only to realise that it is a boomerang which comes back in some other scenario and hits you right in your forehead, badly. If I were to give a figure, I would say, we would compromise on 30 - 40% of the correct Data model and Design.
 
With a little knowledge, a cast iron skillet is non-stick and lasts a lifetime.
reply
    Bookmark Topic Watch Topic
  • New Topic