Image for post
Image for post

Architecture Under Uncertainty Is Hard

Uncertainty is pretty much a given in software engineering (especially at startups). We almost never know as much as we’d like to about our market, our users, or our competitors, and finding product/market fit is inherently a process of educated guessing. And even if you do know a lot upfront, user needs and tastes, competitors, funding landscapes, and technology itself are constantly evolving.

Well, that makes architecture awfully hard. You don’t want to invest a whole bunch of time building something you’re just going to have to throw away or migrate off of, especially if that migration process is itself painful or risky (database migration anyone?). Even worse, you don’t want to build yourself into a hole where you can’t afford to switch gears, and instead are stuck with an architecture or infrastructure that acts as a constant risk or velocity drag. …


Image for post
Image for post

This blog post is part of a continuing series about enumerating the various responsibilities engineering leaders have and some of the concrete levers available to them. In general, this series optimizes for breadth, not depth, so if you’re interested in having me dive deeper into any particular topic, just let me know!

Being a Great Eng Leader is Hard

Being a great leader in any discipline is hard. It requires vision, strategy, inspiration, empathy, problem-solving, discipline, process, details, an extremely thick skin, and a lot more. As far as I’m concerned, being an engineering leader is particularly hard, because the job isn’t even very clear. There are a whole constellation of formal and informal leadership roles in tech with various names depending on your methodology — product owner, product manager, eng manager, people manager, tech lead, team lead, lead engineer, senior IC, project manager, program manager, SCRUM master, etc — that depending on the company may actually be in charge of any number of different overlapping responsibilities. And then once you do know what your job is, you still have to figure out how to get the job done. And again, that’s particularly hard in tech because a) it’s a very broad and flexible space, such that there a lot of different ways you could be spending your time and energy, b) you tend to have very little of that time because often the report:manager ratio is too high or you’re still trying to be an IC while managing, and c) startups and tech in general tend to be high urgency and fairly chaotic. …


Image for post
Image for post

Driving Abstract Change is Hard

There have been many times in my career where someone has complained to me about the current situation in their company, org, team, project, etc., …

About

Robby Bryant

Hi, I’m Robby! I’m a software engineer, leader, dad, and sometimes writer. You can learn more about my writing at https://www.twowaystolearn.com/about/.

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