As a software engineer, architecture plays a big role in the development process. It helps the engineering team a lot, even for a small team. It is also helps the apps itself, which is will leads to the success of the product, especially in the future. But, why is it important?
Here is Why …
Let’s have a little story. There is a team that managed to finish the app according to the timeline. The app has launch even worldwide and the revenue starts to come. A very happy developer. so, what’s comes next? Feedback!. Users have so many feedbacks for the app that they like. If the developer do not pay attention to their feedbacks, there is always a big chance that the users will leave the app and the revenue start to goes down, or event stop.
So how to deal with the feedback? Of course to make the wishes of the users come true, right?. A new design, feature, etc, needs to be done. If the architecture is not well implemented, and some new designs, features, etc come, then it is a disaster, especially for the developer. The developer will implement the new things with so many difficulties, like dealing with lines of codes, unclear flow of the app, reading more about what already they write, stressed, and so on. So many cost in the future.
Okay, I understand. So how to deal with architecture?
The most basic thing is starting from the ground. I mean code quality itself. The code needs to be clear and easy to understand. It needs to be clean. Because everyone is communicating through the code, everyday. Learning how to write a clean code is essential to software engineers.
It is good to have a proposed architecture from the start. It will not be a complex architecture, but it can helps the team to have a good foundation about the data and communication flow inside the app.
Test Driven Development
Wait, why TDD?
TDD, can helps us to shape our app’s architecture little by little by following red-green-refactoring. Also, TDD can guides us to shape our code into a better code that easy to test, and maintain, e.g. using dependency injection.
Architecture and Behaviour
As part of developer team, we need to do both feature (behaviour) and architecture. We also needs to prioritized it correctly. Using the Einshower matrix, we can see the importance of those two.
This matrix has 4 quadrants, and architecture is located at the 1st and 2nd quadrans. Those two quadrants belongs to “Important” area, wether it is urgent or not. Behaviour belongs to 1st and 3rd quadrants and both quadrants are urgent, important and not important. This matrix shows us that architecture is always important.
Dealing with architecture or type of architecture can be overwhelming if we are not used to it. But, remember, by having a good architecture, you are helping everyone including yourself, the whole team, or even the business.