Deciding the technology:
Technological space changes rapidly. People who cannot keep
up with the changing technology become stagnant. When you are developing an
application it is very important that which technology you will choose.
Salesforce CEO Mark Benioff and Google’s Eric Schmidt had a
vision of a networked super computer 20 years ago, they said in the Dreamforce
2011 summit. That time the world was not ready for it. Today it’s called Cloud.
An important thing to learn here is being ahead of technology is also not an
option when you are working at an organization which expects a solution for a
problem from you. That does not imply that you should not think of new ideas,
but having a practical vision is also important. On the other hand, when you
are expected to write an application which solves some problem in todays’ world
on the web, you cannot use something like Fortran which will restrict your freedom
of development and will have security and other various issues. Go with the
flow. So here is a way to decide the technology for your application:
1: Research
A fair amount of time should be invested in researching about the
problem at hand. Nature of the problem, deployment location, required tools,
volume/size of the application, scalability and future enhancements. It is
important to see what your organization uses. Sometimes this will make you come
down to maybe one or two options.
2: Cost
Another very important factor would be money. Application development,
design and deployment all will come at a cost. Always remember that for solving
a small problem, spending huge money is not practical.
3: List all options
List all the possible options and combination of options you have.
Like, if you have a standalone application, your business logic can be in C++,
Java, Python, .Net and many more. If you have specific multithreading needs you
can go for C++, Java, Clojure to list a few. Frontend development can be done
using HTML, Java Swings, VB.Net, etc. For backend needs, language is uniform;
SQL but we can have servers from Oracle, Microsoft and IBM. We also have Memcache, Couchbase, MongoDB and many more providing the latest database technology. For Web scripting one can use Node.JS, Ext JS, PERL, PHP etc. Listing options
will help in making combinations of different technologies and weed out
non-complaint ones. It will also help you have a backup in case one of your
selected combinations stops working.
4: Learning curve
Every new technology has a learning curve associated with it. It would
be a wise decision to go for something which you know because it will
drastically reduce the learning curve. Factor of time has to be kept in mind
while deciding a technology since steep learning curves may lead to projects
going off track. If some technology has a learning curve which is not steep and
suits your needs than a little extra effort will help you learn a new
technology apart from just doing the project.
After doing these steps you can figure out almost everything you need
to know about your application before you start and will also be in a position
to decide on the technology.
The reason why I say Big decision..Big impact is because deciding a technology is a Big decision and it is going to determine the entire development structure of your project.You are going to spend your time on for a few months on this project. Time is a big investment after all!
No comments:
Post a Comment