During my IT career I've seen very much decissions made due to the fact, that the winning technology or system is mainstream.The simple argumentation is "Everybody is using it, so it has to be good.", sometimes with the small qualification "OK, we know that it isn't the best one, but you can get people with know-how for it very simple.". That's partly right, but not in total.
If a technology or system is mainstream there are really many people which are engaged with it. But there are two limitations: There is also a huge demand for those people and the quality of their know-how is varying extremely. So you may get some staff but it is hard to predict how productive they will be. There's no guaranty. But the main objection is the fact of loosing any unique selling point. Maybe you're in a kind of business where you don't need this, you are forced to use mainstream technology due to customer requirements. But if the right mix of flexibility and speed is needed to compete with your business rivals or to enable your customer to do so you can't just follow the masses.
Today very often applications are developed using JEE or .NET, spiced with tons of XML files, and garnished with huge relational database management systems from Oracle, IBM or Microsoft. I don't want to say that there are no needs for such solutions. But they only cover a special segment. However, due to their market power they are used for a growing number of individual, company-internal, or SaaS software development projects. Unfortunately those projects grow very fast into difficult manageable monsters, hard to finalize, and even harder to maintain. Large portions of the product habe to be developed to just handle technological needs. The focus on the functional requirements gets lost.
So what's the alternative? The first step is to remove blinders. Open your mind for uncommon approaches and take your time to play with them. Even if you don't use a new technology your solutions will get inspired. And when it is time for a decission evaluate carefully. Take a look how different technologies may help you and compare not only technological facts but also the ability to realize complex scenarios easily with a high productivity.
In my case that's why I'm developing in Smalltalk and Scheme - and sometimes Python and Ruby - using an ODBMS, alltegether on a Mac. Like said above I don't want that everybody is using that mix. But for me it is absolutely a high productive and comfortable environment. And I really hope I'll get the chance to use this mix, or parts of it, in external projects.
If a technology or system is mainstream there are really many people which are engaged with it. But there are two limitations: There is also a huge demand for those people and the quality of their know-how is varying extremely. So you may get some staff but it is hard to predict how productive they will be. There's no guaranty. But the main objection is the fact of loosing any unique selling point. Maybe you're in a kind of business where you don't need this, you are forced to use mainstream technology due to customer requirements. But if the right mix of flexibility and speed is needed to compete with your business rivals or to enable your customer to do so you can't just follow the masses.
Today very often applications are developed using JEE or .NET, spiced with tons of XML files, and garnished with huge relational database management systems from Oracle, IBM or Microsoft. I don't want to say that there are no needs for such solutions. But they only cover a special segment. However, due to their market power they are used for a growing number of individual, company-internal, or SaaS software development projects. Unfortunately those projects grow very fast into difficult manageable monsters, hard to finalize, and even harder to maintain. Large portions of the product habe to be developed to just handle technological needs. The focus on the functional requirements gets lost.
So what's the alternative? The first step is to remove blinders. Open your mind for uncommon approaches and take your time to play with them. Even if you don't use a new technology your solutions will get inspired. And when it is time for a decission evaluate carefully. Take a look how different technologies may help you and compare not only technological facts but also the ability to realize complex scenarios easily with a high productivity.
In my case that's why I'm developing in Smalltalk and Scheme - and sometimes Python and Ruby - using an ODBMS, alltegether on a Mac. Like said above I don't want that everybody is using that mix. But for me it is absolutely a high productive and comfortable environment. And I really hope I'll get the chance to use this mix, or parts of it, in external projects.
0 Comments:
Post a Comment