Wednesday 21 June 2017

Software Outsourcing Hacks (5/7) – Technology Stack

Welcome to yet another article on this series where we discuss about custom software development outsourcing tips and tricks. If you are reading this series for the first time, I suggest you to have a look at the earlier posts 1, 2, 3 and 4 here.

Well before we proceed let me make a disclaimer that I am no way an expert on all the technologies that are available on the windows, web and mobile realm. However, I do understand the outcomes of choosing a technology and have seen first-hand on the various implications on the project outcome over my 14 years of experience.

Choosing a technology stack for a software development project is like choosing a super hero deck to tackle a villain. You want to use the super powers of the hero to combat the limitations of the problem.

There are good reasons why Technology consideration for a business application is vital while outsourcing software development projects. To name a few:

The choice of right technology for the business application ensures better estimates for the project

Provides lesser cost to your end clients and takes shorter time to launch.

Development of the application takes less effort and lesser bugs promotes the overall quality of the project.

Typically, there are at least 4 layers in a web based business applications.

Client Layer: only component in the browser

Web Layer : Web server/ HTTP server

Business Layer : Application Server, including the development platform, frameworks, and server-side programming languages

The Database Layer : Database Server

The advantage of a layered architecture is the separation of concerns, which means that each layer can focus solely on its role. This makes it maintainable and testable. The code is arranged so the data enters the top layer and works its way down each layer until it reaches the bottom, which is usually a database. Along the way, each layer has a specific task, like checking the data for consistency or reformatting the values to keep them consistent.

source : Izhaki

The Model-View-Controller (MVC) structure, which is the standard software development approach offered by the popular web frameworks, is a layered architecture. Model layer is just above the database layer, which contains business logic and information about the types of data in the database. At the top is the view layer, which is often CSS, JavaScript, and HTML with dynamic embedded code. In the middle, you have the controller, which has various rules and methods for transforming the data moving between the view and the model.

Often our customers ask us the same question: “what technology stack is best to use?”. I think people are inclined to believe that choosing newer technologies will be synonymous with immediate success, but I assure you that reality is far from that. I have seen a project fail at massive proportion like Titanic, just because a stake holder was hell bent on using a specific technology.

The question which technology to use, largely depends on minimum viability of the project. How scalable you think it would be and its long-time maintainability. 

However, here are a few common stacks which can provide you an idea of what to choose for front end and back end.

LAMP: Linux/Apache/MySQL/PHP

I think this one is the earliest stacks to get traction. The LAMP stack is made up of all free, open-source software components that work especially well for dynamic web sites and applications.

MEAN: MongoDB/Express.js/AngularJS/Node.js

MEAN is a more like a modern stack as compared to Lamp stack. It’s entirely JavaScript-powered, too. It includes: the MongoDB database, the leading JSON-powered NoSQL database that offers more flexibility than a relational SQL databases. If you like to know more about going Mongodb or MySQL you can read here. You may choose to use MySQL instead of MongoDB if you wish to.

Ruby Stack: Ruby/Ruby on Rails/RVM (Ruby Virtual Machine)/MySQL/Apache/PHP

The Ruby Stack comes ready-to-run, with a complete development environment for Ruby on Rails, with its most popular “gems” making building applications fast and easy.


In conclusion choice of stacks whether it is based on personal values or on company policy does have significant impact on the business application being developed. It also affects the cost of the outsourcing, the availability of resources for support and long-time maintenance of the project. Choosing a right technology stack is simply a matter of thinking ahead, but with changing times it is very difficult to make assumptions. Therefore, we need to consider market trends more closely and the adaptation cycle. As I said in the beginning Its like choosing your super hero, what hero you want to use depends on the villain( problem) you want to solve. Talk to your software development consultant / vendor to know what technology stack would be perfect for your next business application development. Thanks for stopping by and have a great day!

   Srivatsan Aravamudan

   Telephone:+65 62689551
   Fax:+65 62689858
   Business Analyst - Snr Software Consultant.


No comments :

Post a Comment

Related Posts Plugin for WordPress, Blogger...

Share Buttons