- 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.
- C++ Primer習題集(第5版)
- Python數據可視化:基于Bokeh的可視化繪圖
- Ext JS Data-driven Application Design
- Three.js開發指南:基于WebGL和HTML5在網頁上渲染3D圖形和動畫(原書第3版)
- C和C++安全編碼(原書第2版)
- C/C++常用算法手冊(第3版)
- Building Mapping Applications with QGIS
- C語言實驗指導及習題解析
- 零基礎學Python網絡爬蟲案例實戰全流程詳解(高級進階篇)
- Cocos2d-x學習筆記:完全掌握Lua API與游戲項目開發 (未來書庫)
- Visual C#.NET程序設計
- 零基礎Java學習筆記
- Machine Learning in Java
- MINECRAFT編程:使用Python語言玩轉我的世界
- JavaScript+jQuery網頁特效設計任務驅動教程