Skip to main content

Functional Document

Why do we need a Functional document?

Product managers/owners may question why an actual document is needed.

After all, they sent several lengthy emails already!

It takes time to develop, but a poorly-planned project will become painfully obvious -- and fixable -- at this early stage.

Tips

We require a functional document because:

  1. Solutioning successfully requires clear and approved objectives/specifications.
  2. Captures all major details requested that need to be referenced.
  3. Prevents misunderstandings by making clear specific requests that can be shared easily.
  4. Accountability for current and changed requests and requirements.
  5. Failure to have it is a red flag and strong indicator of future project problems.
  6. Lack of a planning with a document can lead to high losses in time and money, and make everybody's job more difficult.

Functional Requirements checklist

The Functional Document should include the following steps:

1. Application Purpose and Features

  1. Define purpose/scope
    • the purpose and scope of the document, including the target audience and stakeholders.
  2. Identify objectives
    • the business objectives and user needs that the document will address.
  3. Identify stakeholders and team roles
    • Identify who is empowered for approving changes to Functional requirements
  4. Outline functional requirements
    • the functional requirements for the system, including any constraints or limitations.

2. Application UX/UI

  1. Describe UI
    • the user interface design, including any wireframes or mockups.
  2. Specify UX/branding
    • any UX/branding or other technical organization requirements or dependencies.
  3. Include content
    • information on any data or content that will be required.
  4. Include usability
    • a section on usability testing results and user feedback, if available
  5. Describe any accessibility considerations for users with disabilities
  6. Outline the process for ongoing user engagement and communication
  7. Define the process for user onboarding and training
  8. Include a section on data privacy and security considerations

3. Project Planning and Ongoing Success

  1. Project Timeline.
    • Outline the project timeline and milestones.
  2. Define testing
    • Testing and evaluation plan for the system.
  3. Maintenance and support
    • Include a section on the maintenance and support plan for the system.
  4. Future staffing and ongoing support
    • Include a section on future staffing and ongoing support.
  5. Extra reference and documentation
    • Include any appendices, links, specifications, or additional resources that may be useful to the target audience.
    • Include links or reference any past presentations, or important related emails.

Functional Requirements Document (Example)

Functional Requirements Document - example for a Ridesharing Application

User Roles, Responsibilities, Requirements

RolesResponsibilities
RidersRequest rides and use the app to track and rate their driver
DriversProvide rides and use the app to track their riders and receive ride requests
Admin/OperationsManage the app's functionality and ensure a smooth experience
Admin/CMSManaging blog and other customer and promotional messaging.
Payment ProviderManage the payment processor and ensure secure transactions
Customer SupportAddress any issues or concerns that arise for riders and drivers
MarketingPromote the app and reach out to potential riders and drivers
AnalyticsTrack usage and performance data to help improve the app's functionality and user experience
Accounting/TaxPayment tracking, tax, audit log
ComplianceApproval of legal terms, issues

UI of Ridesharing App

  • These are some UI samples.
  • Ideally, most/all screens would be included.
  • Additonally, user flow diagrams would be good.
    • See more examples on the UX Flow page for types of diagrams.
UI reidesharing redesignUI reidesharing redesign splash

source: interface examples by Ivan Fadila, as shared atFigma community CC 4.0

Feature requirements

User Account Creation and Management

  1. Users must be able to create an account using their email or a social media account
  2. Users must be able to update their account information, including contact information and payment method
  3. Users must be able to view their past rides and payment history

Ride Request and Dispatch

  1. Users must be able to input their pick-up and drop-off location and request a ride
  2. The application must be able to match the user with the nearest available driver
  3. The driver must be able to accept or reject the ride request
  4. The user must be able to cancel the ride request at any time
  5. The user must be able to track the driver's location in real-time and receive updates on the estimated arrival time

Payment

  1. Users must be able to select their preferred payment method (e.g. credit card, debit card, or stored value account)
  2. Payment must be processed at the end of the ride
  3. The user must be able to view the total cost of the ride and a breakdown of the charges

Driver Management

  1. Drivers must be able to create an account and provide their vehicle information
  2. Drivers must be able to update their account information and availability status
  3. Drivers must be able to view their earnings and ride history
  4. The application must be able to match the driver with the nearest available ride request

Security

  1. Users' and drivers' personal information must be kept secure and protected from unauthorized access
  2. All payment transactions must be processed securely
  3. The application must comply with all relevant security and data privacy regulations.

Push notifications

  1. Users will be notified of the status of their ride request
  2. Drivers will be notified of new ride requests
  3. Users will be notified when the driver arrives
  4. Users will be notified of any updates to the ride status.

Feedback and ratings

  1. Users must be able to rate their driver and provide feedback on their experience
  2. Drivers must be able to rate their passengers and provide feedback on their experience
  3. Feedback will be visible to all users and drivers.

Admin Panel

  1. Admin must be able to view all the rides, drivers and Users
  2. Admin must be able to add/remove/update any user or driver
  3. Admin must be able to view all the feedback and ratings
  4. Admin must be able to view all the financial transactions.

Geolocation and Maps

  1. The application must use the device's GPS to determine the user's location
  2. The application must be able to display the user's location and the driver's location on a map in real-time
  3. The application must be able to calculate the estimated distance and duration of the trip based on the pick-up and drop-off locations

Fare Estimation and Pricing

  1. The application must be able to estimate the fare for a trip based on the pick-up and drop-off locations, distance, and duration
  2. The application must be able to display the estimated fare to the user before the ride is requested
  3. The application must be able to handle different pricing structures, such as surge pricing during peak hours

Ride Scheduling

  1. Users must be able to schedule a ride for a future date and time
  2. Users must be able to cancel or modify a scheduled ride
  3. The application must be able to match the scheduled ride with the nearest available driver

Multiple Vehicle Types

  1. The application must be able to handle multiple vehicle types, such as sedans, SUVs, and handicap-accessible vehicles
  2. Users must be able to select their preferred vehicle type when requesting a ride
  3. The application must be able to match the user with a driver who has the appropriate vehicle type

Language Support

  1. The application must be able to support multiple languages
  2. Users must be able to select their preferred language when creating an account
  3. The application must be able to display all text and prompts in the user's preferred language

In-app Communication

  1. Users and drivers must be able to communicate with each other through the application
  2. Users must be able to contact their driver for any questions or concerns before, during, and after the ride
  3. The driver must be able to contact the user if there are any issues or delays with the ride

Promotions and Discounts

  1. The application must be able to handle promotions and discounts for users
  2. Users must be able to enter a promo code to receive a discount on their ride
  3. The application must be able to track the usage of promo codes and ensure they are only used once

Ride History and Receipts

  1. Users must be able to view their ride history in the application
  2. Users must be able to view a receipt for each ride, including details such as the driver, pick-up and drop-off locations, distance, duration, and fare
  3. Users must be able to download the receipt as a PDF

Vehicle Safety Features

  1. The application must be able to track the vehicle's safety features and provide information to the user before the ride
  2. Users must be able to see the safety features of the vehicle before the ride
  3. Users must be able to rate the safety features of the vehicle after the ride

Carpooling

  1. The application must be able to match multiple users with a single driver for carpooling
  2. Users must be able to request a carpool ride and select the number of seats they require
  3. The application must be able to split the fare among the passengers and the driver appropriately.

Emergency contact and panic button

  1. Users must be able to set emergency contact
  2. Users must be able to press a panic button in case of emergency during the ride
  3. The application must be able to notify the emergency contact and authorities immediately.

Rider and driver ratings

  1. The application must be able to display the rating of riders and drivers
  2. Users and drivers must be able to rate each other after the ride
  3. The rating system must be able to filter out fake reviews.

Real-time traffic and route optimization

  1. The application must be able to provide real-time traffic updates
  2. The application must be able to optimize the route based on traffic conditions
  3. The application must be able to display the estimated time of arrival based on the real-time traffic updates.

Driver-specific features

  1. The application must be able to track the driver's working hours
  2. The application must be able to notify the driver of their earnings
  3. The application must be able to provide a driver with the option to go online or offline.

Multi-modal transportation options

  1. The application must be able to provide multiple transportation options like bike and scooters
  2. Users must be able to select the preferred mode of transportation
  3. The application must be able to provide fare estimation for the different modes of transportation.

Real-time Monitoring

  1. The application must be able to provide real-time monitoring of the trip status
  2. The application must be able to notify the user and driver of any delays or changes to the trip
  3. The application must be able to provide an estimated time of arrival based on the real-time monitoring

Accessibility features

  1. The application must be accessible for people with disabilities
  2. The application must have features such as larger text, high contrast, and voice-over for visually impaired users
  3. The application must be able to provide information on wheelchair accessible vehicles

Car rental and car sharing

  1. The application must be able to offer car rental and car sharing options
  2. Users must be able to rent or share a car using the application
  3. The application must be able to provide information on the availability, pricing, and location of the vehicles

In-ride entertainment

  1. The application must be able to provide in-ride entertainment options like music, news, and podcasts
  2. Users must be able to control the in-ride entertainment options through the application
  3. Users must be able to rate and provide feedback on the in-ride entertainment options

Referral program

  1. The application must have a referral program where users can invite friends to join the service
  2. Users must be able to share a referral code with friends
  3. Users must be able to receive rewards for successful referrals

Checklist

Navigation and Menu

  1. The application must have a clear and intuitive navigation menu that allows users to easily access all of the features
  2. The navigation menu must be accessible from all screens
  3. The menu items must be clearly labeled and easy to understand

Search and Filtering

  1. The application must have a search feature that allows users to find rides based on their pick-up and drop-off locations
  2. The search feature must be able to handle partial or misspelled input
  3. The application must have filtering options that allow users to narrow down their search results based on factors such as price, vehicle type, and driver rating

Maps and Location

  1. The application must display a map that shows the user's current location, the driver's location, and the pick-up and drop-off locations
  2. The map must be interactive and allow users to zoom in and out, pan, and view details about different locations
  3. The map must display real-time traffic updates and estimated arrival times

Ride Request and Confirmation

  1. The application must have a clear and easy-to-use interface for requesting a ride
  2. The ride request process must provide clear feedback on the status of the request, such as when a driver has been matched and when the driver is on their way
  3. The ride confirmation screen must provide clear information about the driver, vehicle, and fare

Payment and Receipts

  1. The application must have a clear and secure payment process that allows users to input their payment information
  2. The application must have a confirmation screen that shows the total fare and breakdown of charges
  3. The application must have a receipt feature that allows users to view and download a receipt for their ride

Feedback and ratings

  1. The application must have a clear interface for providing feedback and rating a ride
  2. The feedback and rating interface must be easy to understand and use
  3. The feedback and rating feature must be accessible after the ride

Responsive design

  1. The application must be responsive and adapt to different screen sizes and resolutions
  2. The application must be easy to use on mobile devices and tablets
  3. The application must have a consistent design across all platforms.

Accessibility

  1. The application must meet accessibility standards and guidelines, such as WCAG 2.0
  2. The application must be usable by people with disabilities, such as keyboard navigation, high contrast, and larger text
  3. The application should have options for the visually impaired users like voice-over.

Personalization

  1. The application must allow users to personalize their profile, such as selecting a preferred language, currency, and preferred vehicle type
  2. The application must be able to provide personalized recommendations and promotions based on the user's preferences and history
  3. The application must be able to save the user's preferred pick-up and drop-off locations for easy access.

Notifications

  1. The application must have a notification system that alerts users of important updates, such as when a driver has been matched or when a ride is about to begin
  2. The notification system must be configurable, allowing users to turn on or off different types of notifications
  3. The notifications must be displayed in a clear and easy-to-understand format.

Onboarding

  1. The application must have an onboarding process that guides new users through the process of creating an account and requesting their first ride
  2. The onboarding process must be easy to understand and complete
  3. The onboarding process must provide clear explanations of the application's features and how to use them.

Error handling

  1. The application must have a clear and user-friendly error handling system that provides detailed and actionable error messages
  2. The error handling system must be able to handle different types of errors, such as network errors, payment errors, and validation errors
  3. The error messages must be displayed in a clear and easy-to-understand format.

User Feedback

  1. The application must have a feedback feature that allows users to submit suggestions and report bugs
  2. The feedback feature must be easy to use and accessible from multiple screens
  3. The feedback feature must provide clear instructions on how to submit feedback and what type of feedback is accepted.

List of screens that may be required for a ridesharing application:

  • Login/Registration: Allows users to create an account or log in to an existing account using their email, phone number, or social media account.
  • Home: Displays the map, pick-up and drop-off location fields, fare estimation, and the option to request a ride.
  • Ride Request: Allows users to request a ride by entering their pick-up and drop-off locations, selecting their preferred vehicle type and payment method.
  • Ride Confirmation: Confirms the ride details, driver and vehicle information, and fare.
  • Payment: Allows users to enter their payment information and process the payment for the ride.
  • Receipt: Allows users to view and download a receipt for their ride.
  • Profile: Allows users to view and edit their account information, such as contact information, payment methods, and ride history.
  • Driver Profile: Allows drivers to view and edit their account information, such as vehicle information, availability, and earnings.
  • Feedback: Allows users to rate their driver and provide feedback on their experience.
  • Settings: Allows users to adjust various settings such as notifications, language, and privacy preferences.
  • Onboarding: A step-by-step guide for new users to understand how to use the app and its features.
  • Push Notifications: Informs users of the status of their ride request, when the driver arrives, and any updates to the ride status.
  • Admin Panel: Allows admin to view all the rides, drivers, and Users, add/remove/update any user or driver, view all the feedback and ratings, and view all the financial transactions.
  • Ride History: Allows users to view their past rides and associated information, such as driver, pick-up and drop-off locations, fare, and rating.
  • Scheduled Rides: Allows users to schedule rides for future dates and times, view the status of scheduled rides, and cancel or modify them.
  • Carpooling: Allows users to request a carpool ride and select the number of seats they require, also allows to see and join existing carpools.
  • Car rental and car sharing: Allows users to rent or share a car using the application, view the availability, pricing, and location of the vehicles
  • In-ride entertainment: Allows users to access in-ride entertainment options like music, news, and podcasts, control the in-ride entertainment options through the application, rate and provide feedback on the in-ride entertainment options
  • Referral program: Allows users to invite friends to join the service, share a referral code, and receive rewards for successful referrals
  • Driver Dashboard: Allows drivers to view available ride requests, accept or reject them, view their earnings, and manage their availability status.
  • Car Management: Allows drivers to add, update, or delete their vehicles information, check their vehicle status, schedule maintenance, etc.