Software architecture



I am a true believer that understanding what software architecture is and mastering it should be a developer's priority. As a software developer we tend to go in depth in coding trying to find a solution to a problem or just to have something built without thinking on the reusability, security and structure. When it tends to building new functionalities and thinking about maintainability it begins to get complicated, messy and expensive.

Pete Goodliffe recommends to make a pause before coding. Identifying modules, and other reusable parts. As any developer, I sometimes get an idea or a functionality. I think that I know what I should do and then, you create one file, and then another one, and if you did not start with a correct file structure, you immediately start to notice how messy everything is. This happens exactly the same when software is not following a blueprint or design like in common building architecture. 

Other tasks in building and architecting a software project is too think in the programming languages options, some languages may solve our problem easier with less coding. Or maybe there are some specific frameworks that can help us build faster by saving us some work. Also, we have to think in the hardware requirements and possible dependencies, specify libraries and stable versions for those. And also about scalability, what if our server receives 1,000 req/month vs 10,000  req/min and how it should handle those. How will the load balancer work?

Preventing all this and asking the correct questions before starting building mostly translates into saving money and time when building, supporting and continuously deliver to that software.

References:
Goodliffe Pete (2006). Code Craft: The Practice of Writing Excellent Code.

Comentarios

Entradas populares