Being First Within the Duality of Customers and the Triage of Effort

by Eric Whyne, DMC Founder

Some of my favorite pastimes are categorizing things, making lists, and helping people be successful. This essay is the result of a few office discussions on a Friday afternoon after a great week of successes. Each success we've enjoyed has been the singular result of attention to detail and the continual commitment to improvement by each of the people involved. It's useful to try and observe, document, and share the recipe these people are following. Hence this.     

We work on many big, ambitious, and technically complex projects. On Friday, the discussion came up of "what do we call the people we work for?" On its face it seems like a minor thing not worth thinking about. However upon reflection, the words we use to describe our relationship to those we work with matter and can influence how we interact. Do we say customer, client, patron, sponsor, or something else? In cases where it's obvious, we should defer to the preference of the authority we work for. Easy. Sans that datapoint, there's a duality to those we work with which can be captured well with the words "client" or "sponsor". My view is that "client" is most correct when the client is driving the details of implementation where often our efforts are part of a much larger mission or goal. The word "sponsor" is most correct when we've been given a grant, sponsored, to accomplish something we've envisioned which fits perhaps only broadly into the goals of the funding. In practice there is a broad color pallet of relationships which are driven by the unique demands of the work and the personalities involved. Precision in words matters and whatever the hue of the situation it's a worthy thing to spend time thinking about. 

The best among us are constantly improving. When it comes to what we do and our individual capability, I've long stated that direction and velocity are always more important than our current state. Always. An individual who is improving over time will become more valuable than someone who is static every time. The people I most want to work with are those who are fastest at learning. This is especially true in the field of technology where the terrain, culture, and capabilities of our tools change so quickly. Quoting Lewis Carrol happens so often in our field that it's becoming cliche, but even if it's over-used the sentiment still rings true: “My dear, here we must run as fast as we can, just to stay in place. And if you wish to go anywhere you must run twice as fast as that.” In order to remain as helpful as you've always been in technology requires constantly refreshing your skills to keep up with the natural advancement of everything and everyone around you. If you want to get-ahead, it takes something more. There are three core skill areas where we all need to be continually improving. In order of priority: communication, work contribution, and tools and techniques. Some notes on each follow here.   

  1. Communication

    1. Effective communication with peers enables collaboration. We're only able to tackle larger projects via collaboration. Working usefully as part of a team requires excellence in communication.  

    2. Communication helps us advance faster. Good communicators learn faster and better avoid mistakes by building relationships, asking good questions, and listening well. 

    3. Being able to describe what you accomplished to clients/sponsors is a necessary part of that work being acknowledged and respected. Doing brilliant work in the dark is useless, it's up to you to tactfully bring light to your accomplishments. It's often the case that supervisors won't see them because they are busy or lack the context or awareness to see. Mastering this discipline is worth the effort.  

    4. Presenting partial or complete work to internal or external audiences is a skill in itself. This area of communication includes selection of visuals and the curation of vignettes which are interesting stories which illustrate the utility or accomplishments of the work. Most importantly we need to tie the presentation to the context and awareness of the audience. Aside from crafting a compelling presentation and story, this also requires comfort and skill in public speaking. Glossophobia, or a fear of public speaking, is a very common phobia and one that is believed to affect up to 75% of the population so excellence in this area truly is exceptional.

    5. Meetings. Being good at meetings is a generalizable and powerful skill. Knowing when to talk, when not to talk, who to talk to before a meeting, and how to funnel the minds in the meeting to a useful decision point is a skill that can perhaps most appropriately be compared to mystical martial arts as personalities and interests collide.

    6. Email. My emails generally follow one of two formats. My most often used format is the succinct two-line email. One line for context, one line for the question or to deliver relevant information. Less often, but sometimes appropriate, is the long-format data dump email which covers details of progress or complex decisions. Often in these longer emails, if I'm comfortable with the receiver, I'll sneak in a funny easter-egg to see if they read the whole thing. It has to be something I know the receiver will enjoy and appropriate for the context. My favorite sponsors often read the whole thing and catch my funny easter egg which lets me know that I delivered the correct information and also brought levity to their day. During email training I like to put on my purple dinosaur suit and teach via catchy song and dance. People reading this might drop a dinosaur joke next time they see me. It's fun to have layered conversations sometimes and a sign of excellent communication. Suffice to say that writing good emails is a skill that needs to be developed. 

    7. Writing. Writing this was a challenge and doing it made me a little bit better at writing. Writing is hard. Samuel Clemens once remarked that most people would rather pick up a shovel and dig ditches than try to use their minds to write and create because digging ditches was easier. Luckily, with large language models like chat GPT we'll all just have robots writing things for us in the future. But on the off-chance that we still want or need to communicate our human thoughts to each other in long form, spending time writing is the only way to truly get better at it and a nice skill to have.    

  2. Technical Work Contribution

    1. Ability to match what you're doing to what the client or sponsor desires. It takes discipline and ability to stay on track and understand what the correct work is and to conduct it in a meaningful manner. It's not uncommon for undisciplined projects to drift drastically from their desired end-state much to the frustration of leadership.  

    2. Ability to see the immediate and longer term implications of your technical decisions is a skill that must be continually improved. The decision to adopt a proprietary query language looks pretty silly when the client/sponsor decides the implementation needs to pivot to their organization's hosted database which only speaks standard open query languages. The decision to apply data filters after the processing step looks silly after processing time needs to increase. The decision to load balance across servers based on timestamp looks silly as load increases on a real-time data feed and now servers are taking turns getting overloaded sequentially. All technical decisions have tradeoffs. Understanding those tradeoffs is a skill that takes time and experience to master and turn into intuition.     

    3. Ability to plan under pressure is a skill in itself. Often, under pressure, planning and early phases of projects are abandoned. However, without something of a plan, projects progress in a code-and-fix mode, which is chaotic, ineffective, and stressful. 

    4. Identifying and being skeptical of silver-bullets. Silver-bullet syndrome is whenever people expect any new single tool or method to solve all problems. It's an easy trap for the inexperienced to fall into. All vendor or software claims should be assumed to be false until proven true. Never make software you haven't personally spent time with a critical part of your plan. If it looks like a good fit, but you haven't spent time with it, then you have homework to do. Talk to trusted people who do have direct experience with it, then arrange time as part of the project for you to experiment with it. Lastly, pad the schedule to deal with unanticipated problems which will occur.    

    5. Avoid wasting time. Often the first phases of a technical effort are spent wasting time resulting in a mad-dash in the final phases and stressful experiences. It's not uncommon to see software developers quit in the late stages of a software project because it's easier to switch jobs than to finish the work they've committed to.  

    6. Software estimation and determining timelines is something all software engineers are notoriously bad at. How long is the coastline of Britain? It depends. In 1967 B. B. Mandelbrot wrote a paper on this question with the subtitle "Statistical self-similarity and fractional dimension". The basic concept is that the length of the coastline depends on how closely you measure it, in essence it's a fractal problem. That craggy cove can be abstracted as just a few miles or hundreds of miles if you measure every curve and detail in it. It's the same with estimating how long tasks in software development take. All too often what seemed like a simple voyage turns into a torturous adventure requiring backtracking and avoiding unseen obstacles. There's also the concept of Yak Shaving which is programming lingo for the seemingly endless series of small tasks which have to be completed before the next step in a project can move forward. Only through experience and deliberate improvement can someone become better at estimating time. Consistently being correct on time estimation is a trait that is extremely valued by savvy customers and a key component of their decision to work with us again for future endeavors.  

  3. Technical Tools and Techniques

    1. Personal professional education is a powerful habit. Learning is exponential as you build a mental framework of your tools and industry and attain a context which makes learning new things easier. 

    2. "Downtime" is what happens when you have completed work ahead of what your client/sponsor expects to be done by a certain timeframe. The opposite of downtime is crunchtime. Great technical contributors can live extensively in a downtime state of existence by understanding what the client/sponsor will want next and arranging current work to make the next requirement easier or even in some cases complete before it's asked for. Downtime is where you take the time to learn your tools. The lack of immediate pressure can allow you the luxury of spending a few hours to become vastly more efficient in the future. It's a powerful thing to know how to make use of regular expressions or macros in your favorite development environment or data munging tool. Downtime is when you level up on that and learn that trick you've heard about which will make your job easier. In some cases the downtime inspired courage to go on these side adventures can result in delivering on the current project even faster than you expected. However, more often than not the time savings are best seen during subsequent work. Deciding when it's appropriate to learn new techniques and when it's time to crunch is a skill very much worth mastering. 

    3. Staying up to date on the state of technology provides useful context and ideas to implement in your current work. The best resources on the current Internet need to be curated like a garden. Follow and prune your feeds to bring content which keeps you informed and up to date (twitter, reddit, youtube, etc…). Find good pre-curated feeds which align to your profession (hacker news, slashdot, etc…). Being exposed to new ideas does come with the risk of silver-bullet syndrome and similar fail cases discussed above. As with any information activity, it's best conducted with skepticism and caution. 

Thanks for reading along this far! It goes without saying that in this short essay things were overlooked and nuance missed. If you have ideas or interesting anecdotes please take the time to share them in your favorite chat channels or during the next company event with me or others. I always enjoy and am eager to hear feedback and great ideas!

Previous
Previous

Seven Key Insights From OpenInfra Summit Vancouver 2023

Next
Next

DMC Awarded Subcontract on US Cloud-Based Command and Control (CBC2) Contract