Blog

How to choose a Tech Stack

WHITE PAPER – How to choose a Technology Stack

What is a Technology Stack?

A technology stack (Tech Stack) is a set of software code that is made up of modules used in software products and programming languages to build (develop/code) a software application.

The lower in a Tech Stack you go the closer you get to the hardware, for example a Operating System is the part of the tech stack that provide an interface between the computer user and the computer hardware, it communicates directly with the computer hardware. The higher you go in a Tech Stack the more specific and specialized the functionality becomes for example a DBMS (Database Management System) that provides the interface and platform to manipulate, store, manage and administrate data into databases.

Choosing a Primary Tech Stack usually involves the choice of the Operating System, programming languages, standard development libraries, frameworks, DBMS and a support community. The Primary Tech Stack will be used by most of the developers and software engineers in building the software product/application but several Secondary Tech Stacks may be used in support of the Primary Tech Stack to fulfill specific specialized requirements.

There are lots of different, competing technologies made up of different tech stacks, to build a website or software application with. A software application usually consist of the following main components: the Front End of the site/application (what the end users see on the screen and will be interacting with), the Admin Portal (that the application/program administrators or back office personal will use as an interface to administer and manage the application or site), the Middleware, Logical Layer or Application Layer (that performs all the ‘automatic’ actions and is the heart of the application doing all the calculations, processing and data manipulation), and the Database where all data used within the application or site is stored. Each of these components making up an application or website can be developed with a different software product or programming language but preferably within the same Tech Stack to reduce the complexity of supporting the application/site.

How do you choose a technology stack, what factors and key technical aspect should be considered to avoid the wrong choices?

When choosing your tech stack it is important to choose components that designed to easily integrate – the frontend technology must integrate with the admin, logic and database. The integration of the different application components is illustrated in the hand drawn diagram.

TechStack_Integration

The challenge today is choosing a Tech Stack, which supports current trends, and also future proofs your technology solution for the future. You can only focus your choice towards the Tech Stack that will be appropriate and the best fit for your business today and with that realize that the Tech Stack might change in the future as technology evolves – in other words there is no such thing as a fully future proof tech stack.

Considerations and Factors to keep in mind when choosing your Tech Stack

    • Development Lapse Time / Time to Market: How long will it take to develop an application in one tech stack vs the other. If the tech stack give you access to frameworks and platforms it will reduce the development lapse time and hence your time to market (in other word the application can be developed quicker).
    • Compatibility: Will the new technology work with exiting tools and software used within the business? Can you reuse previous developed software code in the new tech stack? Integrating the new tech stack into your existing environment, will it cause disruption or large quantities of rework of existing systems and infrastructure?
    • Cutting Edge: The more cutting edge the technology the more bumps their will be on the road ahead as the cutting edge still has some way to go to maturity and stability.
    • Productivity: If you already have a development team in-house, are they qualified to work with the tech stack? DO the developers have any issues with the new tech stack? What issues and pain did you and your development team have with the previous tech stack – are those addressed in the new?
    • Engineering Talent Availability: Is the right people available to support the tech stack you intend to use? The right people will be across the board including, architects, tech leads, senior developers, developers, database developers / administrators, etc. Will it be easy to find these people? This is linked to the popularity of the tech stack – the more popular the more talent will be available. Where (in which location) will you need the talent – what is the availability of the talent in your preferred location, the location where you want to build you in-house and offshore teams?
    • Recruitment and Retention: How ill you recruit the talent for the tech stack? Will what you have to offer (salary, working environment, training, personal growth, business prospects and growth, etc.) be attractive to the market of professional knowledge workers (technologist)? Make sure that can recruit and retain your technology staff to support your tech stack, otherwise it might be an expensive choice.
    • Expertise: What level of expertise on the new tech stack do you have within your (in-house or outsourced, on-shore, near-shore or off-shore). Make sure that you have staff that are well experienced with the tech stack and ensure that they understand your business drivers and your requirements. Ensure that within your team you enough experts (at the right levels i.e. Tech Leads & Snr Developers) that thoroughly understand the tech stack intrinsically.
    • Maintenance & Support: Different programming languages promote different style for example Object Oriented (OO), Strongly Type (Functional) and Dynamic styles. As the complexity and the magnitude of the technology solution increase and/or the team that develop the solution is large then OO style programming languages bring a lot of value. Strongly typed languages and their frameworks like C++, C#, Java and Scala support better tools while Dynamic one like PHP, Pyhton, Ruby, Javascript take less development time. The trends based on the above is that strongly type OO languages are mainly used in enterprise solutions where code base size, team size and maintenance matters. Another factor to consider is the standards and methodology followed by developers in writing the code. Some software development methodologies introduce very robust quality assurance and code validation that delivers a very superior, bug free solutions that are easier to support. A well-written technology solution is also adequately documented to ensure maintainability and supportability. Other factors like team knowledge, expertise and the availability of resources/talent (as mentioned in other points in this section) to form a solution support team must also be kept in the equation.
    • Scalable: Scalability refers to the ability of a solution to easily adapt to service more users, process more data within a specific timeframe without increasing the overall software and development cost. Hardware is mostly directly related to the scalability for example the more the solution scale the more hardware might be needed to support the technology solution. Scaling can take place horizontally – that is adding more hardware (servers) to the overall solution or vertically which increases the ability to process more data and/or request/users on a particular server. Will the tech stack scale to meet your requirements in performance? How easy is it to scale the solution horizontally? How does the tech stack compare with others in vertical scaling? If you know your solution will be receiving high traffic (lots of users) or will be processing loads of data the choice of your tech stack becomes very important. The difference in the scalability of two tech stack can be seen in timing and compairing the systems’ response in processing the same about of user requests or data for example:
      • Ruby is 30 x slower than C
      • PHP is only 8 x slower than C
      • Java is a mere 2 x slower than C
    • Community: How strong is the community for your selected tech stack? A strong community is a key factor is selecting a tech stack as an active and devoted community ensures the following:
      • Availability of Documentation
      • Fast response to bugs, issues and problems. Response and support to resolution of issues that might appear to be specific to your solution
      • Availability of issue and problem solutions and the source code to copy/paste speeds up the resolution
      • Continuous updating of the basic framework, increasing the availability modules and libraries, producing new releases that results in a more stable tech stack
      • Availability of resources/talent understanding the tech stack
    • Quality of Tools: Ensure the tech stack provide adequate tools to the development and support teams to use for example IDEs (Integrated Development Environment), Debuggers, Build Tools, etc. Adequate tools will ensure you have an empowered and engaged development team that can get the job done.
    • Licensing: Tech stacks are licensed differently – either Open Source or Commercial licensing applies. Open Source tech stack has grown tremendously over the past view years. Statistics show that on the internet, more open source tech stack driven solutions (solutions based on the LAMP stack consisting of Linux, Apache, MySQL and PHP) are present than commercial tech stack based solutions like Microsoft consisting of Windows server, IIS, SQL Server and .NET. When deciding on a tech stack it is important to understand the different licensing types and the associated cost to the license to use the software not just for development but commercially in the mainstream production environments of your business. Open Source licenses are usually cheaper than commercial licenses. Make sure that you understand the type of license the tech stack components are under and that you have the associated budget.
    • Hardware Resource Hungry: What level (quantity and specification) of hardware will the tech stack require to run your application effectively according to expectations and requirements? Some tech stacks require several different servers to run a single application dependent on the complexity. This should be taken into consideration especially in conjunction with the budget constraints. Tech stack and Hardware requirements are dependent on the performance and uptime requirements of the operational technology solution. A solution that needs to be up and running every second of the every day and/or are procession large volumes of data in the shortest possible time, will have a higher dependency on the hardware with infrastructure design incorporating the resilience against hardware and connectivity failures. Hardware is not directly dependent on the tech stack for redundancy but some tech stacks are better suited for high availability with build in capabilities, than others.
    • Popularity: See point on Talent Availability and Documentation
    • Future Proof: This is a relative concept because none of us have a crystal ball to gage exactly what the future will hold in order to choose our tech stack accordingly. How long into the future are you looking to proof your application, recognizing that technology is rapidly changing and no single tech stack has ever been and will ever be available and around for ever. Even tech stacks like Microsoft that has been around for twenty plus years has changed within and the older tech stacks from Microsoft are absolute while newer options are introduced every two to three years – sometimes without appropriate backwards compatibility. Your tech stack must be agile (adapt to change), backwards compatible, scalable (to accommodate your business and market growth), from a reputable supplier (a supplier that is credit worthy and likely to be around for the future) and popular. Popularity is very important and the community following, embracing and developing a tech stack will ensure the availability of talent and support resources to ensure your application build in a particular tech stack can be supported long into the future.
    • Documentation: Are the appropriate documentation available for the tech stack to completely enable your team to utilize the power of the tech stack? Documentation includes printed manuals, internet information resources, sample code, module and libraries, community forums where issues and problems are discussed and resolved with solution code that can easily be copied/pasted.
    • Maturity/Stability: What is the latest released version of the tech stack. A mature tech stack with release versions will be much more stable than a version 1 release, for example.
  • Company Constraints: Is your tech stack choice affected by certain constraint within your business i.e. if you are looking to develop a native mobile application for iPhone or iPad who have no other choice but Objective C for your programming language. Do you have access to a DevOps team (operations team ensuring the software development and operational infrastructure seamlessly integrate)? If not you might want to consider a PaaS option and use the stack it supports. Other constraints can be: legal requirements like PCI DSS (Credit Card and Personal Information security legislation and requirements), budget and operational costs.

 

What are the popular choices in Tech Stacks?

Operating Systems
·       Microsoft Windows

·       Apple OS X

·       Linux

·       Mobile

·       iOS

·       Android

 

Programming Language Associated Web Framework
Java ·       Spring/Hibernate

·       Struts

·       Tapestry

·       Play! (Scala)

Javascript ·       JQuery

·       Sencha

·       YUI

·       Dojo

PHP ·       CodeIgniter

·       Zend

·       Cake

·       Symfony

Python ·       Django

·       web2py

·       TurboGears

·       Zope

Ruby ·       Rails

·       Sinatra

C# ·       ASP.NET

 

Web/Application Servers
·       Apache

·       Tomcat

·       Netty

·       Ngnix

·       Unicorn

·       Passenger

·       IIS

·       Microsoft Windows

 

Databases
·       Microsoft SQL Server

·       MySQL

·       Postgres

·       Oracle

 

Cloud PaaS (Platform as a Service)
·       Heroku

·       CloudFoundry

·       Microsoft Azure

·       Redhat Openshift

·       EngineYard

 

Let’s Talk – Are you looking to achieve your goals faster? Create better business value? Build strategies to improve growth? We can help – make contact!

 

Source & Reference List:

Balance Sheet

The Balance Sheet is a snapshot in time showing everything the business owns – its assets – and everything a business owes – its liabilities at a specific time.

It reflects the financial status of the organisation at the close of business on a specific day. When reading the balance sheet the date is very important in the interpretation of the financials as the time of the year might impact how good the balance sheet looks for example at the end of a sales promotion.

Balance sheets are usually drawn up at the end of a month or once a year – at the end of a financial year.

The balance sheet is divided into a left and right side. The totals of the left side (Total of Assets) is equal to the total of the right side (Total of Liabilities + Shareholder Funds), hence it being called the balance sheet.

BalanceSheet-F1

The balance sheet reflects the financial information in three very specific sections namely:

  • Assets – what the business owns
    • Fixed Assets – also referred to as Long Term Assets
    • Current Assets – also referred to as Short Term Assets
  • Liabilities – What the business owes
    • Fixed Liabilities – also referred to as Long Term Liabilities
    • Current Liabilities – also referred to as Short Term Liabilities
  • Shareholder’s Funds– the money invested in the business by its shareholders or owners, also referred to Owners Funds or Equity.

BalanceSheet-F2

 

In the Book “What the Numbers Mean“, Renier provides a detail overview of the financial records reflected in each of the three sections within the Balance Sheet.  He also covers the relation between the Balance Sheet and The Income Statement and concepts like “Goodwill”, “Bad Debt” and stock valuation concepts based on “FIFO” and “LIFO”.

What-the-numbers-mean-1

You can obtain a copy of the book “What the Numbers Mean” from LeanPub here…

LeanpubLogo1200x610_300ppi

Also Read…

GHA Discovery – Loyalty Programme

GHA ICLP GMS Case Study

“GHA Discovery is an innovative program created to recognise and reward guests who embrace our dynamic collection of hotel brands across the globe. We require communications that reflect our unique position, cater to member preferences, and deliver an engaging experience. ICLP has been a great support in launching and running a communication platform across both email and print mediums, proving to be a dedicated partner to our company. ”, KRISTI GOLE, LOYALTY MARKETING MANAGER, GLOBAL HOTEL ALLIANCE

iRedeem Product Development – Case Study

iRedeem Product Overview

iRedeem is an online redemption programme enabling members of a loyalty or membership programme to spend their loyalty currency on a range of exciting travel, lifestyle and leisure rewards.

Built on leading e-commerce technology and with a network of global partners iRedeem currently serves blue chip companies across the globe, offering them a personalised customer experience. You can incorporate your own inventory to provide greater redemption choice and reduce distressed inventory.

Also read the case study… iRedeem – A Global Airline Case Study

Profit & Loss (P&L) or Income Statement

The Income Statement, also referred to as the Profit and Loss (P&L) account, reflects the earnings of a company.

P&L_F1

Earnings are the net outcome of a company’s operations and are the amount on which corporate tax is due, also referred to as Profit (which are reflected as six different profit levels within the Income Statement).

Revenue (also known as income, sales or billings) is the income that a business generate selling its core means of business, its product. Revenue is also referred to as the ‘Top Line’ due to its position in the Income Statement.

Expenses are all the cost an organisation incurs in conducting it’s daily operations ie salaries, rent, cost of stock/product, etc.

The Income Statement are divided into six profit areas, each showing a specific level of profit namely:

  • Gross Profit (GP)
  • Net Contribution
  • Operating Profit (OP)
  • Profit Before Tax (PBT)
  • Net Profit / Profit After Tax (PAT)
  • Retained Profit (RP)

 

In the Book “What the Numbers Mean“, Renier provides a detailed overview of each of the profit areas within the Income Statement. He also covers concepts like “Top Line” and “Bottom Line” as well as key Finacial performance KPIs like Gross Margin, Net Contribution and Operating Profit and how this P&L information can be used in daily operational management to improve efficiency and profitability.

What-the-numbers-mean-1

You can obtain a copy of the book “What the Numbers Mean” from LeanPub here…

LeanpubLogo1200x610_300ppi

Also Read…

Global tech Provider: Loyalty in Technology – Case Study

Global Technology Provider – Case Study

As a world-leading silicon component manufacturer, our client is entirely dependent on 3rd  party multi-national Original Equipment Manufacturers (OEMs), systems integrators and channel resellers to manufacture, market and sell finished products to end customers. Their Channel Partner Programme creates a relationship between the Company and its independent global channel partner community…

The Art of IT Effort Estimation

Why Estimate at all?

Estimation is an essential part of any project methodology. Estimation is used for a number of purposes:

  • To justify the project enabling the costs to be compared with the anticipated benefits and to enable informed comparisons to be made between different technical or functional options.
  • To enforce the discipline needed to make the project succeed.
  • To secure the resources required to successfully deliver the project.
  • To ensure that the support impact of the project is fully understood.
  • To inform and improve the software development process.

What is estimation and why is it so important

Projects are planned and managed within scope, time, and cost constraints. These constraints are referred to as the Project Management Triangle.  Each side represents a constraint.  One side of the triangle cannot be changed without impacting the others. The time constraint refers to the amount of time available to complete a project. The cost constraint refers to the budgeted amount available for the project. The scope constraint refers to what must be done to produce the project’s end result.

These three constraints are often competing constraints: increased scope typically means increased time and increased cost, a tight time constraint could mean increased costs and reduced scope, and a tight budget could mean increased time and reduced scope.

PM 3 Constraints

What are the challenges

  • Lack of communication between…a…b…c
  • Lack of training in basic knowledge and techniques of estimation
  • Inability to do estimations based on – cost – time – scope
  • Project failure through time over runs and faulty estimation

Where are we going wrong?

  • Every day, project managers and business leaders make decisions based on estimates of the dynamics of the project management triangle.
  • Since each decision can determine whether a project succeeds or fails, accurate estimates are critical.
  • Projects launched without a rigorous initial estimate are five times more probable of experiencing delays and cancellations.
  • Even projects with sound initial estimates are doomed if they are not guided by informed decisions within the constraints of the triangle.
  • If you are working under a fixed budget (cost constraint), then an inaccurate estimate of the number of product features you can produce (scope) within a fixed period of time (schedule) will doom your project.
  • Inaccurate estimates across your projects de-optimize your portfolio.
  • Estimates are always questioned when estimates are given with knowledge – no estimation template is being used

How can we improve?

  1.  Outsource the project estimation function to an outside qualified consultant for each project to be able to gain viable and realistic project estimations that can be achieved.
  2.  Education of in-house project managers and technical leads so that we are able to collectively able to provide clear methodologies on how to estimate accurately.

This can be done through an onsite workshop/course  – onsite is cost effective as company will pay one block fee for the attendees instead of delegates going offsite and attending a workshop where individual fees are applicable.

My personal recommendation is option B – as this option will allow us to retain skills in house to be able to produce accurate estimates

What are the long term benefits

Well crafted estimate creates many benefits:

  • alignment between business objectives and technical estimates
  • more informed business decision making
  • reliable project delivery dates
  • improved communication between management and the project team
  • controlled project costs, and
  • satisfied customers

Conclusion

The UK is facing ever tightening economic restraints. This means the quality of work is now, more than ever, of the utmost importance. To stay competitive in a shrinking marketplace, this company cannot afford to get a reputation in the industry for non-performance and bringing in projects over budget and outside estimated time frames. Credibility is the basis on which we build our reputation. In the eyes of clients credibility = successful projects. For us the success of all projects rest on the correct and precise estimation from the start of a project based on best practices, realistic expectations and transparency.

 

Harrods Rewards

“Launching Harrods Rewards is an integral part of our CRM strategy. It gives us the opportunity to understand our customers and their spending behaviour. We are pleased with our performance and the ongoing support from the ICLP team has been outstanding. It is a hugely exciting time for us.”; JOSE MAJLUF, CRM CONTROLLER, HARRODS

Read the full case study here… Harrods ICLP GMS Case Study

Tracka in the NHS

Tracka – NHS DrFoster Case Study

Challenge: It was recognised that NHS Stoke on Trent Community Health Services needed to ensure that the organisation has timely, auditable, and accurate information about patient experience. In order to get an understanding of patient satisfaction, a more systematic and reliable approach was required.

Solution: NHS Stoke on Trent Community Health Services started using PET in 2008 with ten devices to monitor how patients perceived the range of health services provided.

Outcome: Within the first two months of using PET, it became apparent that tangible improvements were required where hygiene and hospital meals were concerned. PET is providing the organisation with a tool to benchmark core patient experience along with key organisational objectives as set out in its strategic direction. As a result, a further 20 PET units have since been installed across all services.

Also read this case study… Erewash Case-Study

Tracka in M&S

Marks & Spencer – CFS Tracka Case Study

Marks & Spencer wanted to prove internally that the information gathered by the CFS system was accurate and representative. To do this they checked the system results against known factors. The system accurately reflected known situations.

Thus the system provided M&S with two things:

1. An accurate measure on which to base performance evaluation for service delivery

2. A system that would illustrate new and unexpected areas for focus and improvement.

Microsoft & CFS

The South African company, Customer Feedback Systems, has witnessed rapid growth since it introduced a real-time service that measures customer service levels. This led to plans for overseas expansion through an international distribution network. But the company was keen to replace its existing reporting software, which was too complex and expensive to support worldwide operations.

By implementing Microsoft® SQL ServerTM 2000 Reporting Services, Customer Feedback Systems dramatically reduced costs, significantly cut the time spent on generating ad hoc reports, and provided a cost-effective and flexible environment that guaranteesthe success of its international strategy.

Read the full case study… MS CaseStudy CFS 2

Tracka in Specsavers

CFS Specsavers – Case Study

Specsavers were keen to upgrade the manual system the company had in place for collecting customer feedback data to help improve the levels of customer service. The optical group wanted to access professional service offered to its customers and provide store directors with an intuitive solution that would deliver rapid results which could be fed directly into the daily running of their businesses.

Innovation Rewarded

Engineering News – Innovation Reward

Innovation is crucial to industry and economic growth. That is why the South-African Department of Trade and Industry (DTI) has introduced the SPII (Support Programme for Industrial Innovation) initiative to support companies in the develop of new products.

The winners of the 7th SPII Awards was announced in Kimberley in Sep’04…

Customer Feedback Systems won the small enterprise category with its innovative CFS Version 2 Service Tracka project.

The CFS Version 2 “Service Tracka” product is an electronic tool designed to obtain useful and reliable service information with little inconvenience to the customer providing the information. Feedback Systems GM Renier Botha says direct-customer, real-time market intelligence and operational information is an indispensable tool for any business, particularly those involving a large number of individual customers. “Traditional methods include direct or telephone interviews and the completion of forms by customers – all methods that are expensive and time-consuming,” he notes.

With the CFS Version 2 Service Tracka, electronic input devices are located at tills or at strategic positions within a queuing system. The customer enters his responses to questions, without assistance, into the input device. The data is then hosted and managed by CFS and, upon input, is immediately written to a database and results delivered electronically to the client as often as daily. “This enables the client to focus on driving service improvement,” Botha explains.

The CFS system has a number of enhanced features, including a card reader for linking to loyalty programmes, the location of ‘intelligence’ in the central controller, which reduces input device costs, and the activation of the input devices from the central controller, which allows for the reduction of fictitious entries. The provision of question template updates by means of programmable chips in the lid also allows updates to be made before and after deployment of the input devices making question changes easy. Local customers include banks, hotel groups, healthcare, retailers and the South African Revenue Service.

Feedback Systems started developing the CFS Version 2 Service Tracka system at the end of 2001.

The product was subsequently released on the market at the end of January the next year. Today, the company has sold some 4 500 of these systems across South Africa.

Feedback Systems also has distributors located in Zimbabwe (servicing African countries, such as Tanzania, Kenya and Namibia), Australia, Singapore (servicing South East Asia), Dubai (servicing the Middle East) and London (servicing Europe). “We have a total of about 2 000 Service Tracka systems operating in these countries,” Botha says.

The company is also currently negotiating a distributorship deal for the US.

Read the full articel here… Engineering News – Innovation Reward

Reporting Services Pioneer

Microsoft Tech-Net Mag 10.2004

Renier Botha, Director and GM (General Manager) at CFS (Customer Feedback Systems – now Customer First Solutions), talks to Microsoft TechNet magazine about the pioneering work done using Microsoft SQL 2000 Reporting Services, making CFS the first company to go into production with their “Service Tracka” product using the new Reporting platform from Microsoft.

The first version of the “Service Tracka Reporting Suite”, developed on the Beta version of Microsoft’s Reporting Platform utilising SQL Reporting Services, DTS (Data Transformation Services), OLAP (Analysis Services) and SQL2000 Database, enabled CFS to crunch through a large amounts of data collated from accross the world and deliver thousands of daily scheduled reports to clients helping them to measure customer satisfaction as part of the NPS (Net Promoter Score) KPI (Key Performance Indicator).

Read the full article here… Microsoft Tech-Net Mag 10.2004

CDC class of 2000 – Graduation

2 December 2000

CDClogo1 Career Development College of South-Africa

Students in computer and business courses at the Career Development College in Midrand, today received diplomas and certificates at the graduation ceremony at Halfway House Primary.

Renier Botha, lecturer and co-principal’s of the CDC Campuses in Midrand and Rosslyn, Gauteng, South-Africa: “We are proud of every student that graduated this year. Knowledge is an asset that cannot be taken from you – ever. It is a privilege to be instrumental in the education of the next generation and to help them build their life assets in knowledge.”

CDC Dec2000

Snippet from the Midrand Reporter – 2nd December 2000

At CDC our mission is:

  • to provide professional service and products such as relevant programmes in our effort to offer expert training in the Computer and Business Industry, and so contribute to the improvement of development in this sphere in South Africa.
  • Candidates who have completed their training through our college will be able to contribute constructively to the wealth and economy of our country across the widest possible spectrum of the population.
  • We endeavour to develop, not only the intellectual, but also the social and emotional needs of our students. That  is why we believe in the power of education, and in GROWTH THROUGH KNOWLEDGE.