`
splinter_2
  • 浏览: 57708 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

一位系统分析师的工作经验总结

阅读更多

           谈到项目的需求分析,几乎每个软件开发人员都会为此感到头疼。时间紧任务重流程混乱,客户需求的频繁变动,成为软件开发永远不变的话题。

博客专家Macming近日发布了一篇博客,谈到了在前公司一些项目实施遇见的问题,并分享了他的个人系统分析的经验,其中特别提出的是用户需求分析的“二八“法则,Macming认为:

  “对于一个面向公共(大用户群、非公司内部系统)的系统,要关注最广大的80%的用户,因为另外20%的需求很可能会使另外的80%的人产生困扰;同样大 部 分软件只有20%的功能是经常使用到的,对于互联网公众平台来讲对另外不常用的80%需求的“重视”,只会分散开发人员的注意力,使用户体 验、易用性、可操作性下降,并增加系统复杂性、维护和运营成本;因此要将主要精力放到那20%功能的开发上。”

你对需求分析怎么看?

博客原文:

        刚在一家公司离职,因为公司上市后规模迅速壮大,急于开发几款战略产品支撑,公司高层对我们之前进行的一个项目非常重视,投入巨大。系统开发之初需 求原本很明确,但新的需求总是在开发的过程中不断地被提出,今天来了个推广部经理,明天来了个市场部总监,各有各的想法,并且各个部门、分公司经常找开发 小组开会提出新的需求变更。由于项目经理的“软弱”,我们一般很难拒绝。因为老总总是要先看到做出的效果再提意见,所以项目做的很急,系统框架在刚开始设 计时没有被充分讨论、简化,感觉在后续开发中遇到很多问题,

现已离职,也无所顾忌,特谈一谈对系统分析的看法,总结一下之前的工作的经验,有不当之处请指正。

做需求分析,我觉得最重要的任务是简化业务流程、规则、逻辑;丰富用户体验;

 

0.   尽量将复杂的用户需求抽象成最简单的业务规则、数据库结构来实现。因为需求是不可能一下子就确定的,假设我们刚开始对核心需求的实现方式增加了一点点的复 杂性,比如说多加了一个表,一个耦合字段,那么对于以后的扩展我们就有可能要去制定更加复杂的规则去适应,从而“被逼”消耗更多的工作,使用更加复杂的结 构和业务规则。尤其当需求发生不断变化时,改变这种体系所要花费的代价也会随之几何级上升(因为一般是不可逆的),用户的可操作性也会随之越低,并增加了 其使用上的难度,从而不得不对其进行培训。

 

1.   对于一个面向公共(大用户群、非公司内部系统)的系统,要充分进行“二八“划分;一个系统不可能满足所有人的需求;要关注最广大的80%的用户,因为另外 20%的需求很可能会使另外的80%的人产生困扰;一般人最容易记得7个字以内的句子,同样大部分软件只有20%的功能是经常使用到的,对于互联网公众平 台来讲对另外不常用的80%需求的“重视”,只会分散开发人员的注意力,使用户体验、易用性、可操作性下降,并增加系统复杂性、维护和运营成本;因此要将 主要精力放到那20%功能的开发上。

 

2.   对于核心产品,业务规则和逻辑的设计万不可草率,并且不要集中由“一类”人去做;要从全局的角度制定业务流程,最好一开始就将最终使用和开发者纳入业务流 程、规则、逻辑设计队伍。并充分讨论精简后完成产品的整体构架设计,然后进入编码阶段。综合考量成本/效果的比例,舍弃对系统可能产生混乱的设计,并想办 法最寻找简单的替代方案。而且尽可能一开始就确定数据库的主体框架,而非去制定每一步的细节。

 

3.   对于功能宠大、业务复杂的系统,我认为用户需求接受比在 5:3:2 左右是正常的, 相当于10条需求中有5条可以完全接受的,有3条需要将实现方式略加改变而达目的,但一般有1~2条无法实现是正常的,因为可能会对系统造成较大的复杂性 或不利于扩展,而且很有可能跟现有系统的功能产生冲突。不利于系统结构最简化,增加系统运营成本的不可控风险。

 

4.   当公司的主打产品经历过数次功能扩展、升级后,而造成的构架复杂性、数据库负载、稳定性、可操作性和用户友好度下降达到一定程度时,就应该考虑将关联性不 大的功能分离成相对独立的几个系统,只进行核心数据表进行共享,以此增强各个分系统的可重用和可靠性。从而避免只向一个大型系统输出复杂性,造成可靠性下 降,以及维护、运营成本的上升。

分享到:
评论

相关推荐

    资深需求分析师经验总结

    该文档是一位资深需求分析人员对近十年来对需求分析工作的一些观点和见解

    系统分析和架构设计技术的捷径-系统分析师之路

    内容包括技术讲座、系统分析与建模、项目管理、软件测试、过程改进、解决方案、信息化应用、教育认证和顾问之声共10个方面的知识,全部由活跃在软件领域中的高级工程师编写,是作者的实践经验总结...

    数据分析成长录像

    该文档是在Quora论坛下载的一份一位楼主的经验总结,阐述了如何自学机器学习的流程。

    恶意代码分析实战实验作业

    本书具有极强的实战性,可以说是每一位恶意代码分析师人手必备的经典。特别是每一章后面的配套练习,都是作者以自己的实战经验,结合该章节的内容而设计的,非常值得每一位读者认真练习。但是由于该练习题库在国内...

    单片机系统课程设计16×16-LED点阵.doc

    单片机系统课程设计报告 16*16点阵设计 专 业: 测控技术与仪器 学 生 姓 名: 刘宝琪 韦魏 学 号: 2009024211 2008050528 指 导 教 师: 张秀峰 完成日期:2011 年 12 月30日 目录 一 设计任务 2 二 设计方案 3 1 ...

    asp.net知识库

    应用系统的多语言支持 (一) 应用系统的多语言支持 (二) 自动返回上次请求页面(小技巧) ASP.NET 2.0 控件 ASP.NET 2.0 验证控件新的功能 DataGridView中如何在textbox列中限制输入。 ASP.NET 2.0构建动态导航的...

    了解计算机网络教学设计.doc

    找一位同学来查看本机的IP地址。 生:参与同桌间讨论,倾听同学发言。 六、归纳概括 1、师:请每组的代表谈谈对计算机网络的认识和分类方法。 2、学生代表发言。 3、教师小结: (1)如何理解计算机网络的定义。 (2...

    “信息技术与学科融合”培训心得.doc

    "信息技术与学科融合"培训心得 10月26日我们学校5名教师一起,在教师学校参加了信息化培训,聆听了东师理想的朱 教授、王教授两位名师的讲座。使我对信息化以及课堂教学与信息化深度融合有了新的 认识,通过这次培训...

    Spring技术内幕

    成为一名出色的软件架构师,也许是每一位开发者的梦想。在成长为架构师的过程中,在实践中积累并总结经验固然很重要,但是从现有的成功架构中取经也是必不可少的。本书对Spring的各个功能模块的架构原理和设计思想...

    敏捷技能修炼(Essential Skills for the Agile Developer)

     《敏捷技能修炼:敏捷软件开发与设计的最佳实践》中内容围绕“敏捷式编程”这一主题展开,对每一位敏捷软件开发人员都应该掌握的核心技能和技术进行了深入阐述,总结出了大量最佳实践,提供了一整套最精炼的技术...

    大智慧(通达信)插件(dll)编程源码及讲解

    经过测试,将原示例代码做了注释,并修正了原来代码的一处错误(主要见MyPlugin.cpp)。 只要明白了道理,剩下的工作就看个人发挥了! 所附示例功能还非常简单,只是为了说明编程方法,距实际应用还有非常大的...

    LCD单片机原理课程设计.doc

    自动化专业课程设计报告 《单片机与接口技术课程设计》 班 级 姓 名 学 号 时 间 2012.6.25—2012.6.29 地 点 电信实验中心第六实验室 指 导 教 师 大 连 海洋大学 信 息 工 程 学 院 自 动 化 教 研 室 目录 1....

    互联网时代的软件革命-SaaS架构设计

    内容是互联网领域具有丰富实践经验的8位一线架构师,对于多年SaaS实践经验的总结。对于SaaS领域的业务、设计、开发人员,具有很高的指导价值。本书首先从SaaS的商业价值分析开始,讨论SaaS应用与其它应用最大的差异...

    SEM培训资料.docx

    三、SEM优化需要"创新"但并不是"创造" SEM优化是一个经验和思考并行的过程,在优化进行时我们通常需要借助以下信息: 涉及的行业知识 数据分析结果 网站监测数据 了解行业现状 SEM培训资料全文共16页,当前为第2页...

    php权威编程

    PHP 5首席设计师Andi Gutmans,PEAR创始人Stig Saether Bakken,PHP核心贡献者Derick Rethans三大高手合力而作:本书几乎囊括了PHP 5所有的新特性,包括PHP 5所有的新功能,PHP 5的面向对象编程方法和设计模式,以及...

Global site tag (gtag.js) - Google Analytics