Saturday, 21 September 2024

Having some more fun with chatGPT o1-preview

So it's been about 5 hours that I've been playing around with chatGPT o1-preview today. I had to wait a week to get my credits going again. Last Sunday, I made a simple resource planner forecasting tool for software engineering managers. Today I decided to explore something I've been putting off for a very long time, for more than a decade actually. I believe there is a gap is software planning tools, starting with the mental model of defining the software system architecture, breaking it down into services, APIs and dependencies, forming the teams around the architecture, and then integrating work package planning with the architecture definition.

My goal is to make planning work packages easier, dating back to when I described in detail how I managed a very large scale software delivery here. I want to bring this thinking into a tool. When planning projects or any new initiatives, when defining the work package, one can pull all the details needed from a primary source, driven by the software architecture and dependencies, we can solve the risk of missing critical tasks, ensuring all related teams are included in the overall planning.

So today, after going through a few rounds of building these workflows, with chatGPT as my copilot - I decided to scrap everything, and begin with the end in mind. So the first iteration is a working backwards from the end visualizations, setting up the mental model to mature further. The tool is available in a separate page here, and embedded in this blog post. There are two example software systems: 1\ A generic video streaming app called "StreamView"; 2\ A generic contact center system called "ConnectPro". I have a long history with building video streaming apps, and for the last 3 years I've been building a contact center for AWS Support.

At first I started creating the workflows from scratch like capturing the system details through some forms and workflows. The interaction was amusing, classic scope creep, change of requirements, build-run-change-iterate cycles. Do this long enough, chatGPT loses context after a while and messes things up. Then I directed chatGPT to synthesize its own system architectures, using its own knowledge of software architecture and whatever it learnt about video streaming apps and contact center stacks. I instructed it to generated its own services, dependency trees and basically generate the fake data to drive the mental model. Now we (chatGPT and I) have a good base to start refining the mental model, baseline a data model, and then build the advanced software planning tool from there. Ideally, the end goal is a component or service that can be plugged into the various software planning tools in the market today. I feel the lack of an integrated software system dictionary is one of the reasons why we still experience poor software project management today. Let's see how far I get on with this vision!

The more I interact with chatGPT, the more I'm blown away. The key learning takes me back to my days when I used to write technical requirements, system use cases. All of this knowledge is now needed to prompt these LLM GPTs. It is amazing how chatGPT o1-preview synthesizes the requests, applies chain-of-thought reasoning, and usually gets an MVP right on first attempt. The interaction will take several hours, or even days - but I can only see this thing getting so much better!

No comments:

Post a Comment