Choose Your Tools with Care

From WikiContent

(Difference between revisions)
Jump to: navigation, search
Line 17: Line 17:
[this is still work in progress]
[this is still work in progress]
 +
 +
 +
By {[Giovanni Asproni]]
 +
This work is licensed under a [http://creativecommons.org/licenses/by/3.0/us/ Creative Commons Attribution 3]
This work is licensed under a [http://creativecommons.org/licenses/by/3.0/us/ Creative Commons Attribution 3]
Back to [[97 Things Every Programmer Should Know]] home page
Back to [[97 Things Every Programmer Should Know]] home page

Revision as of 08:49, 1 November 2008

Modern software development relies more and more on the availability of proper tools libraries and frameworks.

Some of the reasons are:

  • Applications are growing in size, complexity, and sophistication, while the time available to develop them is less and less
  • Tools libraries and frameworks that are widely used are likely to have fewer bugs than the ones developed in house
  • There is a lot of high quality software available on the web for free, which means less development costs, and higher likelihood of finding developers with the necessary expertise
  • Given the fact that software production is human intensive work, often buying is cheaper than building
  • Reduced time to market (or to “production” if it is for internal users)

However, there is not such a thing as a free lunch. Tools must be chosen wisely, in fact there are some potential problems to consider

  • Every tool has its own pros and cons, and, depending on the combination you choose they may actually make your development activities more complicated than necessary
  • Sometimes free software is not free, after all. You may need to buy commercial support, which is not necessarily going to be cheap
  • Vendor lock-in. Code that depends heavily on specific vendor products ends up in being constrained by them on several accounts: maintainability, performances, ability to evolve, price, etc. Finally, there is a reduced scope to negotiate the licensing fees
  • Etc.

By all means use tools, libraries and frameworks, but make sure you choose them wisely.

[this is still work in progress]


By {[Giovanni Asproni]]


This work is licensed under a Creative Commons Attribution 3

Back to 97 Things Every Programmer Should Know home page

Personal tools