Software utility curve

It might just be me but it seems that there is a bell shape curve of utility for most software.  Time / versions is on the x axis and usefulness on the y axis.  Software goes from increasingly useful with time until they reach a tipping point and enter a bloatware state. Then, they eventually die and or get replace by the new upbeat idea that solves the same problem.  They will linger, of course, if, during the good years, they captured the market.  It’s a case of unable to leave well enough alone. I guess that in most cases it’s often driven by the need to sell new versions.  However it’s not just the case with commercial software.  It’s also observable with open source products and libraries.  If i had to guess, i would venture that the tipping point is reached not far after the moment at which new features are issued out of marketing department meetings rather then user input.

Posted in General | Leave a comment

Current State

Up until now, most startup i worked at, hired me with “carte blanche” to fix their problems.  It’s what they wanted and i was happy to oblige by doing a complete rewrite.  Now things have change at this relatively new job; i find myself in a peculiar spot. I have to work with legacy code and the reality of the business is that it can’t afford to put everything on hold for the time it would take to rewrite it all. The last few months have been, to say the least, challenging. I am new to ruby and rails and i am also not familiar with the pattern and methodologies of working with non compiled languages.  Now to make things interesting the application has about 1% of code coverage in unit tests.

Along those lines, a few weeks ago, i had an animated conversation with a pro-eminent fellow programmer who kept ignoring my technical questions and kept asking about the business. I must admit i got annoyed real fast and insisted on focusing the discussion on technology.  Then he pushed back arguing that my task was not to put this amazing well tested super architecture in place but rather to ensure the financial viability of the company through careful evaluation of return on investment for every line of code i made. Boy! was i pissed?!

Now, not so much…  Honestly it annoys me to no end to have to work on legacy code.  I say this knowing full well that it’s the case for 90% of the developers out there. I am not an exception.  However, in this particular case, i’ve validated that the legacy code is indeed not very good so it’s not just me.  I can’t help feeling that the more code we add to this mess brings us closer and closer to an unmanageable state.  However no matter how bad things become with the code it will never be as bad as running out of money before reaching the break even point.

Although i can yet say that it’s fun, yet, it brought me to change drastically the way i do things. Every changes strategy is weighed against a much shorter time perspective. So something that would normally make no sense from an absolute technical perspective is acceptable given the fact that features are needed asap. It’s like this: would you put any energy in tidying up the house before stepping out if it was on fire or would you rather not really care about the mess.  So in the end i have to admit that yes the reality of business  takes precedence over clean code SOMETIMES.

On the technical side, the one thing i am convince of now is that compiled  language are more efficient to work with in the long run then scripting ones.  Even more so when things are a mess.  The ability to use a refactoring tool is so useful and i miss that sooooo much right now. It’s a mistake i won’t make.  Compiler might be evil in giving a false sense of security but if you avoid that then you get so much out of it that it’s well worth it.  And for those who would argue that compiling / deploying is slowing things down haven’t work with a properly setup environment in a long time.

Posted in General | 1 Comment

Hello world!

Hello world indeed.  This is my n th attempt at setting a blog that i intent to post to at least once every other week.  History will tell.

Posted in General | Leave a comment