All pages
Powered by GitBook
1 of 7

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Identifying a Problem Statement

Understanding how to identify a problem statement using AI

In order to make any informed decision, you should have a clear understanding of the intended outcome.

Clarifying Intended Outcome through Differentiators

To identify differentiators, think not what you want to build, but what you want to solve. In developing new products or features to an existing product, focus should be put on how your product differentiates from existing providers (or lack there of). If existing providers exist, you should reevaluate whether the effort to build those features yourself is worth more than just buying it.

For example, in our bicycle rental application, how we accept payments in itself is not a key differentiator. All rental companies will need to take in payments. However a customer's payment experience and the processes that power that experience such as single sign on, integrated mobile pay, refund process, or scan a card could be differentiators.

To begin documenting, start with a brief description of the problem or challenge. Elaborate on pain points for users, a gap in the market, or an opportunity to improve an existing process. When thinking about these problems, think in terms in of qualitative or quantitative results. Ask yourself how do you measure whether or not your solution is solving the problem?

To expedite this process we have created a as a start to capture the key points about this. You can . Finding balance between execution and research is a fine line and something to be mindful of. It is easy to end up in an endless cycle of analysis This can result in waiting too long to enter the market or ultimately not spending the development time needed to deliver a project at all. On the other hand, jumping into a project too quickly without the right level of research ends can result in products that already exist or do not solve a problem that really exists, often at a financial or time cost to the creator.

Everyone can have an idea, what and how you execute is what drives a successful delivery. Be prepared that it is a process that you are not likely to be successful on your first attempt. Keep going knowing that the journey itself is valuable. Whenever I struggle with this process I remember a lyric from “Always Wear Sunscreen”: “Whatever you do, don't congratulate yourself too much, or berate yourself either. Your choices are half chance. So are everybody else's.”

Let’s go through some prompts on how we can use AI to help build our bicycle rental application:

  • How many Americans own bikes?

  • How often do American ride bikes?

  • What are some problems with bike ownership?

  • How many bike rental business are there?

Some key considerations in responses during ideation, is when the data was last up to date. Markets, customer demands, and technologies change daily and a downside to large language models is they are often created "at a time". Meaning their data has a fixed end date and it cannot provide realtime information. To identify when a large language model was last , you could ask it or look at it's configuration.

What are some problems with bike ownership?

  • How many bike rental businesses are there?

  • What is the growth projection for bike rental businesses?

  • What is a radical new idea for bike rentals?

  • List out ideas for a bike rental business.

  • What are some pain points for a bike rental business?

  • template
    view the template here
    updated

    Requirement Gathering

    Using generative AI to assist requirement gathering and how requirements are related to user stories

    Once your problem statement is defined, the next step is to gather requirements for the application. This could involve finding the key features and functionality required, as well as any technical constraints or limitations.

    Generative AI, like ChatGPT, can play a valuable role in defining requirements for user stories, which helps streamline project planning and development. User stories are high-level descriptions of the desired functionality of a product from the perspective of a user or a customer. They describe the intended outcome but do not delve into the specifics of how that outcome will be achieved. Requirements, on the other hand, are more detailed and specific, outlining the exact features, functionality, and constraints of the system to be developed.

    In the context of software development, requirements are critical for both the development team and stakeholders, as they serve as the foundation for understanding and agreeing upon the project's scope and objectives. Generative AI can assist in refining and elaborating on these requirements by providing insights, suggestions, and alternative perspectives.

    Here are some examples of prompts that can be used with ChatGPT to further define business requirements:

    1. "Given the user story about a customer renting a bicycle, what are some additional functional requirements that should be considered?"

    2. "What non-functional requirements should be taken into account for a real-time messaging application?"

    3. "Considering the user story of a bank customer transferring money between accounts, what security requirements should be in place?"

    When gathering requirements, it's crucial to consider the human aspects, as these can have significant implications on the project's success. These aspects include legal, compliance, financial, and emotional requirements, which are often interrelated.

    Example: Requirement considerations

    Legal requirements refer to the need for the project to adhere to applicable laws and regulations. For example, a financial application must comply with data privacy laws and financial regulations. ChatGPT could be used to generate prompts or questions that help identify relevant legal concerns, such as "What are the data privacy regulations that apply to our application?"

    Compliance requirements involve ensuring that the project follows industry standards, best practices, and internal policies. Examples include accessibility standards, security certifications, or corporate guidelines. ChatGPT can assist in identifying these requirements by generating prompts such as "What industry standards should our project adhere to?"

    Financial requirements pertain to the budgetary constraints and financial objectives of the project. ChatGPT can help to clarify financial aspects by generating questions like "What is the estimated total cost of ownership for this project?" or "How will this project generate revenue?"

    Emotional requirements focus on the user experience and the emotional impact of the product on its users. These requirements may involve user satisfaction, ease of use, or the aesthetics of the interface. ChatGPT can be employed to explore these aspects, with prompts like "How can we design the user interface to evoke a sense of trust and reliability?"

    In conclusion, generative AI, like ChatGPT, can be a powerful tool in defining requirements for user stories, taking into account various aspects such as legal, compliance, financial, and emotional factors. By providing targeted prompts and generating insightful responses, generative AI can help streamline the requirement gathering process, ensuring a more robust and well-rounded foundation for project development.

    Plan and Prioritize Features

    Planning and prioritizing features in given-when-then with generative AI

    Once your problem statement and intended outcome is well defined. You'll want to create and prioritize the features that will be included in the bicycle rental application.

    This involves breaking down the user stories into smaller tasks and estimating the time and effort required to complete each task. Features should be prioritized based on their importance to the customer and their impact on the overall project.

    Test-driven feature development is one the best ways to write and identify features for an application.

    Given-When-Then

    Given-When-Then is a testing framework that helps to write and organize automated tests by breaking them down into three distinct parts:

    • Given: The setup or precondition for the test.

    • When: The action or event being tested.

    • Then: The expected outcome or result of the test.

    This approach helps to create more readable, reusable, and maintainable test cases by making them easier to understand and debug. In the same way this is used to write test cases, we will use it to write the basis of our features.

    Example features of a bicycle rental application web app using Given-When-Then:

    Feature
    Given
    When
    Then

    User Registration

    A user is on the registration page

    The user enters their details and submits the form

    The user should be redirected to the login page

    Search Bicycles

    A user is on the homepage

    The user enters a location and a date range to search for available bicycles

    The user should see a list of available bicycles with details such as location, type, and price.

    Rent Bicycle

    While the above provides a great starting place for the core features of our app, it needs further refinement. To refine these features further, we will turn them into user stories.

    Ideation Template

    A template to quickly document problem statements and their related requirements

    The ideation template provides key areas to document in the largely human driven Ideation knowledge area.

    Problem Statement

    Aspect of Problem Statement
    Description

    Develop User Stories

    Developing and refining user stories through generative AI

    Now that we have features that describe the actions and interactions that users will have with the bicycle rental application, we will create user stories to develop from. User stories should be developed collaboratively with stakeholders and end-users, and should focus on delivering value to the customer.

    User stories are defined work items that describe features and functionality that power an end user action.

    User stories typically have the following characteristics :

    • Have a description that summarizes the use case the user story is solving

    Ideation Prompting

    Leveraging prompts in generative AI to create and refine ideas

    With the problem statement clear, requirements defined, and user stories groomed, you will be in an informed state to appropriately use generative AI to generate new ideas and concepts for the software application or requirements that should be met to ensure project success. This could involve providing LLM with a brief description of the software application and asking it to generate potential features, user stories, or use cases.

    Example: Generating features for a bicycle rental application

    Have acceptance criteria that defines when a story is considered complete
  • Represent a single functioning piece of code

  • Assigned to a single developer

  • Moved through phases that track the status of the work item

  • Are reviewed in a QA process

  • Often have subtasks that are pieces of work needed to be completed for the user story to be completed

  • Given our features from the Plan and Prioritize Features section, let's elaborate on those and create some user stories.

    User Story 1: User Registration

    As a new user, I want to register for an account so that I can start using the bicycle rental application.

    Acceptance Criteria:

    • The user should be able to navigate to the registration page from the login page.

    • The registration form should include fields for name, email, phone number, and password.

    • Upon submitting the registration form, the user's information should be stored securely in the database.

    • The user should be redirected to the login page upon successful registration.

    • If there is any error during the registration process, the user should be notified of the error and asked to correct it.

    User Story 2: Search Bicycles

    As a user, I want to search for available bicycles based on location and date range so that I can find a suitable bicycle for my needs.

    Acceptance Criteria

    • The user should be able to access the search feature from the home page.

    • The search feature should include fields for location, start date, and end date.

    • The application should display a list of available bicycles based on the user's search criteria.

    • The list of available bicycles should include details such as location, type, and price.

    • The user should be able to filter and sort the list of available bicycles based on their preferences.

    • If there are no bicycles available for the given search criteria, the user should be notified accordingly.

    User Story 3: Rent Bicycle

    As a user, I want to rent a bicycle for a specified duration and complete the payment process so that I can start using the rented bicycle.

    Acceptance Criteria

    • The user should be able to select a bicycle from the list of available bicycles.

    • The application should display the details of the selected bicycle, including rental rates and terms.

    • The user should be able to specify the rental duration and see the total rental cost.

    • The application should guide the user through the payment process securely and reliably.

    • Upon successful payment, the user should receive a confirmation email with the rental details and instructions.

    • If there is any error during the rental or payment process, the user should be notified of the error and asked to correct it.

    User Story 4: Return Bicycle

    As a user, I want to return the rented bicycle to the designated location and receive confirmation of the return.

    Acceptance Criteria:

    • The user should be able to see the rental details, including the rental duration and the designated return location.

    • The user should receive reminders about the approaching return deadline via email or push notification.

    • The user should be able to navigate to the designated return location using the application's built-in map or directions feature.

    • Upon returning the bicycle, the user should receive a notification confirming the return and the rental charges should be deducted from their account.

    • If there is any dispute or issue related to the rental or return process, the user should be able to contact customer support through the application.

    Summary

    User stories will form the basis of our prompts and are a key input to the code generation knowledge.

    A user has selected a bicycle to rent

    The user enters the rental duration and completes the payment process

    The user should receive a confirmation email with the rental details and instructions.

    Return Bicycle

    A user has rented a bicycle

    The rental duration has ended, and the user returns the bicycle to the designated location

    The user should receive a notification confirming the return and the rental charges should be deducted from their account.

    Ideation

    How to identify problem statements, write features, and gather requirements through generative AI

    The below sections cover a broad scope of ideation and refinement approaches with references to concepts often discussed in product management, project management, and agile frameworks for developing an application. If you have leveraged these frameworks before, then some of content may be redundant, but the intent is to create new perspectives in how generative AI can be used to accelerate or improve the quality of these activities.

    In relation to generative AI, you can use prompts to help identify problems, create new ideas to solve those problems, elaborate on existing solutions, or challenge your own thoughts through other suggestions.

    Prompt

    Response

    1. Real-time Availability and Reservation System: A feature that allows users to view the real-time availability of bicycles at various rental locations and reserve a bike in advance. This would involve integrating a map-based interface, displaying the number of available bikes at each location and offering a seamless reservation process.

    2. Smart Pricing and Payment Integration: A dynamic pricing system that calculates rental fees based on factors such as duration, demand, and location. This feature would also include a secure and user-friendly payment integration, allowing customers to pay for their rentals using popular payment methods like credit cards, PayPal, or mobile wallets.

    3. In-app Navigation and Route Planning: A feature that enables users to plan their bike routes by leveraging GPS and mapping services. The app could suggest optimal routes, taking into account factors such as distance, elevation, and estimated time of arrival. Additionally, the app could provide real-time navigation guidance, ensuring users reach their destinations safely and efficiently.

    4. Social and Gamification Features: Introducing social features that allow users to share their rides, achievements, and favorite routes with friends or other users of the app. This could be complemented by gamification elements, such as earning points, badges, or rewards for reaching milestones, completing challenges, or participating in community events.

    5. Maintenance and Support System: A feature that allows users to report issues with their rented bikes, such as flat tires or mechanical problems, directly within the app. The system would facilitate communication between the user and the support team, enabling quick resolution of issues and minimizing downtime. This feature could also include preventive maintenance reminders for the rental company, helping them keep their bikes in optimal condition.

    These five potential features, when combined in a bicycle rental application built using React and Node.js, would create a user-friendly, efficient, and engaging platform that caters to the needs of both customers and the rental company.

    Evaluation and Refinement of Ideas

    Once ideas have been generated using GPT, they should be evaluated and refined based on feasibility, usability, and alignment with the requirements and problem statement. This could involve brainstorming sessions with stakeholders and subject matter experts to further develop and refine the ideas generated by GPT.

    Conclusion

    Generative AI can be a great tool for creating features, user stories, and even requirements. This process can be extremely beneficial for processes and projects that follow a standard methodology like existing payment processes or navigation features.

    prompt
    Generate five potential features for a bicycle rental application built using React and Node.js.
    prompt
    Generate five potential features for a bicycle rental application built using React and Node.js.

    Clear and concise statement of the issue that needs to be solved

    Impact of the problem

    Explanation of the consequences of the problem

    Scope of the problem

    Description of the extent of the problem

    Causes of the problem

    Identification of the root causes of the problem

    Constraints and limitations

    Explanation of any limitations or constraints that may impact the solution

    Goals and objectives

    Clear statement of the desired outcome of the project

    Requirements

    Aspect of Requirements
    Description

    Functional requirements

    Description of the specific features and functions that the product or system must have

    Non-functional requirements

    Description of the constraints and limitations that the product or system must meet

    Use cases and scenarios

    Detailed description of how the product or system will be used in real-world situations

    User interface and user experience

    Description of the design and layout of the user interface, including how users will interact with the system

    Testing and validation

    Description of how the requirements will be tested and validated to ensure that they meet the needs of the users or stakeholders

    Description of the problem

    Documentation and training

    Description of the documentation and training that will be provided to users to help them understand and use the product or system