Thoughtful Software Podcast

{{ show.title }}Trailer Bonus Episode {{ selectedEpisode.number }}
{{ selectedEpisode.title }}
|
{{ displaySpeed }}x
{{ selectedEpisode.title }}
By {{ selectedEpisode.author }}
Broadcast by

Summary

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.

Show Notes

Episode 2: Thoughtful Software Architecture

There is nothing more expensive and wasteful than sending thought-less software to production. In this episode, Andrew and I discuss why the underlying software architecture should never be overlooked. It is critical to your success in scaling and providing great user experience. 

Hosts: Fahad Shoukat and Andrew Wolfe from Skiplist.

Outline


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)

4:22- Differentiating and defining

  • 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)

5:31- Depth around "thoughtful"

  • 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)

14:49- Communicating the future with documentation

  • 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)

20:35- How do we put this all together?

  • 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)

22:46- How should we think about providers and components?

  • 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.