> 需求分析是完整项目开发的关键环节,也是技术人员往往忽视的。
## 为什么要做需求分析?
### 正确的做事和做正确的事的区别
首先,我们想做一件事,需要我们的大脑指挥和体力实施。就是要经过意识和行动才能有结果。想象虽然看上去没什么直接产出,但是也是至关重要的。
意识决定行为。错误的意识带来的只能是错误的行为,然后导致错误的结果。
要想正确的做事,首先的前提是保证做的事一定要正确。
如果我们要做的事,从预期结果上就和我们的目的无关,那么这件事就不是正确的。
正确的做事不一定是在做正确的事。只是把一件事正确的完成了。
做正确的事,才是先有正确的事,然后才是在做。
### 需求分析是一个不断明确目标做计划的过程
我们拿到一个网站需求,从大的方面来讲,他有一些类别。比如说是博客、门户、论坛、影视站,企业站等。
这些类别然后对应一些常规的基本需求。比如博客要能发博文,要能评论;门户分类要全;论坛要访客和用户活跃、能发帖、做任务等。
然而我们自己去做,不可能 按着一个类别找一个网上的通用程序就完了。比如wordpress或者discuze。
肯定有一些需求别人没有,必须我们自己去实现,这样才能达到我们的价值。我们创造,我们创新,我们帮客户解决了特殊问题。我们才能进步。
### 需求分析能帮我们探讨计划的细节的可行性,以及对应的技术方案是什么。
### 需求分析可以确定做什么
以前的软件工程里专门有需求分析这一阶段,并且大项目应该有产品经理去和甲方讨论明确出一个需求,立项时写入合同里。
这样做的好处是避免后续的纠纷,我们提供什么和我们要做什么是两回事。我们要做的是义务,我们提供的是能做到的。
有时候我们没义务,甲方总是提需求以外的,让你完成。你那觉得能做不想做又抹不开面子,但做了又耽误了进度。
这时候就出现分歧,大家可以回到原始探讨过的需求上来。
### 需求分析能帮我们理清思路,节省时间。
大家经常有这么一个错觉? 技术往往实现起来很容易。做一些改动,不会花太多时间。
错错错! 每一次改动相当于扼杀技术人员的成果和他们的积极性。
复杂逻辑间存在相互依赖,并不是几行注释就能随便删减一个功能的。
还得为系统稳定性做修改。变动的需求,往往其考虑就是不成熟的。有可能影响后面的扩展性。
有的时候,我们在做需求分析时,可以将一些目标的解决方案列出来,然后和同事讨论,这样找出可能出现的问题及及最优的解决方法。这样当预期问题出现时就不会惊慌失措了。
## 如何做需求分析?
![2015-05-31/556b1eb89c2b8](http://box.kancloud.cn/2015-05-31_556b1eb89c2b8.png)
就像我上面画的图,我们可以借助Xmind软件,整理一个思维导图。
首先要做的功能,比如“各种类型的post content的存储和显示”、“搜索”、“后台”。
然后思考一些“难点”和逻辑性东西,比如系统里对象。
最后进行数据库设计,将所有表的表名和字段确定。同时验证下数据库设计是否满足所有需求和难点解决方案。
记住xmind是你的思路体现,如果有新的想法要随时更新,方便以后随时回忆。
- 序
- 前言
- 内容简介
- 目录
- 基础知识
- 起步
- 控制器
- 模型
- 模板
- 命名空间
- 进阶知识
- 路由
- 配置
- 缓存
- 权限
- 扩展
- 国际化
- 安全
- 单元测试
- 拿来主义
- 调试方法
- 调试的步骤
- 调试工具
- 显示trace信息
- 开启调试和关闭调试的区别
- netbeans+xdebug
- Socketlog
- PHP常见错误
- 小黄鸭调试法,每个程序员都要知道的
- 应用场景
- 第三方登录
- 图片处理
- 博客
- SAE
- REST实践
- Cli
- ajax分页
- barcode条形码
- excel
- 发邮件
- 汉字转全拼和首字母,支持带声调
- 中文分词
- 浏览器useragent解析
- freelog项目实战
- 需求分析
- 数据库设计
- 编码实践
- 前端实现
- rest接口
- 文章发布
- 文件上传
- 视频播放
- 音乐播放
- 图片幻灯片展示
- 注册和登录
- 个人资料更新
- 第三方登录的使用
- 后台
- 微信的开发
- 首页及个人主页
- 列表
- 归档
- 搜索
- 分页
- 总结经验
- 自我提升
- 进行小项目的锻炼
- 对现有轮子的重构和移植
- 写技术博客
- 制作视频教程
- 学习PHP的知识和新特性
- 和同行直接沟通、交流
- 学好英语,走向国际
- 如何参与
- 浏览官网和极思维还有看云
- 回答ThinkPHP新手的问题
- 尝试发现ThinkPHP的bug,告诉官方人员或者push request
- 开发能提高效率的ThinkPHP工具
- 尝试翻译官方文档
- 帮新手入门
- 创造基于ThinkPHP的产品,进行连带推广
- 展望未来
- OneThink
- ThinkPHP4
- 附录