Technology research

When developing a new product or solution, how do you determine the right technology and tech stack to use? We will have an example of IT company’s technology research but the same approach can be used for any project which involves any type of science of technology know-how.

Tech stack – for every application, development takes place on both the front-end, which is also called the “client” side and the back-end, which is known as the “server” side. The front-end is what you see when you log on to a website or open an application. The back-end contains the framework, programming languages, databases, and servers that make the application actually work.

Front-end development involves HTML, JavaScript, and CSS and determines how a website or application renders in a web browser. Back-end development uses platforms and frameworks such as Ruby on Rails, Python, and Django.

When you are making a website you can use visual programming (for example Wix, Weebly, see more in prototype tools) – no need for programming languages.Before researching technology, think of the skills of people in your team. Does any of you have experience in programming?

If yes … does any of the above mentioned programming languages or platforms sound familiar?

If no … how much would you like to learn? There are also options for total beginners, so if you are interested, do not stop yourself!

For tech-wiz´es:

Two of the most commonly used stacks are MEAN (MongoDB, Express.js, AngularJS, and Node.js) and LAMP (Linux, Apache, MySQL, and PHP.) MEAN stack development is popular because applications can be written in one language for both server and client-side projects. LAMP stack development is used primarily for developing dynamic websites and web applications.

TIP1: Go for open-source technologies

When building new software, you should seek out open-source solutions. They prevent you from having to build everything from scratch; it will save you a lot of time and is probably more secure (many heads are better than few). You’ll also be able to focus on the business side of things and making your product stand out. Remember to give back to the open-source community.

Once you’ve singled out a prospective technology, you should run through a checklist. What kind of license does it have? Does the language or framework have the features you or your developers need? How many core developers are there? You can check out the contributors or stars in the Github repository and how they have evolved over time. Is the source code easy to understand if you need to go deeper and check the algorithm under the hood? Is the documentation comprehensive, is the tech thoroughly tested, and are there starter boilerplates to get you going quickly?

Another important question: how does the team behind the technology deal with security problems? Is there an email address for reporting security vulnerabilities?

TIP2: Check the ecosystem

Every technology has an ecosystem composed of people and tools.

How big is the ecosystem behind the language or framework? How many StackOverflow questions, conferences, and online tutorials (e.g. Udemy) are there? What does Google Trends say? Is interest in the software still growing?

Do you know about the awesome awesome lists? They help you dig into the ecosystem of a language or framework. You can check tutorials, articles, and important packages relating to a given technology. There are lists for Django, node.js, React, Angular, and many more.

Also important: is the community welcoming new members, and how active is the community? How is the support for users and developers? Is there a mailing list, a chat channel, a Slack room, or a ticketing system? Are people blogging about the technology?

TIP3: Long-term trends & support

Every technology has a lifecycle. You want to choose mature technologies because they are reliable. You should check the latest Technology Radar to get an idea of how future-proof technologies are; this can help you decide whether to adopt them or put them on hold. The Technology Radar is free and it separates technologies into the categories of Techniques, Platforms, Tools and Languages & Frameworks. However, you should use the resource with caution, as the information it provided is not set in stone.

Another idea is to check industry-favourite technology stacks with stackshare.io or techstacks.io. Check out what Airbnb is using or what people like about AngularJS and who is using it. If you’re unsure about a technology, you can search for alternatives. Here is a list of alternatives to Angular JS on alternativeto.net.

Get started

If you are a young startup, getting started is more important than having the perfect tech. You probably won’t have all the required knowledge at an early stage, but you can fine-tune and optimize things or change tech stacks as you grow (and have the necessary budget).

It’s important to keep in mind that quality is a matter of doing things properly. Technology isn’t the only thing that matters: you need the right design, the right requirements, the right testing procedures, and so on.

Most importantly, make sure that you don’t limit yourself in terms of scale or changing to different technology in the future.

Popular tech stacks

Airbnb Tech Stack

  • Programming Languages: JavaScript, Ruby
  • Framework: Rails
  • Databases: MySQL, Amazon RDS, Hadoop
  • Server: NGINX

Facebook Tech Stack

  • Programming Languages: PHP, GraphQL, Hack
  • Framework: Tornado
  • Databases: Cassandra, RocksDB, Beringei, Memcached
  • Server: custom/proprietary

Uber Tech Stack

  • Programming Languages: Python, Java, Go, Objective-C
  • Framework: Node.js, Apache Thrift
  • Databases: MySQL. PostgreSQL, MongoDB, Redis
  • Server: NGINX