Writing code is the easiest part of being a software developer. If this statement is true, that suggests there are aspects of the career that are more challenging, and that each of those is more challenging than the actual immediate task at hand. I’d like to explore just three of the finer details of being a programmer and what I’ve learned over the years.
Perhaps this is a truth that often goes unspoken, but anyone who has been in software development for even a short time has encountered ego problems. Typically speaking, a software developer is someone who was labeled as intelligent from a young age and has heard this throughout his or her upbringing. Because of what is commonly emphasized in the education system, the gifts that a software developer has have opportunities to shine and obscure other ways in which other people are gifted. Truly, everyone has natural gifts, but they often go unrealized during one’s salad days.
When working with software developers with limited, real-world experience, you will often encounter difficulties in asking them to challenge their knowledge and assumptions. They are coming off of years of being “the smartest kid in the room,” and it’s all they know. It’s natural and understandable.
If you are someone who has been in this field long enough to have matured past that phase, what is your reaction to this? First, you must understand that it is, indeed, natural and understandable. Your job is not to beat the ego out of the person, but rather to lead and guide him or her into humility. There will be many opportunities that a junior developer is quite certain about something which you know is inaccurate. Do not tell the person he is wrong. Rather, guide that person down that path that will demonstrate the inaccuracy of his assumptions, never with the intention of proving yourself right, but rather to use this as a tool for teaching someone the extreme importance of challenging assumptions. Too many times in my early days as a programmer, did I “know” something would work, yet it didn’t. In time, we learn verify everything.
I’ve heard it said before, “Programmers understand the value of everything but the cost of nothing.” While this statement is speaking in absolutes, the general sentiment is often accurate. As programmers, we get excited by what we can do with the technologies available to us. We can easily get lost in discovery and “a-ha moments” when implementing something new, and quite fortunately, that excitement is something that will often last throughout your entire career.
But, it is important to keep yourself in check. As software developers who are paid by a business to write software, we must remember our job is to provide value. One of the hardest things to do as a developer is to implement a solution that from a purely technical perspective is not the absolute best solution. There always will be times that a secondary technical solution is the correct choice for a given business problem. Yes, our job as programmers is to be the voice at the table that is presenting the best technical solutions available, but also remember other voices at the table exist as well. Ultimately, all decisions are business decisions, and we must not only accept the ones we don’t like, but also see that they are often actually the right decisions when we zoom out beyond just our own area in which we work.
Psychological Peaks and Valleys
I remember when I first heard someone reference “imposter syndrome” and describe it, and I was amazed that someone had named what I felt was something that existed solely in my head. In short, it is that nagging feeling that you aren’t qualified to do what you’ve been asked to do, and you’re the only one in that situation. It’s not unique to software development, but it sure is omnipresent just about every day of your career.
Then there’s the opposite end, those moments where you are just nailing everything you’re trying and you feel like you’re ripping through every challenge much faster than anyone would expect. In those moments, we feel incredibly competent and qualified, and it’s great. On the heads-down days of development, I will often swing between the dark valleys of imposter syndrome to the great peaks of competence multiple times in just one day. This is a psychological drain!
The psychological journeys that one goes through day after day can be just as draining as physical labor. Over time, and with understanding and experiencing grace, it does get easier. Hopefully, we come to realize that there is no avoiding the moments of struggle and the moments of triumph. It’s just how things are, and everyone we work with has similar life experiences. Let us always remember to care for one another, extend grace to one another, and to keep check our assumptions about what expectations we have for others as well as ourselves.
The JBS Quick Launch Lab
FREE 1/2 Day Assessment
Quantify what it will take to implement your next big idea!
Our intensive 1/2 day session will deliver tangible timelines, costs, high-level requirements, and recommend architectures that will work best, and all for FREE. Let JBS show you why over 20 years of experience matters.