Client Collaboration with AI in Software Design
If you're interested in a consultation with me on any of these topics and how they may help you and your business, please feel free to message me here on LinkedIn.
When collaborating with clients to design systems or enhance product quality, it's essential for me to grasp the fundamentals of their offering. This involves understanding the client's objectives, the purpose of their service, and identifying potential risks that could affect the value of their product or service. While utilizing AI as a tool, I employ both a strategic and tactical approach to my work.
Strategic
My approach with AI is to work with it as a tool as part of an information refinement process considering the information as a queryable dataset.
I have a format for interviews that I have with my human clients to acquire non PII, and I continue building a context utilizing AI, and store that context in a secure place that acts as a development staging environment. My goal is to be informed, keep the context and content distilled and fresh.
In working with the client, I'm sharing that refined context with them at specific, planned intervals with the intent to further refine the information to form things like models, value streams (both business or development), KPIs, objectives and goals.
I utilize AI to assist in creating a portfolio for a service or product by understanding human ideas thoroughly then encapsulating them into archetypes as part of a larger body of work. That work can be organized into Themes, Initiatives, Epics, User Stories, Tasks, and Acceptance Criteria with accompanying User Experience. We may hold Example Mapping sessions to further bring the idea or solution to life and create units of work adding to the big picture.
The intent and goal with the right information is to steer the information evolution towards a domain model. Once there’s a domain model of the platform or system under test, I can co-develop various strategies and pivot into more tactical and areas, such as Data, Dev, and Test operations.
Tactical
With the right information, there are ways that I can have AI perform meaningful services when utilizing it. I like to keep categorized libraries of prompts that work for me. I visualize the prompt itself as an agent that stimulates a completion - not to elicit a canned or logical response as one may expect from a shell like BASH or DOS. I shepherd LLM responses by utilizing frameworks that the model is already familiar with. I seek out and explore the use of appropriate and related known methodologies, frameworks, disciplines, or set of guiding principles like the Heilmeier Catechism or Gherkin. This is because the LLM is most likely already trained on their syntactical rules with examples of use. For instance, LLMs pair well with User Stories for creating archetypes. I can streamline these overlapping domains very well. I can utilize the contextualized information set and create detailed user stories with a prompts that may include something like:
领英推荐
For further clarity, by reversing the user story format with Role-Goal-Reason as a system prompt to prime the LLM , it's easier for the model to mimic story archetypes. Even without adhering to Behavior Driven Development, Gherkin's State-Actions-Outcome syntax simplifies generating acceptance criteria and amplifies the expected behavior. I prefer Gherkin for test scenarios due to its AI friendliness. These scenarios double as executable documentation and can include Playwright code generated for an automated testing POM framework. Playwright tests are organized with Gherkin's 'Given', 'When', 'Then' labels, ensuring readability for stakeholders and conformity in POM structure and development standards. I can also have AI generate workflows and Mermaid code for diagrams.
Examples
I've provided a few artifacts from AI outputs. These are the intermediate artifacts produced that require work on behalf of humans. The information is off some but I have left it as is. AI outputs require plenty of review.
Here's a brief and isolated example of using Gherkin syntax with AI when creating a chess game and testing it. ChatGPT 3.5 generated this scenario when prompted to create a victory based on the Scholar's Mate pattern. It was achieved with White delivering checkmate on the 7th move (White's 4th move). The scenario outlines each move, including the player, the piece they move, and the start and end positions of the move. It is readable and can be automated.
Feature: Two chess players play chess and one of them wins
Scenario Outline: Quick win using Scholar's Mate
Given the chess board is set up for a new game
When the "<Player>" moves the "<Piece>" from "<Start Position>" to "<End Position>"
Then the board should reflect the new state after the move
Examples:
| Player | Piece | Start Position | End Position |
| White | Pawn | e2 | e4 |
| Black | Pawn | e7 | e5 |
| White | Bishop | f1 | c4 |
| Black | Knight | g8 | f6 |
| White | Queen | d1 | h5 |
| Black | Knight | b8 | c6 |
| White | Queen | h5 | f7 |
Here's the Heilmeir Outline for this article. I use it loosely and am not religious about it.
1. What are you trying to do?
? Understanding Client Needs and Risks:
? Identifying client objectives and the purpose of their service.
? Assessing risks that may impact the value of their product or service.
2. How is it done today, and what are the limitations of current practices?
? Utilizing AI as a Tool:
? Using AI as a queryable dataset without anthropomorphic traits.
? Structured interviews with clients to gather non-PII information.
3. What's new in your approach, and why do you think it will be successful?
? Structured Context Building and Information Refinement:
? Building a contextual framework with AI and storing it in a development environment.
? Sharing refined context with clients periodically to further refine information into tangible models, objectives, and goals.
4. If you're successful, what difference will it make?
? Portfolio Creation and Idea Encapsulation:
? Assisting clients in creating portfolios by encapsulating ideas into archetypes.
? Organizing archetypes into Themes, Initiatives, Epics, User Stories, Tasks, and Acceptance Criteria.
5. What are the risks and payoffs?
? Steering Towards Domain Models and Strategic Pivots:
? Steering the evolution of information towards domain models.
? Co-developing strategies and pivoting into areas like DevOps and TestOps.
6. How much will it cost?
? Utilizing AI for Meaningful Services:
? Leveraging AI effectively to perform meaningful services.
? Maintaining categorized libraries of prompts to stimulate AI responses.
7. How long will it take?
? Enhancing Clarity and Documentation:
? Reversing the user story format and utilizing Gherkin's syntax for test scenarios.
? Generating executable documentation for readability and conformity with development standards.
8. What are the midterm and final "exams" to check for success?
? Continual Refinement and Adaptation:
? Incorporating multiple roles into a streamlined process.
? Continuing to refine techniques and processes in software delivery.
I asked for the LLM to generate the Mermaid code to illustrate a sequential workflow based on that outline.
Conclusion
Thanks for letting me share a glimpse of how I’ve been delegating work to AI and utilizing it as a tool to help humans find what they're looking for.?I enjoy the process of refining my own techniques, incorporating the responsibility of multiples roles into a streamlined process as I continue to work with AI for software delivery.