Inspiration

In software development, particularly software development services, it is desirable to have good project estimates, and the ability to quickly quote. It is expensive to come up with an accurate estimate and especially painful when the estimate gets rejected and time and cost are wasted. There are software tools that exist to reduce these costs, but generative AI has a unique application where it's cognitive and reasoning abilities, and built-in understanding of software development. I felt like it could be leveraged to handle some of the heavy lifting of thinking about what is needed to deliver a software project.

What it does

Takes the "raw material" of solution architect notes, call transcriptions, email threads, etc. as inputs. It processes that raw material by using LLMs to identify:

  • Personas, these are necessary to communicate with the customer and provide necessary clarity for requirement definitions and writing stories.
  • Requirements, The actual requirements needed.
  • The estimate itself.

If you want to give it a spin, look at the end of this project description for the "Try it out" Section.

How I built it

Started with the Generative AI app builder as a starting point and then refined it by adding new widgets for the things that are missing. Temperature changes, prompt-tuning, and LOTS of testing completed and adjustments made to get it to where it is today.

Challenges we ran into

  • The biggest issue was that the inputs may not be enough information to provide an accurate estimate so I designed the app to ask questions of the user to fill in gaps.
  • Limitations of the underlying AI models themselves. Reasoning abilities, prompt compliance, etc.
  • Learned that humans need to be in the loop. Sometimes the estimates are confidently off.

What I learned

  • Generative AI has more limitations than I expected. Humans are still the more intelligent species :)

What's next for Software Project Estimation Assistant

  • Implement it as a first-party application or addon, plugin, or marketplace app, (like Jira, etc.)
  • Fine-tune LLMs for better/faster/cheaper outputs.
  • Build out a hierarchy of features, and stories that connect with the users' product management system of choice. Including estimates at that level.
  • Provide past story estimates as reference/learning to increase the accuracy of automated estimates in future projects.
  • Handle Non-functional requirements a little differently.
  • Provide Estimates in multiple measurements, $, Hours, Stories, etc.

Try it out

Paste the following discussion/transcript "raw material" into the project description field and watch the app work:

Client: We're looking to develop a note-taking app that's both simple and efficient for users to capture their ideas and manage them easily across different platforms.

Provider: Understandable. Let's start with the basics. How do you envision the user registration and authentication process?

Client: We want a straightforward sign-up with email and password. Plus, a simple login/logout feature with the ability to recover forgotten passwords.

Provider: Got it. What about the core functionality of the app, such as creating and managing notes?

Client: Users should be able to create notes that can contain text, images, and links. They should also be able to edit, delete, and organize these notes into categories or tags.

Provider: Makes sense. Would you like to include search functionality to help users find their notes quickly?

Client: Yes, that’s important. Users should be able to search by content, tags, or titles.

Provider: How about the ability to use the app on multiple devices? Is data synchronization something you're looking for?

Client: Absolutely. Real-time synchronization across all devices is a must-have feature.

Provider: Great. Do you also want features for sharing and collaboration on notes?

Client: Yes, users should be able to share their notes and collaborate in real-time with others.

Provider: Understood. What about exporting and importing notes?

Client: Users should have options to export notes in formats like PDF or DOCX and import data from other apps if possible.

Provider: Now, moving on to non-functional requirements, such as performance and security, do you have any specific expectations?

Client: The app needs to be fast and responsive, even with many users. Security is critical; we need encryption for stored data and secure communication.

Provider: Got it. And scalability?

Client: The backend should be able to handle growth in users and data smoothly.

Provider: What about the design and accessibility of the app?

Client: The interface should be intuitive and accessible to users with disabilities, following standard guidelines.

Provider: Lastly, how important are data backup and recovery features to you?

Client: Very. We need regular backups and an easy way for users to recover data if needed.

Provider: Excellent. We have a clear understanding of your requirements. We'll draft a detailed document and get started on the project plan.

Built With

  • partyrock
Share this project:

Updates