Okay, before we dive into the world of web application development, we need to lay some groundwork. We're starting with the crucial step of information gathering and requirement definition. Why is this so important, you ask? Well, imagine trying to build a house without a blueprint. Sounds disastrous, right?
To ensure that no piece goes missing and to avoid any misunderstandings between the stakeholders and the development team, it is essential to define the requirements first. Although there is a vast world of requirements to explore, in this article, we intend to focus on three main ones: business, functional, and non-functional requirements.
Business Requirements
Business requirements outline the high-level needs, objectives, and goals of the application. In essence, they explain what the application is expected to achieve. Using the Airbnb application as an example, the business requirements might include:
- Providing a platform for property owners to list their spaces for short-term rental.
- Enabling travelers to discover, compare, and book available listings.
- Create features that allow for building a community, such as user profiles, reviews, and a host-guest communication system.
Functional Requirements
Functional requirements detail how the application will operate and fulfill its business requirements. They are explicit and describe specific behaviors or functions of a system. For an Airbnb-like application, functional requirements might include:
- Allow users to register using an email, social media account, or phone number.
- Enable users to search for properties based on location, date, price, property type, and amenities.
- Enable users to save favorite properties to a wishlist for future reference.
Non-functional Requirements
Non-functional requirements pertain to the ‘behind-the-scenes’ aspects of the system, defining how well the application performs under specific conditions. They don’t directly relate to specific functionalities but rather to the operation of the system as a whole. For an Airbnb-like application, non-functional requirements might include:
- Browser Compatibility: The application must be compatible with the latest versions of popular web browsers (e.g., Chrome, Firefox, Safari, and Edge).
- Responsive Design: The application must adapt its layout to various screen sizes, from mobile to desktop, ensuring a user-friendly experience.
- Date and Time Format: Time must be displayed as HH:MM (24h), and dates as DD Mon YYYY (e.g., 19 Apr 2023), or without the year when specified by design.
Comparative Table of Requirements for Airbnb app
Type | Definition | Examples |
|---|
Business | What the application aims to achieve | Listing platform, Booking system |
Functional | How the application achieves its goals | Email registration, Property search by location |
Non-Functional | Operational criteria for the system | Date and Time Format, Browser Compatibility |
Collecting and defining requirements is the first step in the development of an application. Business requirements provide a high-level view of what the application aims to accomplish. Functional requirements lay out how the application will achieve these goals through specific features and functionalities, while non-functional requirements establish the quality and operational criteria under which the system must operate.
Together, these requirements create a comprehensive feature list for the development team to build an effective and efficient application.
Strategic artifacts: The link between Ideas and Implementation
As we move further along the stages of the software development process, we transition to creating representations of user behavior scenarios. These meticulously gathered requirements act as a guiding light, linking the initial concepts to the finished web product. While there are numerous artifacts that can be utilized in the development process, our team prioritizes three essential artifacts for successful development: User Stories, Wireframes, and Entity Relationship Diagrams.
These artifacts are suitable for most applications. It is imperative to follow this sequence rigorously; otherwise, it can potentially compromise the integrity of the final product. Starting with the User Stories, we establish a clear and structured development workflow. In the following sections, I illustrate these key points further, using Airbnb as an example.
User Stories
User Stories - these are simple descriptions of features or functionalities told from the perspective of the individual who desires the capability. User story mapping allows us to deeply understand and empathize with the user's interactions with the application.
Search property |
As s | guest user |
I want to | be able to search for available properties in a specific location |
So that | I can find a suitable place to stay during my travel |
Acceptance Criteria:
- The user should be able to enter a specific city or area in a search bar.
- The user should have the option to select check-in and check-out dates from a calendar.
- The user should be able to specify the number of guests that will be staying.
- After entering the search criteria, the user should be presented with a list of available properties that match the search parameters.
- The user should be able to click on a property in the search results to view more detailed information, including photos, amenities, price, and reviews.
- The user should be able to filter the search results based on various criteria (e.g., price range, property type, amenities).
- The user should be able to sort the search results (e.g., by price, by ratings, by proximity).
- The user should have the ability to clear the search inputs and start a new search, or modify the current search criteria.
- The search functionality should be fully functional and visually coherent on different devices (desktop, tablet, mobile).
- The user should be shown an appropriate message if no properties are available based on the search criteria, or if an error occurs during the search.