- 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.
- Instant Node Package Manager
- 嵌入式軟件系統測試:基于形式化方法的自動化測試解決方案
- C語言程序設計習題解析與上機指導(第4版)
- Mastering OpenCV Android Application Programming
- Raspberry Pi Networking Cookbook(Second Edition)
- 跟“龍哥”學C語言編程
- 實戰Java程序設計
- Designing Hyper-V Solutions
- PHP+MySQL+Dreamweaver動態網站開發實例教程
- C# 8.0核心技術指南(原書第8版)
- Babylon.js Essentials
- Python從入門到精通
- Python編程:從入門到實踐(第3版)
- Swift iOS Programming for Kids
- Access 2010數據庫教程(微課版)