In this episode, we discuss why the underlying software architecture should never be overlooked. We discuss areas engineers can improve outcomes. Simple improvements we can all make such as creating better documentation and thinking about the future.
What is Software Architecture?
- "Business enablement."
- Kubernetes is open source software for running Docker containers - this is enabling companies' missions to move forward.
- Great software architecture bolsters the mission of an organization.
- Architecture seniority: synthesizing more of the company systems internally as an architect moves from junior to senior. How much fits in their head?
What is Software Design? (4:22)
- Architecture is what we're building and design is how we're building it.
- Architecture is how things communicate together and work/look as a system.
- Design is looking at each individual component and how it works tactically.
- Nouns vs verbs.
Meaning of Thoughtful Architecture (5:31)
- Building the most simple system as possible.
- And one that other people can build on when the time comes.
- Anticipating what product managers will ask the system to do, for instance, six months to six years from now.
- Martin Fowler and his principles of software architecture, especially: abstract what changes.
- What is going to change? What's dynamic? What's changed the most (from both product and engineering perspectives)?
- Make conscious decisions about what kind of technical debt risk you're introducing to your system/company when altering architecture or adding paradigm-changing features.
Documentation of Systems (14:49)
- Writing something down helps make things stick and it exposes flaws.
- Has a huge impact on the risk profile of architecture or system.
- Why does the industry do this so poorly?
- People don't value documentation
- If they did, project execution, handoff, and maintenance would be much easier and less expensive.
- A lack of craftsmanship really hurts the industry as a whole; causes bad code.
- Simple over complex thinking.
Best Ways to Integrate for Achieving Thoughtful Software (20:35)
- Viewing vendors as partners.
- We see our customers as our partners.
- We leverage their domain experts and knowledge to collaborate for great results.
What about Cloud Services? (22:46)
- Amazon Web Services (AWS) is the most complete solution.
- Azure and Google Cloud have different approaches.
- They're prescriptive
- They make hard tech more accessible.
- Google's approach is very much developer-first.
- Azure's emphasis is clearly on the enterprise and providing and tremendous experience.
- Cost and network speed; Google is the best for sure.
- Look at needs and pick wisely.
What is Thoughtful Software Podcast?
Software is eating the world. Software is also eating our wallets. Billions of dollars a year are lost on unusable software projects. The world wants Thoughtful Software. We discuss how thoughtful people and thoughtful software will change the world for the better.