What are requirements?

Requirements can be a functional/non-functional and implicit/explicit list of features. Either way, they basically get classified as either core needs or good-to-haves for a product or service that will satisfy the customer. The specification varies on the target audience and the type of product being developed by the organization.

In the software industry, once the project is formally initiated and is allocated to a software development team, the first task for the project stakeholder is to gather the requirements. Gathering requirements helps the team to understand the scope of the project, timeline, budget, supported technology, its limitations, number of resources required, features requested, the customer's wish list, and so on.

After the requirements are gathered and documented, the project coordinator (who acts as a liaison between the end user and the software development team) gets it approved from the end user. On receiving the go-ahead for the development phase, the requirements are analyzed and broken down into smaller work packets that become tasks for the team. Jira provides an effective way to help the team to organize and manage these tasks.

Jira was built as a ticket-based system, where each task is represented as a ticket. Thus, requirements that are tasks for the team become a ticket in Jira. Jira also allows for the classification of tasks utilizing issue types (which basically helps in categorizing requirements to segregate work). Every Jira project has supported issue types by default. Now, if you're wondering whether your project supports an issue type, this can be confirmed on the first screen when creating a new project:

The default Issue Types that are seen in the preceding screenshot are Bug, Task, Sub-task, Story, and Epic. Jira also provides flexibility to customize the supported issue types for a project by adding, editing, and/or deleting issue types, as well as workflows. If the project or organization requires further segregation and classification of items in the project beyond what's available by default, then team members can create their own issue types as well, which we'll see in the following section.

In Chapter 9, Requirement Management, we'll learn how to configure Jira issue types as requirements for testing. We'll also use these issue types to link with relevant test cases using Jira plugins.