Software takes more than “the right technology” | SitePen

Looking at common technology choices

Microservices vs Monoliths

  • Flexibility getting started
  • Limit drag of technical debt
  • Can be deployed/scaled independently
  • Lots of boilerplate/config to start
  • Coordinating between services is more complicated/expensive
  • Maintaining consistency is difficult
  • Simple to extend/expand
  • Take advantage of existing architecture
  • It’s easy to reuse existing code
  • Build/test/startup time can get slow
  • Harder to introduce new technologies/architectures
  • Code easily becomes tightly coupled

Monorepos vs Polyrepos

  • Easy to share code/config/infrastructure
  • Easier to enforce consistency through tooling
  • Cross-project changes can be made at once
  • More complicated infrastructure
  • Download/build/test times grow as projects are added
  • Managing code ownership isn’t built-in
  • Simple to get started
  • Flexible to each project’s needs
  • Each application needs its own CI/CD infrastructure
  • Hard to make cross-project changes
  • Hard to share code
  • Hard to enforce consistency

Cloud vs On-premise

  • Less software, hardware, and security maintenance
  • Quickly scaleable
  • Uptime is usually better
  • Dependence on a cloud service
  • New APIs for existing teams to learn
  • Different price structure
  • Often already existing
  • More control over security, software, and hardware
  • Complex technical maintenance
  • Need extra capacity to scale
  • Complex costs

Rewrites vs Upgrades

  • Can rethink assumption to make improvements
  • Can take advantage of the latest technology available
  • More attractive projects for both developers and managers
  • Has higher initial development costs to reimplement base functionality
  • Managing two products side-by-side is difficult
  • Migrating data requires additional thought
  • Can build on existing work/team/infrastructure
  • Can get new features to users more quickly
  • Existing technologies are often better understood
  • Need to address existing technical debt to be productive
  • Legacy technologies may have a shrinking community
  • Fixing fatal-flaws may be cost-prohibitive

Summary

--

--

Modernizing Apps, Tools & Teams | sitepen.com | Twitter: @sitepen

Love podcasts or audiobooks? Learn on the go with our new app.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
SitePen

SitePen

Modernizing Apps, Tools & Teams | sitepen.com | Twitter: @sitepen