So, today I’m 4 weeks into my first job as a web developer. I started on Tuesday, August 10th and today is Tuesday September 7th. In a few days, I’ll have made it through my first calendar month. Its not at all what I expected. My understanding is that I would be working on the company’s business application, and I am, but not via code. At least not yet.
My initial task is to help connect the company’s software with Zapier, which is an online integration tool. It basically lets developers connect an application’s API to it so that connected applications can communicate with each other. Its a middleman. There are “triggers” that can be specified in one program which will cause “effects” to happen in another. So, if you create a customer in your application (the trigger), that data is sent to Zapier’s API and then beamed into a linked application to cause something to happen there (the effect). For example, a new customer can be created in a CRM which will cause a new customer and an invoice to be generated in Quickbooks Online.
Currently, the backend and API for the company’s program is written in C#. I had started building out a backend Node & Express application to speak with the company’s API and was going to connect it to Zapier, but the person who heads development instead suggested that we upgrade the existing backend to speak with Zapier directly, so I stopped working on my code and instead moved on to learning the Zapier integration process better and trying to get information to connect Quickbooks Online and a new CRM that the company is using called Salespype.
Hurdles
The process has not been smooth. I have a little experience doing work like this, but not as a developer. At my old company, which was an EMR (electronic medical record), I helped with our integrations by mapping out all of our fields (there are thousands) and matching them with fields in other applications that we integrated with. We didn’t know of Zapier at the time, and I think that around 2010-2012, Zapier might have only just been formed as a company, so they weren’t an option for us. We relied on a health information interoperability standard called HL7 to connect with some of our partners, and on custom APIs and integrations with others.
At the old job, I knew the system inside-and-out. It wasn’t too hard to determine where data from our application should flow to in other applications, once I was given access to them. At this new company, I’m running into hurdles. For example, as of this writing, its been a week since Salespype was set up. I was told that within 48 hours, their team would connect our Salespype to Zapier. That didn’t happen. I was then told that I’d have an update by that Saturday. That also didn’t happen. Three days have passed since then (due to Labor Day weekend) and as of this afternoon, I’ve messaged Salespype three times and still don’t have an update.
My goal is to see Salespype’s integration with Zapier so that I can understand what data their API exposes and then match our API to Zapier with the same information. Some of that data will likely also be reproduced when we connect Zapier to Quickbooks Online, so our superset of connected Zapier endpoints will have two subsets: one for Salespype connectivity and one for QBO. Waiting on a response from Salespype has basically already pushed us out almost a week, and its frustrating to the owner, who I Zoom with each day. Its disheartening to give the same report of no progress made several days in a row. Sadly, this is a peril when working with other people or depending on work or information from other companies.
Monkey in the middle
Today, for the first time, I was placed in the unenviable position of being asked to get the development team to provide a tracking list of features and due dates for every feature needed for completion of the current version of the software. Some of this information is already available through checklists, but as many can surmise, due dates can be moving targets. Surprises almost always come up during development and managing them results in ever-expanding deadlines.
I don’t want, not do I have the experience, to replace the person who’s already heading the developers. I don’t have his understanding of the codebase – which I haven’t even fully-explored yet – and I don’t want to play good cop/bad cop or anything like that with other human beings. I reviewed one of the checklists that he provided to me a few weeks ago. It shows features that are in some stage of development and has checkmarks for completion of various phases. Right now, there are 14 major features on the list, and the development process has 15 phases. The first 9 features have checkmarks in 1/2 to 3/4 of the boxes. The rest are blank. They’re also big features. They were supposed to be completed before October 15th, because we’re going to show the application at a conference in Kentucky towards the end of October. However, we got a surprise announcement that the company is hosting a mini-convention of its own, with contractor companies, around September 25th. So, development lost a month.
Right now, it doesn’t look like we can realistically complete everything that’s being worked on 4 weeks early. I’m going to carve out time to meet with the other developers and get a sense of where we are with the features on our list. I don’t relish the thought of playing bad cop to the development team, so I have to see how to approach this. I prefer to nurture and empower than to command with a whip.