Developer H.U.D

Effective developers are 360° developers. They are composites of knowledge, personal traits and functional skills. It is my belief that for a developer to be truly effective through the lifespan of his career and to make a difference, he or she has to be able to relate to people. Forming, building and maintaining relationships with co-workers, team mates and their customers. An inability to relate, could bring more friction during the process of delivery. An inability to network, could mean that promotion or bonus that is missed. An inability to resolve conflicts and navigate political situations is tantamount to the stress or tension he or she could face in their daily lives.
Now hold on, I am in no way about to suggest an answer here. But as I develop, move from company to company, project to project, learn and grow. I find myself in periods where I need certain advice or to be reminded of what I inherently know.Often times this advice, let’s call it self-talk is something I just need to put in practice. Or perhaps more technically, I need a list of common keyboard shortcuts for the IDE I’m using which I keep forgetting. Or maybe even some development guidelines I’ve been trying to enforce. How do I see this? Notes are a good way but they are often lack visual appeal. There are apps but their often to specific, or to general; a todo list or a life journal. As a developer I want something that’s customizable to my needs. Something that’s easy to work with. And in one glance I can be reminded of my Goals, Life Principals, Habits or even Software Development Patterns.
This inert desire, and inability to find a resource that suited my needs resulted in something I mocked up over night, I call the concept, the Developer H.U.D. As in Developer Heads Up Display. In support of the concept and it’s use in my own life, I’ve put a model of it in Github which you can access and customize to your own liking. No technical skills needed and only requirement a Github account. Though being the developer you are, I’m sure you could take this to a whole new level for yourself. Basically it’s a single HTML page that provides contextual information that helps you daily be more effective as a developer. It’s not a todo list (but you could use it for that); but rather it’s for affirming, effecting and enforcing the right behaviors and thinking. The Developer HUD consists of a section called (a) Code Disciplines, (b) Self-Directing Principals, (c) Goals for the Week, (d) Quote of the Week, (e) Escape Tactics and (f) Keyboard Shortcuts. But these categories are purely a reflection of my own software development context and you could change Developer H.U.D to suit your own needs and categories.
Code Disciplines is a section where I put design patterns, algorithms or software best practices I am currently trying to focus and improve on. At the moment my Code Discipline is populated with the SOLID principles. Why? Because in my daily software development, it is the one area I have set for myself, to leverage to improve my code. The beauty to limited space, is an acute focus on what is necessary. There are hundreds of patterns, best practices and techniques for improving code, and using this has allowed me to focus on one subset of core concepts before moving onto the next, till I’ve attained a sufficient level of competency. I also avidly look at my Developer H.U.D so I can practically apply the theory I am trying to learn. Amidst someone else’s quote or definition of some practice, there is also the necessity to translate it into keywords or analogies that are applicable for me. Also repeatedly staring at it through-out the day, helps enforce concepts and open my eyes even more to the technical aspects of the pattern, algorithm or technique.
Self-directing Principals is simply lessons learnt that I want to re-enforce into habit. These could be bad habits, insecurities, positive reinforcement, techniques for coping with stress — whatever is relevant to making me a more effective employee or developer. My existing Developer H.U.D has the following self-directing principals;
• Before you speak, consider the impact on others
• Have a thick skin. Fight. War. Be done with it.
• If frustrated by someone, speak to them about it. Deal with it
• Stop spending energy thinking about what people think about you
• Choose simple over complex
• When people see no harm from you, they will embrace you
• When you feel someone is attacking you, first clarify?
• When don’t know what to say, practice silence.
• I’m driven by impulse. Before speaking * Think of an analogy * practical example * assess the context
• Only speak, if what you will say will change the direction of thinking
As you can see, their deep learnings about myself, that I am trying to correct as their effecting my productivity, my team and could assist me in delivering software at a smoother pace with a greater level of quality. Which is something I value quite highly.
Goals for the Week is what I am trying to accomplish by the end of the week. When the week is done, will I look back and say that the life, time and energy I spent was worthwhile. This is not a new concept, but it adds to the Developer H.U.D a little more context of life, a 360 view of who I am and a reminder of what I am trying to achieve even if some of it is not in the software development role.
Quote of the Week — well this doesn’t need an explanation. But let’s not belittle how emphatically powerful and inspirational a quote can be. From a life-directing quote, to one that can effectively summarize your life now and be a vision for where you want to be.
Escape Tactics are tools I remind myself off when I am struggling with a problem, stressed of having dwindling productivity. They there to remind me that I have options. At the moment it says [Mind Maps | 5 Whys | Coffee Break | 2 Poms]. That basically means if I find myself working on a problem longer than “2 Pomodoro’s” (2 x 20 minutes), then it’s time to apply one of the aforementioned escape tactics. Use a mind map if the problem is complex. Perhaps it’s about getting back to why I am doing what I’m doing with the 5 Why’s. Or even, just going for a coffee break.
Lastly is the section on Keyboard Shortcuts. This is just a reminder for my daily tooling, from my IDE, to my editor to bash shortcuts. Whatever is needful. Again the limited space, allows you to focus on the most needful shortcuts you need for the edge you seek.
If you read this far and are interested in customizing the Developer H.U.D here are some technical details: (again, if you use it as is, nothing more is needed than a Github account).
- Written in responsive HTML (CSS Grid for layout)
- Uses Github for a backend datastore
- The individual modules are built using MAVO. This allows editing, saving and storing of your contents.
- It’s a single HTML file (but for myself I serve it up into the browser using Sinatra for some other reasons)
For it to work for you out the box, you just need to edit ‘developer-hub.html’ and change [username] to your Github username, and then open it in the browser of your choice.
So there it is, and I hope it helps you!
