Skip to content
Yakup Bugra Bozkurt
Go back

Software Architecture Notes - 1

These notes consists of my highlights from “Software Architecture For Developers” book that I strongly recommend to read: https://leanpub.com/software-architecture-for-developers

What is software architecture?

What is difference between design and architecture?

A lack of software architecture causes problems

If nobody thinks about software architecture, the end result is something that typically looks like a big ball of mud.

The benefits of software architecture

The software architecture role

Becoming a software architect isn’t something that simply happens overnight or with a promotion. It’s a role, not a rank. It’s the result of an evolutionary process where you’ll gradually gain the experience and confidence that you need to undertake the role.

Should software architects code?

Make the coding a part of your role as software architect. You don’t need to be the best coder on the team but the benefits of being hands-on and engaged in the delivery process are huge. After all, there is a difference between knowing and doing. Coding provides incentive to ensure that your designs are grounded in reality.

Breadth of knowledge

The software architect should be able to answer the following questions:

Soft Skills

Software architecture introduces control?

Provide Guidance, strive for consistency. Guidance and consistency can only be realised by introducing a degree of control and restraint. Start with some control and listen to feedback in order to fine-tune it as you progress. If the team are asking lots of “why” and “how” questions, then perhaps more guidance is needed. If it feels like the team are fighting against you all of the time, perhaps you have pushed too far.

Domain Knowledge

A good working knowledge of the business domain is essential for architects.

Authority

If you are responsible for the software architecture and technical delivery of the software system, you must have the authority to make decisions.

At the end of the day, every decision you make will have a trade-off whether that’s related to performance, scalability, maintainability, the ability to find people with the right experience etc.


Share this post on:

Previous Post
Career Ladder for Engineers
Next Post
Getting Real Kitap Notları