(Re)birth of Project
April 18, 2025
Here’s a little look-back on the ups and downs of “Project”, from my POV (and some mood music{:target=“_blank”}): When we were working on getting CPC access to the workflow application, I made the decision to outsource a big chunk of that development. We didn’t have the bandwidth to closely manage that – no one did code reviews or design reviews on their approach, and it was only after we started maintaining it that we really discovered the pitfalls. So, we had what was a fragile but working thing (CPC Projects), which was half ours and half alient transplant. Then, when we needed to make the workflow software available to folks outside CPC, we realized that at the time CPC Project was being built, the developers thought we were doing custom development for CPC and that we would NOT be looking to expand the customer base for that product. We didn’t know the outsourced code – and it’s not lovely code – and the decision was made (which I didn’t strenuously object to at the time) to write the workflow application from scratch. We spent a lot more time than we thought we would doing that last year, arriving at a v0 that wasn’t released.
Fast forward to the UI Refresh: We banged out a whole lot in a fairly short time, doing a medium-level facelift (so not just putting on makeup). I set the pace and scope on it over Chuck’s objection and probably some worry on Jason’s part. We got it done, and for the most part, it’s fairly solid.
Except.
CPC Project is beyond fragile and bits are seemingly flaking off like a Vampire left out in the sun. We killed a release this week because we are slammed with bugs in CPC Project. About half-way through the UI refactor, CPC, which had been working fine, started breaking all over the place. As with most things, it wasn’t ovbious that there was a change of state from stable to unstable until we were many tickets into fixing things as they came up. But there was a huge number of regressions, and many instances of the same bug cropping up in different places. So it is my belief that somewhere during the UI refactor, one of the table legs of CPC Project got kicked out and everything started tipping over. We have not found what that breakage is. I think the Sisyphean bug watting is getting everyone pretty frustrated, and we would all like to know what the root cause is. But we haven’t found one yet, though we’ve taken a few different approaches to try and figure it out.
So, looking back on things that could have helped earlier, in order of diminishing efficacy:
- I could have stepped very gingerly around the Devsquad code and handled it like it was a Ming vase. Less cowboy probably would have helped a lot.
- Once stuff started breaking, I could have pulled the emergency brake to find the root cause right then, before shipping the UI refactor.
- After shipping UI, I could have called a halt then and we could have dug around until we found the root cause.
And options ahead of us now:
- Keep doing archeology until we find the root cause. At this point, probably low expectation of success.
- Keep putting band-aids on the bugs. We could do it, but no one will be happy and we’ll be spending time better invested elsewhere?
- Fix only the absolutely-must-fix and rope off the parts of the house that are hanging off the cliff (about half of the RFP stuff). Since this means more surgery in Devsquad code, not risk-free, but possibly a more stable end result?
- Fuck off and just finish Program/Project as fast as possible and ignore anything new that comes up. I think we might be fairly close. Like a month out, if we can focus on it?
Just for fun, let’s have your votes and rationales! See you in the comments!
Also, reminder! If you are scheduled for an April 360, please make sure you’re making your workplan updates, notifying your stakeholders, and scheduling your meeting!
Metrics
Section titled “Metrics”- Unique Buildings: 6,222 (March, +162 MoM)
- Annual Run Rate: $1.31M
- Monthly net burn (accrual basis): $71,974 (3-month avg through March, -22.57% MoM)
- Year-to-Last Month net burn (cash basis): $140,356 (-19% MoM)
- 2025 Transaction fees to date: $7,224 (+$3,800 WoW)
- Outstanding invoices as of today: $97,024 (-$50,000 or -34% WoW)
Last Week’s Highlights
Section titled “Last Week’s Highlights”- NYSERDA Data Platform kick-off meeting went well. Nilus, our NYSERDA PM, said several times that our approach is a breath of fresh air compared to their prior vendor. I think this is going to be a great collaboration. Also, they already paid us for Q2! BJ (+1 François)
- Advice process for product workflow We had the first advice process meeting in a while and we got through what we needed to get through in the time alotted! Looking forward to hearing feedback on process as we do more of these. I also revised the proposal template so it’s simpler. BJ
Any missing highlights? Please share in Slack comments.
Crow’s Nest
Section titled “Crow’s Nest”Looking out for icebergs: What are the risks on the horizon that we’re watching for and navigating around?
Bomee’s List
Section titled “Bomee’s List”- Getting Marc a product he can sell It will be nice to get FirstServcie under out belt. We’re delayed on NPV, but we’ll get there.
- Cash. Still keenly aware that we have a net burn that we need to minimize, esp. given our Kresge loan payments aren’t matching up with the CPC transaction revenue as hoped.
- NYCA – waiting…still
- ConEd Recompete Moving– Marc responded to some requests this week.
- The background hum of uncertainty for the housing/construction industry. There is a lot of talk among the climate NGOs right now.
François’ List
Section titled “François’ List”- NYSERDA data RFP / Building Data Platform: while we had a good kick-off, we still haven’t gotten the “big reveal” of the state of the data we’re taking over. A positive note is that the project lead doesn’t seem interested in recreating what they used to have, but build trustworthy datasets with transparency in mind. This reduces the risk of having to replicate brittle legacy solutions at the cost of throwaway work.
- The CPC Project code third-rail: it would be depressing to evaluate the cost of our efforts to work around issues in that code. Release 93 was the latest casualty. I vote for the rope off option!
- Side quests: they’re still a thing, everywhere. You try to tackle a small bug in a piece of code you haven’t looked at in a while, and realize there are 10 overdue refactors that need to be done. Or do they? I think we’re getting better at stopping ourselves before going too far, but it’s a constant balancing act -or Tetris game-.
- Automated Testing: I’m convinced that reliable tests that run quickly and reflect our users’ experience are table stakes to move faster and with more confidence. Are we going to find the bandwidth to get this party going?
Jason’s List
Section titled “Jason’s List”Carryover from last week:
- NYC Accelerator RFP–this would be a big contract and have impacts on revenue plan and product roadmap.
- How can we continue to reduce the barriers to giving users useful information? I’m eager to try scraping data out of pdfs and other documents so we can make it easier to get non-public information.
- Figuring out a sustainable sprint planning routine that allows us to reliably ship on time and to know what will be in the release–and move faster.–> Jeremy’s proposal will hopefully bring us closer to this.
- Updating our project workflow. We have a better idea of who will be using this now, which is a great start. Now we need to confirm what features they need and those they don’t need. And we need to away from the existing CPC CFHF code asap.
- More chatter about adapation > mitigation. This feels both scary at the macro scale–have we missed the tipping point?–but also I think more difficult to streamline with software than decarbonization.
On Deck for This Week
Section titled “On Deck for This Week”- Horizontal practices monthly on Thurs!
- Release 93 was postponed, so hopeflly we’ll make big strides on getting CPC stable. BJ
- First run of the new production workflow! BJ
Please Leave Feedback
Section titled “Please Leave Feedback”Please note your reaction to this update in the Slack channel. It helps us to know what is resonating, what is unclear, etc. Thanks!
- What are your highlights / lowlights?
- Did we miss a highlight? Something else you want to react to?
