Skip to content
On this page

Software Stack

The choice of the software stack is another decision that needs to be made in the early stages of software development.

Software Stack

A term colloquially used by software developers to refer to the components used to build an application, such as the programming language, coding frameworks, database systems, runtime environment, etc.

For example, the MERN stack (MongoDB, Express.js, React.js, and Node.js) is a popular, free, and open-source JavaScript software stack for building dynamic websites and web applications.

TIP

Developers tend to give names to commonly used technology stacks (such as LAMP, MERN, ...) because it makes it easy to communicate about it.

You must decide on the technology stack you will be using to develop your proposed software application before you start developing it. When you build software, you want to start with the right foundation. Every software technology has strengths, weaknesses, history, and culture. Wise choices will help make your project successful; Poor choices will tend to cause difficulties.

In this course, you must work with Git & GitHub. Other than that, you are free to choose your software stack.

Here are some things to consider when making that choice for your project. This isn't intended to be an exhaustive list, but it should help to get you started.

  • Use the technology stack that best facilitates the development of the end product. If you are building an Android application, for instance, you most likely will use Java or Kotlin programming language. You would use Android Studio development tools and the Android UI framework.

  • If you are not sure or set on the end product, go for a web application or use cross-platform technology stacks. For example, Facebook's React Native (JavaScript), Google's Flutter (Dart), and Microsoft's Xamarin (C#) allow you to build cross-platform applications (that work on Android, iOS, Desktop, and Web).

  • Use a stack that fits your team's core skills. If most of your teammates have taken EN.601.280 Full-Stack JavaScript, for example, you might want to use the MERN stack. That's a safe choice. It is easier to work on things that you already know and have experience with.

  • Don't be afraid of learning new things. This is a bridge that you must cross sooner or later. Don't be afraid of it! When facing new technology, framework, or programming language, remember you don't have to learn everything about it. You just have to learn enough to make it work whatever it is you are making.

  • You should not feel obligated to follow a predefined technology stack; you can borrow from different stacks or make up your own! Also, be aware of industry trends but don't be overly influenced by them! Software trends can come and go quickly.

  • Realize that the thing you ultimately build might not be the thing you start building. In this course, you are building a Minimum Viable Prototype (MVPr). At this stage, you should focus on a software stack that provides the easiest and fastest path to turn your idea into a working prototype. You can worry about performance and scalability further down the road.

  • Consider the ecosystem and community around your technology stack. How hard is it to find help, resources, and tutorials when you get stuck? How likely is it that you find an open-source library that readily provides a feature you want to add to your application?

YouTube: What is a Tech Stack?

Caution

Once you have decided on a technology stack, you must get the instructor's approval before proceeding with it.

Released under the MIT License.