Day 3

The third day with Josh started early. As consultants, we made it onto a 40 person long manifest for an 8:45am meeting to discuss the overall engineering vision for the client.

The Ele-plunk in the Room

I walked into the meeting room and 95% of the attendees were already there. You know that feeling you get when you walk into a room and feel everyone’s eyes on you? Whether you belong in that room or not, if you’re human, you feel a little nervous. That added to the fact that since the topic was the vision and strategy for all the people in the room, it felt a little like I was about to overhear the secrets of an ingroup to which I don’t belong. Fortunately instead of having a panic attack, I mumbled a hello to the room, then sat quietly next to Josh who grabbed a seat for me and planted it next to his… This destroyed any chance of concealment during the meetings because Josh chose to sit right next to the director/vp/lead/idk.

Later that day Josh would give me insight into that seating decision. Talking in private by the elevators, while discussing the importance of getting into boardrooms where important engineering conversations take place and big decisions might be unwittingly made in great deference to a sales cycle and great indifference to a development cycle, Josh said, “…having consultant in your title means you can get into a lot of those meetings.”

What brought about that conversation in the first place was Josh asking me what the problem with this week actually was vs. what the client perceived the problem to be. As I’ve already stated, throughout the week Josh and Aaron would regularly allude to the client teammate that the rush to development with this integration, the frenetic pace, and the forced inattention to detail, coupled with an inability to unit test and the related long feedback loop: Really are not the problem. Those were symptoms of a more deep seated wrongness with the client’s process of building their software systems and supporting infrastructure. Throwing hail mary’s was hurting their software in the long run and was working as evidence that there were one or more broken links somewhere in the chain of communication, especially in regard to the management of delivery expectations.

I don’t always plan long technical meetings before 9am, but when I do… they probably aren’t as effective…

I understood very little in the meeting that morning. A lot of the content presented was heavy on data science, and mostly seemed to be understood by the majority of the group if not by me. I think it was good that the meeting happened so that at the very least the engineers got a chance to step back from the elephant and see that they hadn’t been working on a tree trunk (the legs) or a hose (the nose) or a rope (the tail) or a mudpit (as I had come to see what we were working… Which I think was actually the butthole of the proverbial elephant…), but they were in fact building an elephant. I find it extra difficult to understand where and what the work on something to be done is, if I don’t know why I’m doing it, so this was good in that at some level it allowed me to see a larger part of the forest we were lost in, through its trees. However this was not a very interactive session. The client’s staff in that meeting were very smart people, but they were being told what they were going to do and as I recall in a lot of the presentation, they were even being given implementation details on how they were going to do it. They were prompted to raise questions/issues that they had with any of the plan but that was at the very end of a pretty information intensive meeting. I think a more horizontal, empathetic, flexible, and open process of communication and iteration planning could be implemented to the benefit of every stakeholder in this client.

Alright, now that the meeting is over let’s go back to work and freak out some more…

One pretty good indication that the meeting was not the silver bullet we needed to reset the negative energy surrounding this week was the rest of day 3 followed suit where the others left off. We barely got started back on debugging before a very tense on the fly team discussion began. The client teammate wanted to move past a more dynamic and implicit fix of a hashed script that could be applied to all of the nodes in a cluster through a user_data parameter that accepts and unwraps hashed logic in said (albeit poorly named) field. That solution had been worked on by Josh for quite some time, was mostly working, and provided future-proofing from rigamarole work to be done by the client teammate themself in the case anyone wanted to add a new cluster configuration, which is obviously a pretty likely thing to occur. The client wanted to skip continuing that effort and at first even running a test deployment with the most recent version of Josh’s script, and go straight back to implementing a hacked together previous fix in the form of oddly similar but individually declared user_data scripts for each of the 8 or so nodes in their cluster.

It got very heated and eventually the client teammate begrudgingly stopped all work and time boxed ten minutes to finish the argument. It didn’t go well at first but Josh and Aaron remained stoic in their demeanor and vigilant in their criticism of the proposed next step. One thing I will say that I admired about the client was his willingness to stop the execution of work to have important discussions as a team. They were kind of like really intense and unplanned retros, and were an indication he was willing to receive criticism and feedback… The problem is that he did not bring any calm to these talks and it came off as though he wanted to create the appearance of taking a step back as a team when in actuality he wanted to stand up and tell everyone why he was right, why they need to rush, and then in the face of constructive criticism that maybe rocked his boat a little bit, pull in a red herring about something that Josh or Aaron were doing wrong. To counter this at one point, Josh did something that I didn’t really expect. Almost like a hard-nosed shopper at a car dealership would threaten to walk away from a deal, he said to the client teammate, ‘You can stop––’’ (The client then interupted per usual.) ‘––No, Stop, listen, we don’t even need to have this conversation. If you aren’t happy with the work we’ve been doing than we can stop.’ Now I don’t believe that Josh wanted to actually stop the conversation, and stop working and just have everyone go home… I think he knew he had to deliver a hard line in the sand to break the veering focus of the client and get him to realize we were not going to be steamrolled on a daily basis when all of the criticisms we raised were in the interest of the team and the client. Eventually this got the team back in sync, but unfortunately did not help us get a successful deploy of the more implicit user_data hash. On to the next one…

Client stress level on a scale of 1-10: Day Start: 8 Day End: 9.5