Technology choices have lasting consequences. A project's technology stack determines the functional and nonfunctional capabilities of your system, so it is critical to make thoughtful choices. The bidirectional link between technologies and requirements opens up an analytical approach for choosing between different technologies by matching their features against the project's needs. In this chapter, we will see how we can use software design practices to form project-specific technology stacks and see what technologies should constitute the core technology stack that's shared among all of your projects. We will also explore an approach that compares different technologies so that you can make a rational choice between apparently similar options.
In this chapter, we will cover the following topics:
- Defining the elements of the technology...