On Monday we will roll out a software system that my team has been building for the last thirteen months. In nearly 27 years with the company, this is the software that I am most proud of. It is a system that coordinates new hires, people who are changing jobs or transferring locations, and people who are separating. It involves integration with many other systems, but it really does save people a lot of time over what they do today and it smooths the process for a person starting at the company on their first day, or leaving on their last.
It occurred to me that there is something even more remarkable about this piece of software. The very first meeting I had on this project was back on February 3, 2020–before everything began to shut down due to the pandemic. The first of what was ultimately 37 requirements meetings was held on April 21, 2020. The meeting, while involving people from all over the company and across most of our locations, was done remotely at this point. And since then, we haven’t had a single in-person meeting on the project. The entire software system was built remotely, with people working from home. Of course remotely-built software is nothing new in the open source world. But I think this could be a first for my company. And I’m really proud of the result.
That said, I am in a mode that is probably familiar to many software designers and project managers on the eve of releasing a product you have been working on for so long: all I can see are flaws.
I have a long punch-list of things that I am trying to get done between now and Monday and they all seem to be flaws in the system. These are not fundamental design or structure problems. This is more like a spot on the windshield that you missed while cleaning it. But it is all I can seem to see at the moment. I am so happy with what we have done with this system that I want it to be perfect when it goes live on Monday. And anyone who has ever used a computer knows that no software is perfect.
Still, I think it is useful that my brain is only seeing flaws at the moment. It allows me to focus on those things that matter, and not worry about the stuff that is already in done and ready to go. It means that every day, the system is getting a little bit better.
I was incredibly lucky on this project. I had a great development and testing team. It has been one of the best things about working where I work that I get to work with some of the smartest people I’ve ever met. I learn from them every day, and I have been really impressed with how well our core team has worked remotely over the last 13 months. I’ve lost count of the number of “co-programming” sessions we’ve had that have worked out so well.
We’re in that final push now. This past weekend was the third weekend in a row that I’ve worked. Yesterday, I put in 11 hours, and I couldn’t sleep much last night because the stuff I have to get done was running through my head. So I was up before 5 am this morning to get started and maybe quiet my mind a bit. Four more days, and one more weekend to do, and the system will be live and in the wild. I am feeling unusually optimistic about this system–which is why I am glad that at the moment, all I can see are flaws. I think that will help to ensure we release the best possible system we can come Monday.