Recently I’ve been thinking a lot about the meaning of life and our purpose on planet Earth. Just kidding! I was thinking why so many programmers are unhappy. Programming is fun and creative after all. The main reason for the unhappiness is that such engineers don’t believe in the software product they’re building. They don’t see how it can benefit end-users. Maybe they don’t even know who their end-users are.
This feeling was not unfamiliar to me at times when I was working for government agencies, but it’s foreign to me now. At Storify our team (myself included) love the product. We see the direct impact it brings to the users, e.g., The White House, ABC News and CBS News. Storify enables people to tell their stories which might otherwise get lost in the sea of social media noise. This contemplation brought me to the conclusion that it’s important to ship code that matters.
The T-shirt design is available royalty-free for ordering at CustomInk.
Hey, I even made a T-shirt via CustomInk with that slogan right before I went on the StartupBus 2013 ride. At SxSW people often complimented me on the shirt, but asked what exactly it means. Although the motto is catchy it needs more explanation.
Care About the Product
As I mentioned before, I worked for several years at various government agencies — Federal Deposit Insurance Corporation, National Center for Biotechnology Informatics, and National Institutes of Health. Every six to twelve months I was re-assigned and moved from project to project. I often found myself in meetings where I wasn’t in full possession of the requisite domain knowledge. It was extremely difficult for me to grasp the importance and magnitude of some of the software products. Therefore, I didn’t see the value or the impact my work was making. Despite that, I did my work to the best of my ability, and learned as much as possible about the technology, industry practices and developers tools. This is the life of an “IT consultant” in its purest form. :-)
On the other hand, when I got to work on some mission critical applications, services that must run 24/7/366, I was super excited! It was also rewarding when I could show some pieces of my work to my friends, though sadly this rarely happened because usually my friends didn’t have enough security clearance.
Not all of us build something very important every day, upon which the survival of other beings depends. Consequently, we need to believe in what we do. This is easier to do if you can find even the smallest reason that the cause is worthwhile. In the worst-case scenario, you can change your field and/or company completely. In my own case, I traded the security of Washington DC for the adventures of Silicon Valley.
Make Sure Others Care About the Product
In startups, people frequently work on solutions that were never connected to a real problem in the first place. That’s one of the reasons why 60–90% of tech startups fail. For us technical-minded professionals it’s so easy to get caught up in the hacking and executing mentality. We say phrases like “let’s just build it and see if it works” to justify our urge to create things for the sake of the process and not the end result. All we need to do is just step outside and think if somebody actually wants/needs whatever we intend to develop. “Get out of the building” is a good mantra for keeping in touch with your customers. It’s very important to know that your work is appreciated and valued by others.
Use the Right Tools
Needless to say, it’s very important to keep your toolbox in good shape. Technology is one of the fastest changing industries. Unlike accounting, arts, education, history, politics or most of the other traditional fields, in high tech things become obsolete in a matter of months or a few years, not decades.
I used to work with a good programmer when I was at Lockheed Martin (under contract to FDIC). The fellow was in his 60s, adept at writing comprehensive COBOL stored-procedures for ancient IBM DB2 databases. The job was safe and secure until the 2007–2008 financial crisis hit and our division was cut out of the budget. I don’t know the whole story, but I can imagine that it was very challenging for him to find a new job. Having a 40-year old programming language like COBOL on a resume in an industry that is not doing well (banking) didn’t help either. Luckily for my co-worker, he landed a job in an project where he had an opportunity to learn the relatively more modern stack consisting of SQL and .NET.
So take the time to play with new stuff, read books and blogs, and work on side-projects in your spare time.
Surround Yourself with People You Like
A lot of studies show that each of us is an average (in terms of experience, skills, views, etc.) of the five people with whom we associate the most. It’s very important to surround yourself with people you like, admire, respect and understand. When applying for a job/internship, look at the team more than at the salary and benefits package. In the long-term, personal growth and mental sanity are way more valuable than short-term monetary gains. I’ll take it even further, and offer a hypothesis that future financial opportunities are lost when a person is subjected to infelicitous surroundings.
Collaborate and Share Ideas
Also, it’s crucial to share ideas and collaborate. Some say that’s how humans evolved, and that’s how we to learn and grow in all areas most efficiently. Find meet-ups, contribute to open source projects on GitHub, socialize with hacker friends, attend hackathons.
Remember that Life is Fragile
I recently got a Viber notification that said that one of my friends joined the service. We were co-workers and occasional week-end buddies a few years ago. This buddy of mine was a funny guy, and a very smart software engineer. He lived in a nice apartment near Washington DC’s posh Georgetown area, enjoyed social activities at International Club DC events and parties. A few years ago he had an accident that completely changed his life. He slipped in the shower and hit his head which caused a strong concussion and brain damage. Since then, he can’t sit in front of a computer for more than 15 minutes, can’t fly or travel by car. He told me that he’s lost all interest in socializing.
Another of my fellow IT professionals worked 16-hour days typing away at the computer, and developed a repetitive stress injury that almost made him switch careers. Luckily for him, he managed to get back to programming after months of physical therapy and other treatments.
This made me re-think how fragile our lives are. The danger is everywhere but we seldom pay attention to it. That’s human nature I guess, but we should try to spend our time wisely. That’s why it’s important to work on things valued by others, with the right tools, surrounded by great people to share ideas with!
Probably my list of software development happiness is not complete, and some of you might want to add what shipping code that matters means to you. I invite you to open up the conversation. ;-)