Put out the fire first.

Listening to some podcast which I’ve long since forgotten the name of, I heard a top executive talk about how there was always the fire of the day to put out.

Surprisingly, this small comment changed how I thought about my work.  It’s not just about putting out the fire of the day, but also about preventing the fire from starting.

We have a list of things to do — whether it’s in a notepad or in the sprint backlog, but despite what scrum purists would have you believe, the more important thing is to put out the fire — or stop one from starting.

And how do we do that?  It all comes back to the people you work for.  If they come into work with some burning issue on their mind, address it first.  Their fire is more important than anything on your to-do list.

Small fires are easy to put out.  Putting them out is one of my keys to happiness.

Let it grow big because you’re “too busy” and the fire will spread, and you may not be able to put it out.

Daily fires are a thing.  Put them out before they grow.

The Best Code is the Code you don’t write

Earlier in my software development career, I would get an assignment and eagerly jump into writing the code.  Hours later — after frustration and then the joys of success — I had the code done.

Writing the code was a learning experience for me — I got better at programming the more I practiced — and this was all ok.

Sometimes, the client was super happy and the task was done.   The computer did what it was supposed to do.  Assignment completed.  Yay!  I felt like a genius.

Other times, it turned out that my interpretation of the requirements was not the same interpretation that the client had in mind, or the business requirements had changed in the meantime, or for some other reason, the outcome was no longer the desired one.  So, I’d have to revise the code, change it to meet our new shared understanding of what we need to accomplish.

As a programmer who is learning, having to go back and write more code, is not necessarily bad.  It means more experience.  But, from a business perspective, this means wasted money, wasted time, and a longer route to getting to “done.”

At a certain level of expertise in any given programming domain, there is no longer a question of whether something can be done, but whether it is the right thing to do.

The vast majority of client requests are completely feasible.  It might take 2 hours or 30 hours, but a programming solution is possible.  There’s very few tasks that are “impossible.”  It’s more a matter of whether it makes business sense to spend the time on the task, when there may be other items that would derive more business value.

Since I work at an agency, I use the term “client”, but this applies to any programming endeavor.  Just because you can think up the programming solution, doesn’t mean it would be the best use of your time to implement it.

I love designing software systems.  In my mind, I can solve any problem.  But, I now do not actually write out the code until I am sure of the value it is going to provide.

“Value” can mean a lot of different things.

If you’re working for a client, it’s most often business value — maybe the code is going to provide a proof of concept, maybe it’s going to bring in additional revenue, or maybe it’s going to automate something.  In these cases, your job as a software developer is to ask the questions to make sure you understand the value you are delivering.  Don’t write the code first.  Instead, read and ask a lot of questions.  You will hopefully spend less hours programming the wrong solution.

There are times when the “value” is the learning experience.  Which is 1000% awesome.  But, don’t mistake that kind of value from business value.

But, if the code isn’t teaching you something, or isn’t generating money, I’d ask, why are you writing it?

So step back, imagine the systems in your head, and ask questions.  As a skilled WordPress plugin developer, I once imagined a whole plugin…. and I enjoyed thinking about the software I could build… But then I realized that it was completely unnecessary.  So I didn’t write it.

Just because you can, doesn’t mean you should.

Prosopagnosia and Social Development

I have recently started speaking openly about my prosopagnosia, or face blindness.  I am doing so at a point in my life where it is not a crippling or disabling difference — so I speak not from a standpoint of wanting accommodations or sympathy, but rather I want to be honest, transparent, and spread awareness.

That said, I’ve been reflecting on how this condition has affected my life, and I think it interfered with my development of friendships.  I can remember social situations where I didn’t develop friendships because I didn’t recognize people.  Often, I would talk to someone and the next time I saw them, I didn’t know with certainly that it was the same person I had talked to before.  As I’m sure you can imagine, it’s hard to build a relationship in such uncertainty.

I am employed at Alley, a distributed company.  We all work remotely, so we communicate through the written word on Slack most often, as well as in video conferencing.  In both cases, the person’s name is always displayed on the screen, so there is never any need to rely on face recognition.

We have annual retreats, and on the first retreat I definitely had trouble recognizing people, but I am super proud to say that I can recognize everyone now (3rd retreat, with mostly the same people), at least in the context of the business event.  It took practice, time, and effort — it is a result of me watching the faces on video calls (with the person’s name right next to the face) AND listening to how people talk and what they say, as non-visual clues are super helpful.  I have also spent some time looking at posted photos — really studying them, trying to spot identifying characteristics, and also getting to know people.  The people I work with all are very unique — various ages, heights, mannerisms, clothing styles, hair styles.  So I can rely on face + other clues to “get it right.”

I still had one instance of hesitation — where someone said “he’s over there” and I had to really take a close look to find that person.  Self doubt it also an issue, as I am afraid of getting it wrong, but I realize that I have to take the chance that I will make a mistake.  Making a mistake and mis-identifying a person is embarrassing, but it is far more limiting to not interact socially because of my fear.

Humans make mistakes. So be it.  I’m just going to accept that I might make a mistake but more often I’ll be correct and that will help with building relationships.

Also, let me clarify:  I have not overcome prosopagnosia.  If I saw a co-worker in an unexpected place, there’s a very good chance I would not recognize them, especially if they changed their hair style, grew a beard, or changed in some other visual way.  If they came over to me and started talking to me, then more than likely I would know who they were because of the way they talk and act, but I’m rarely certain of someone’s identity by their face alone.  At a business event, I know exactly who should be there, and so it is a matter of identifying the people from a set list.  It is not about picking the people out from a random crowd.

Human relationships are so damn important, because we can all do more together than we can alone.  Not to mention the shared commonality of human experience.

It is special to me that the people I work with know who I am and that I know who they are.  A victory, of sorts.  Identification is important.  I have no idea where this is post is going, so I’ll wrap this up now.  I think like any other developmental disorders, early intervention can be helpful.  Just understanding my condition and the potential impact could have helped me.  (I didn’t figure out I had prosopagnosia until I was in college — I had never heard of the condition before that, and didn’t realize that my internal world was so different — “you mean everyone doesn’t have this uncertainty!?!”)

I haven’t read this book yet, but it looks like it might be helpful.

Understanding Facial Recognition Difficulties in Children: Prosopagnosia Management Strategies for Parents and Professionals

Obviously, social development during childhood is important.  Maybe address the prosopagnosia and you’ll be able to help with that too.