Loss of headway

Liz Adams
4 min readJan 25, 2023

--

Working on coding is a bit like cycling. You need to practice, upgrade your hardware, do frequent software updates (cycling routes), regular maintenance, use timing and tracking devices, and pace yourself. Like any long race, or multi-day ride such as the RAGBRAI, sprints are used sparingly, consistent training is key. You make more progress on meeting your goals if you train with a teammate than if you go it alone.

In a road bicycle race, the peloton (from French, originally meaning ‘platoon’) is the main group or pack of riders.

We had a steep learning curve to run an air quality model on High Performance Clusters on the Cloud. Working as a team, we observed, troubleshooted, developed and tried new methods until we found workable solutions to the problems we encountered.

Working remotely, we have had hundreds of day long zoom or team meetings, sharing screens, puzzling over benchmark results, googling for solutions and meeting with the cloud vendor experts. We shared the burden of running tests and benchmarks, documenting outcomes and interpreting results. Doing this together in real time made it possible for us to go further and faster than if we were coding alone.

Unlike road bike racing, our route or pathway to a successful outcome was not clearly identified, and we were always on unknown and unfamiliar terrain. We took many detours and circuitous routes, and expended ourselves with significant effort to create hands-on tutorials for running CMAQ on AWS and Azure.

Having someone to draft behind, in bicycling terms when one team member became weary, made it possible to replenish ourselves and regain strength to move forward and accomplish our goals.

We are attempting to lead a pack of model users by using git and open data to help others in our modeling community. This transition from using local servers and proprietary data or relying on contractors to using shared public open data and open source methods to run on the cloud will help accelerate the pace of innovation and discovery.

To code requires expenditure of human energy. As you train and learn, you become more efficient. There is no shortcut to developing the knowledge and applying it successfully. It takes time, effort, and energy, day after day. It requires focus and undivided attention to detail. When we are assigned too many unrelated tasks, this hampers our ability to make headway on anything. It is difficult to juggle assignments that have no clearly defined scope or design requirements, that are assigned with no input, feedback, or control. This results in straining to complete projects, rather than keeping a sustainable pace and moving forward. Coders and cyclists need to be given time and grace to come up to speed, it is an investment that pays off in the long run.

It takes effort to develop, test, maintain code and write documentation while also overcoming unknowable and unforeseen road blocks. There are updates to the infrastructure on the cloud and updates to software for libraries that are outside of our control. Providing documentation that is clear and accurate for running CMAQ on two different cloud infrastructures is a daunting task. My co-worker learned how to run CMAQ on the cloud by going through the hands-on tutorials that I created. Exercising the tutorials each time we did a benchmark, helped us to identify any errors, and correct them quickly. The power and promise of this ability to create high performance compute infrastructure with code comes with the peril of managing these tutorials and the cost of the resources that we create. My co-worker and I are not compute nodes that can be deployed automatically to run in parallel across multiple projects. We are not inexhaustible resources.

A team only works well when their leader recognizes and acknowledges each team members efforts, and keeps shining a light on the path forward. Leaders help provide reminders of the good work you have done and what you are capable of, and are there to step in and help with the heavy load. A great team leader encourages the freedom and development of team members rather than tracking missed deadlines and chastising them for not going harder and faster.

During these past two years I have helped my co-worker learn how to run CMAQ and have lead our our effort to create HPC clusters on Azure and AWS. As post-doc with a two year contract, my co-worker was informed by our boss prior to Christmas that there wasn’t enough funding for him to continue. I was given no heads up, and was not consulted about this decision. Rather than relaxing and taking a break during our vacation with family, the time was spent worrying if this was true.

I am crushed, knowing how much effort was expended, and how this pace of forward progress can’t continue without both of us.

I will miss the opportunity to share the joys of discovery with my teammate. I will no longer be spared from the frustration of being given deadlines with no reasonable expectation of being met. After this successful experience of working together, losing my co-worker feels like a terrible, but preventable accident. I am failing to see the bright side, other than he will be free to find a work environment that values and respects his contributions.

He is kind, caring, generous as well as being a good intellectual match. We invested in our partnership, working collaboratively. We provided each other shelter from outside pressures and demands, testing our theories with each other prior to sharing them with a wider audience. This allowed us to hone and sharpen our skills and to buffer and protect ourselves from distractions and pitfalls.

I pray that funding for his continued employment is found and repairs are made before we ride off a cliff.

--

--

Liz Adams
Liz Adams

Written by Liz Adams

Stories topics may include: Air Quality Modeling and Monitoring, Sustainability, Data Analysis, and Clean Energy Policy.

No responses yet