- Django Design Patterns and Best Practices
- Arun Ravindran
- 347字
- 2021-07-23 19:36:20
How to gather requirements
Innovation is not about saying yes to everything. It's about saying NO to all but the most crucial features. |
||
--Steve Jobs |
I saved several doomed projects by spending a few days with the client to carefully listen to their needs and set the right expectations. Armed with nothing but a pencil and paper (or their digital equivalents), the process is incredibly simple but effective. Here are some of the key points to remember while gathering requirements:
- Talk directly to the application owners even if they are not technical savvy.
- Make sure you listen to their needs fully and note them.
- Don't use technical jargon such as "models". Keep it simple and use end-user friendly terms such as a "user profile".
- Set the right expectations. If something is not technically feasible or difficult, make sure you tell them right away.
- Sketch as much as possible. Humans are visual in nature. Websites more so. Use rough lines and stick figures. No need to be perfect.
- Break down process flows such as user signup. Any multistep functionality needs to be drawn as boxes connected by arrows.
- Finally, work through the features list in the form of user stories or in any easy way to understand the form.
- Play an active role in prioritizing the features into high, medium, or low buckets.
- Be very, very conservative in accepting new features.
- Post-meeting, share your notes with everyone to avoid misinterpretations.
The first meeting will be long (perhaps a day-long workshop or couple of hour-long meetings). Later, when these meetings become frequent, you can trim them down to 30 minutes or one hour.
The output of all this would be a one page write-up and a couple of poorly drawn sketches.
In this book, we have taken upon ourselves the noble project of building a social network called SuperBook for superheroes. A simple sketch based off our discussions with a bunch of randomly selected superheroes is shown as follows:

A sketch of the SuperBook website in responsive design. Desktop (left) and smartphone (right) layouts are shown.
- Learning Microsoft Windows Server 2012 Dynamic Access Control
- MySQL 8從入門到精通(視頻教學版)
- Mastering Selenium WebDriver
- 數據結構(C語言)
- Internet of Things with ESP8266
- Arduino可穿戴設備開發
- Practical GIS
- PyQt編程快速上手
- Instant Apache Camel Messaging System
- Angular Design Patterns
- HTML5移動Web開發
- Learning Kotlin by building Android Applications
- SQL Server on Linux
- C# 7.0本質論
- Java Web動態網站開發(第2版·微課版)