(to all the humans and robots...)
Humanity = Technology
i love technology. to a fault sometimes. having ADHD, i love new shiny things and the technosphere has no shortage of them. to be fair though, technology literally changes what it means to be human. of course, the basic underlying needs stay constant: food, shelter, love, social acceptance, but the vehicles of how we meet these needs defines the human experience completely from era to era.
for example — though i lived my entire childhood and adolescence without the hyper-connectivity of a smartphone, it's hard to image life without it or before it. a world without the world's information at your fingertips in milliseconds. without being able to know where you're going at all times with GPS, or calling an Uber that's in front of your door in minutes. now, imagine a world without social media1. the internet. planes. cars. electricity. we see it in movies, but image your life without it. can you? it's hard.
our existence and what it means to be human at any moment in time, any era, is distinctly tied to the technology of that time. there is no human experience without technology. and inversely, there is no technology without the problems they solve, and consequently, the humans that possess them.
Robots Need Humans
as a software engineer, it's really easy to want to create something that is really cool for the sake of being cool. an application that is architected to perfection. it uses all the bleeding-edge technology, follows all the best practices. it is optimized in ways wizards could only imagine and obliterates all metrics except for one. it helps no one. it provides no tangible value to the lives of the people who deal with some much on a daily basis. dealing with their families, their bosses, their love life (or lack there of), that just something that could make their lives just a little bit easier, something that they could take off of their plate and make their mental load just a little bit lighter could make all the difference in the world.
a lot of engineers, including myself sometimes, got into the career so that we didn't have to deal with humans. and i don't blame you. humans suck. they're messy. they're inconsistent. they're selfish.
computers, on the other hand, are reliable. they do exactly what they are programmed to do.
(no more, no less.)
and because of that, in some ways, programmers have to become robots too. we have to be exact and precise. we have to be perfect logisticians, otherwise we introduce silly bugs into our code. we have to translate the messiness of a nebulous, abstract, analog world into a finite, perfectly concrete, black and white one. literally, digital means it's either on or off. it's either is or is not. it's either 1 or it's 0. nothing exist between or beyond2 . and we like that. it's clean. there's no room for interpretation, or misinterpretation. the code does exactly what it says it's going to do. it is what it is — a phrase i say often. anything else is a human error.
it is what it is.
We Robots are Human
as engineers, it's easy to forget which of the worlds we live in. we spend so much time talking to robots, we forget that we aren't one. we are messy. we are illogical (even if we don't admit it). we are inconsistent. more over, this is who we build software and technology for. this is whom we interceding for when we talk to the robots. we are advocates, ambassadors for the people we so often want to desperately get away from. we make software to make the lives of these fickle beings better than what they were yesterday. we are the arbiters of fickleness. we are the fickle being.
to love software, to love technology is to love humans, to love humanity. any technology that doesn't have humans in the center is, at best, not very good, and at worst, detrimental.
i write all this to say is to any engineer who loves coding, building, architecting applications, infrastructure, devices, or technology in general, no matter frontend, backend, full-stack, database, AI, or something else entirely, get to know the humans you're building for. not just use-cases and requirements your project manager threw over the wall, but what brings them joys. what makes them cry. what are they deathly afraid of. what do they aspire to be. their experience is everyone's responsibility, not just a UX designer's. this will make your job more fulfilling because this is your job. and you will make a better product by the metric that truly matters: did you make someone's life, personal or professional, better. don't get me wrong! maintainability, testability, and performance matter and matter a lot, but ONLY if it provides enough value to humans and their silly problems. otherwise, they are unequivocally worthless3
find the passion for the humans you're helping again, and the robots will follow suit.
...and to all the humans + robots, i love you.