You are not a machine, and neither are your users. Be a better developer by coding like a human.
I'm an empathetic person. I tear up during sappy car commercials and my auto-complete might as well suggest "if you want to talk" when I type "I'm here".
I spent a lot of time interacting with people during my time in journalism and financial services -- hearing their stories, working to understand them better, and realizing that we're all just human beings doing our best.
When I transitioned into tech, that empathy informed a lot how I approach coding and user experiences. Ultimately, it's human beings that are writing and using software, not machines, and keeping that human perspective in mind is important but sometimes forgotten.
Here are some things I do to code like a human.
Use tools
Using tools makes us human. It's what separates us from most animals but also machines. Machines are programmed to perform functions based on an algorithm (simply put, "follow these instructions to perform these tasks"). It's the human that can identify what tools to use in what situations, and you should take full advantage of that skill.
Too many times I see people not use the tools at their disposal to effectively solve problems. Sometimes it's because they feel using tools is "cheating" or doesn't make them a "real" developer. Other times it's because they are too comfortable with their existing method and don't want to push themselves to try something new.
Learning to overcome these obstacles and learn how to effectively use tools makes you a better problem solver and ultimately a better developer.
Write code for other humans
Laurie Barth has an amazing blog post and talk on Human Readable JavaScript. She explains this so perfectly I'll just link it here :)
Solve human problems
Technical specifications alone do not make a great product. In order to have a great product, you have to use technology to solve real problems of real human beings.
I see some developers make decisions on what projects to build based on a functional concept or technical component. You might have a nifty idea for an automation script or a complex animation, but if your idea isn't helping people in some way, it's not going to connect with people.
If you aren't familiar with product development, I'd recommend reading about Behavior-Driven Development. Even if you don't adopt the framework, learning the concepts can help you get in the mindset of empathizing with your user and approaching development from their perspective.
You can also read about Rapid Prototyping and Design Thinking, techniques which bring user feedback into the development process as early as possible. I did a Lynda.com course and a workshop at a previous company, but there are free resources available online as well.
Before you start designing a data model or touch code, take the time to validate your idea with users to make sure you're solving a real problem.
Treat users like humans
Applications are built to be used, and without users, you can't have a business. Treat your users fairly, ethically, and kindly. Make sure your applications are accessible, performant, and secure. Respect the privacy and data of your users. In other words, be a decent human to your fellow humans.
Remember you are a human too
You will make mistakes, get tired, need breaks, take time to learn things, forget how to do something you've done 20 times before, miss the obvious, need a sounding board or second opinion, sometimes all of the above before noon. It's okay. We're all just human beings doing our best.
Top comments (2)
Overall I agree with the message.
I'm a bit split on the idea that tool use is what separates humans from other animals though
Hmm, good point. I know primates and other animals use tools too. I was thinking along the lines of how they track human evolution of using tools in anthropology and how it's connected to the evolution of humanity, but I agree it might not be the clearest metaphor π€ Thanks for reading and for the feedback!!