Many times when you’re eliciting requirements, you may be asked the question:
“We need to add a textbox on this page. How long will it take?”
Well… what’s your answer? How do you follow-up? To aid your requirements analysis journey, here’s a checklist that may help you predict the effort involved.
To start off, let’s take a simple task, such as “add a textbox on this page” and see what it could potentially involve. These requirements may apply to other web components of a web page.
- Should the TextBox have a label? Above it? To the left of it?
- Is it a required field?
- Should it be pre-populated?
- Does it require AJAX functionality? Autocomplete? Retrieved from a defined set of data?
- Is the TextBox already conveyed somewhere else in the form? (I’ve had times where the stakeholder didn’t know that the field was already in there. )
- Where on the form should it be? (This is particularly important if you’re dealing with a form wizard. )
- Should the data be tracked via some analytics tool?
- How many characters are allowed?
- Inline validation or validation after form submission? Error message at the top of the form?
- Should the TextBox have inline help?
- How prominent should it be? Above the fold?
- Does this TextBox show up to all users or just Administrators? (Depending if there’s a user privilege hierarchy in a CMS. ) What user roles are allowed to see this?
- Does the data gathered in this TextBox go against the business rules of another product in the company? (For example, the TextBox could be prompting for your social security number, while Finance’s policy strictly forbids it. The stakeholder you may be dealing with may not know this.)
- Does this have to be conveyed through reporting?
- What should the microcopy be for the label, for the error message, or text in the TextBox if it’s prepopulated?
- What’s the translation in another language? (Ideally, find a native speaker; Google Translator may not be sufficient. )
- Do you need to modify application code to fit this TextBox in? Which class/file? New method? New property?
- Do you need to add a new database column for this TextBox? Is there a column that you can reuse? Which table should you put it in?
- Does this database column need an index? A new table? Referential integrity?
- What data type is it? Varchar? NVarchar? Text?
- Does it need to be indexed via a Full-Text Search Engine?
- Does the data from the TextBox need to be in the user’s session?
- Will you need to create new language tokens in your resource file to add the copy for the TextBox and label? Can you repurpose (or should you) existing ones?
- Use CSS3 for styling? HTML5?
- Should any API’s/Web Services be updated because of this?
- Because this is a new field that was not introduced at the birth of the system, what should existing records that now have this new field, be set by default? Null? Empty string? Default text value? ID?
- Does it impact any unit tests? Create new ones?
- Are the Usability, Content, and Business requirements (shown above) met?
- How does it display in various web browsers?
- How well does it do in usability testing?
- Are the changes for this TextBox small enough so that it can be rolled out with the normal scheduled builds?
- If not, when can it be deployed?
- Does the build script or process need to be modified to roll out these changes?
Project Resource Requirements
- Do you have the human resources (developer, designer, usability tester, etc.) to work on this?
- Do you have to update documents (requirements document, project plan, etc.)?
- What is the priority and risk for this project?
- How much will it cost?
That’s just a high-level summary. I didn’t even mention SEM/SEO, branding or design requirements (if applicable). I’m sure you can go to a QA engineer, a content strategist, a designer, or a DBA, and get a break-down of even more details. No doubt that you can dig deeper, but this should put you on the right track.