Monday, April 30, 2007

web software: open source vs proprietary vs writing your own

The challenges I'm facing at the moment are continually changing goal posts (so preferably the solution needs to be flexible and all encompassing), not enough time to focus on one thing (solution needs to be available immediately), it has to be of the highest quality and it's gotta add to the bottom line in some way, otherwise it's a waste of time.

So I'm looking at web software options to solve a big issue I'm having at work, and being short of that magical "one program does all" utopia, what are the options available to me? Some experiences I've found so far on three options.

Open source

Pros

  • Cheep cheep!
  • Customisable

Cons

  • It's someone elses code... is it best practice? secure? easy to maintain? easy to configure?scalable? portable? compatible with my chosen host? there's plenty of uncertainty.
  • Accountability for application stuff ups?
  • Does it do exactly what you want - or does it kind of.... but not quite.
  • Lower quality interface and/or useability (in general... not always the case)

Proprietary

Pros

  • Higher quality interface (in general... not always the case)
  • Can hold vendor accountable for issues.
  • Usually plenty of documentation
  • Established user base
Cons

  • Up front cost.
  • Support costs.
  • Rigid.
  • Forced workflow. You have to do things their way, or it's the highway.
  • There'll always be something you want in the package that isn't there.
  • There'll always be something in the package you'll never use.

Writing your own

Pros

  • Ultimate flexibility
  • Can sell it later!
Cons

  • Analysis Cost.
  • Development cost. Time, effort.
  • Goalposts can change, rendering some features previously developed useless.
  • You're accountable. (but this could be alright if it lessens time taken to address an issue)

In summary - I'm a developer at heart, so i'd always prefer to write my own solutions if I had the time. There's something about selling (that is... getting someone else to sell it) your own work that gives me ultimate job satisfaction. Network admins, techie pros and managers will often have a different view. Unfortunately commercial reality pisses all over my idealism much of the time, and I have to bite the bullet and face facts. :)