Last time, I attended an online course which told about how to choose the right tech stack for building product. Thanks to Mr. Yuke from DKatalis Jakarta Tech Hub and Mr. Ibnu from Gits Indonesia for sharing this information :). Here are some key points.
Contents
Tech Stack
"Stack" refer to any combination of programming languages, tools, frameworks, and technologies, or combination of software products. There are so many of them.
TIPS: There are so many languages to learn, if you are confused with that, learn only 1 language deeply.
Question
Question that are frequently asked in events and forum:
- I want to develop marketplace, is Node.js good choice or not?
- I want to develop mobile app, should I use Ionic, React Native, or Flutter? And many more...
According to the Speaker, those questions aren't valid. There must be about quality/priority those needed to build those apps.
System Requirements
There are 2 parts, functional and non-functional requirements.
Functional are focused to user story, use case (UML).
Non-Functional are focused to quality attributes such as scalability, maintainability, reusability, testability, utilities, and many more.
KEYNOTE: Quality attributes is the most important on choosing tech stack rather than functional requirements.
System Quality Attributes
There are 3 parts which most important:
- Business View (Business Goals, Constraint, Cost, Benefit, Markets, Time, Integration with Legacy System)
- End User View (Performance, Availability, Usability, Security)
- Developer View (Maintainability, Portability, Testability, Reusability)
General Framework of Thinking
TIPS: This is the most important thing.
List all the quality attributes (QA): Listen to all stakeholders and don't give some assumptions. The requirements must be detail and specific.
Prioritize QA: Decide what is the most important QA, Compare with all alternatives, and Do research.
Evaluate and Evolve: Satisfy with the solution?, Are there Critical issues or Blocker?
Case Study
For example, in this case is developing a hackathon app. To build hackathon app, we must consider the resources, background experience, time and so on. We must breakdown every problem, constraint and challenge.
For resources, like who is developing, who is maintaining, who will be backup the product, and so on. For experiences, like what language will be used, how efficient to another tools. For time, like how long will be built.
Conclusion
Factor those are really important is communication and team management. The quality attributes is the most important factors to decide tech stack.
If you are interested, let me hear about your opinions in tech stack :).
Top comments (0)