Previous Article in this Series
You have the right people and the right processes to manage projects but… What next?
Requirements Gathering and Analysis
This is the first step in software development but a very crucial step for the success of the project. According to surveys by the Standish Group, 20-25% of projects fail (or are challenged… never mind the terminology… just know that either the vendor and/or the customer is adversely impacted, and that is bad) due to poorly defined requirements.
Requirements must be absolutely clear and signed off by you and the customer.
You must also clearly define what is in scope and what is not to avoid any communication issues later on.
For example, if a requirement is to install and configure a third-party component, it must be agreed upon that issues in the third-party component are not in scope.
This will also help in agreeing on Change Requests, if and when they are requested (it is more likely to be IF than WHEN).
Basecamp is a very simple and powerful tool that can be used for collaborating on requirements and changes. For that purpose, it can and should be used as an alternative to email for all communication needs.
Deskaway is another option for doing the above and seems to have been heavily influenced by Basecamp.
The Writeboards option of Basecamp or the Docs option of Deskaway can be used for documenting the requirements and the functional specs derived from that. This helps maintain versions and can be easily referred to when change requests are discussed.
Celeroo will shortly announce an offering that will help develop web applications cheaper, faster and better. Requirements management will be integral to it in ways different from the above solutions as they deal more with project collaboration and Celeroo deals with software development.
You can subscribe to our newsletter to receive updates on launch dates, features, benefits etc., in addition to notifications on updates in this course.
To maximize the benefits, you should document the requirements and the resulting detailed functional spec such that each sentence (except for summaries) is numbered separately in a hierarchical structure.
For example, requirements should be numbered as:
…and so on.
And, features should be numbered as:
||Sub-feature 1 of Feature 2
||Sub-feature 2 of Feature 2
||Sub-feature 1 of Sub-feature 2 of Feature 2
…and so on.
It is worth the time to break each module into smaller features and each feature into sub-features.
The complexity must be turned into simplicity using this process. After all, you must take baby steps to reach that distant goal; you cannot just jump and get there in one step.
This will also help plan the project because it is much more difficult to estimate a task written as “Invite a Friend module” than to estimate it if it were broken down into steps such as (assume “Invite a Friend” is task numbered 1):
||Radio buttons to select different mail clients (Yahoo, Gmail, AOL, MSN), and a “Get Email IDs” button.
||When the mail client is selected and the button is clicked to get the Email IDs from the selected mail client, the list of IDs is retrieved from the account after submitting the required login information.
||User can select multiple Email IDs from the list. On clicking the “Submit” button, the selected IDs appear in the text area given above the radio buttons.
||On clicking “Invite”, a predefined Email is sent to the selected IDs. The content of this mail is configurable by the admin.
||The Email contains a link to the registration page of the site.
…to estimate a task written as “Site search with ability to search by Blogs, Forums, etc.” than to estimate it if it were broken down into:
||A search text field and a “Search” button that has a drop down are shown.
||The drop down list shows Categories, People, Communities, Blogs, Photos, Videos, and Forums in the order shown.
||The search text field can take any input (alphanumeric and special characters).
||On clicking the search button without selecting any option from the drop down list, a complete site search is done and a results page is displayed.
||If an option is selected in the drop down list, search is done only within that section.
||If there are no search results meeting the search criteria, a message, “There are no results meeting your criteria. Please try again.” should be shown in an Ajax box with an “X” icon at top right of the box to close it.
||When search is done without selecting an option in the drop down list, the results are segregated according to the options shown in section 2.2. For example, if the search term is present in “Categories” and also in “Blogs”, then the results page displays a heading ” in Categories” and 5 results in that section with “more…” link. Then, it will display another heading ” in Blogs” and 5 results in that section with “more…” link. Clicking on the “more…” links takes the user to the detailed search results page where all the relevant results in that section are displayed.
||The detailed results page must show 30 results in one page (e.g., 30 photos or 30 rows of blog post titles with the blogger’s photo thumbnail, etc.). Pagination must be shown thereafter.
||Pagination must be like in Yahoo! Answers with square boxes around numbers. The current page square box will have a different highlighted color based on the site theme.
Whatever you do and however you do, ensure that documentation is not overdone and only the absolutely necessary documentation required to achieve the purpose is created.
And if you think this will work only for a Waterfall SDLC process and not for Agile, think again! You simply have to adapt this to your way of working, but the fundamental principles remain the same…
“…Break the complexity down into simplicity”
“…Be Careful! You must strike a balance between going deep into details and the effort and time it takes to do that”
Disclaimer: We are not related to any of the companies offering the software tools we have referred to in this article.
Next Article in this Series
The most important requirement for a successful project is to define requirements clearly…
No, we are not playing with words (Part 2)