- 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.
- Mastering Concurrency Programming with Java 8
- Learning Python Web Penetration Testing
- Android項目開發入門教程
- OpenCV實例精解
- Android Studio Essentials
- HTML5 Mobile Development Cookbook
- RTC程序設計:實時音視頻權威指南
- SEO實戰密碼
- MATLAB實用教程
- 區塊鏈底層設計Java實戰
- 移動互聯網軟件開發實驗指導
- Learning Node.js for .NET Developers
- SpringBoot從零開始學(視頻教學版)
- INSTANT JQuery Flot Visual Data Analysis
- Android智能手機APP界面設計實戰教程