关于软件开发的几点个人体会

首先看一下这幅漫画:

我就不在这里显示了,就是网上盛行的那幅,一棵树,一个秋千,尤其是销售顾问描述的发光的沙发,很有才。图片免。

明确——明确要干什么?要建设某某综合管理系统,是因为有此需求,明确用此系统完成何种任务,所以在开发上经常讲:解决方案-解决某个问题的方案,所以要明确问题是根本所在。“以其昏昏,使人昭昭”是坚决要不得的。(1)最终用户要明确自己要什么?(2)需求分析师要明确用户要的是什么?如果最终用户不知道或者描述不清楚自己要什么,需求分析师有责任和最终用户确定一个明确的需求。(3)程序员要明确自己将要开发什么东西。(4)测试人员要明确自己要测试的产品是一个什么样的才符合标准,有标准可以依据。根据个人喜好来变更需求是要不得的。(5)部署培训人员要明确客户是否得到了他想要的东西。可以作为一个反馈的环节。

计划——说白了就是某某系统何时开工竣工, 什么时间干什么活。软件企业做开发:(1)缩短开发周期最明显的就是能降低成本。(2)开发周期的确定很大程度上是由客户定的,客户准备什么时间使用该系统,项目承建企业就要在预定日前完成,并有合同制约。(3)按时保质的完成项目需要“明确”这个条件作为基础,如果客户给出需求,中间有需求变更,这些都要折算开发周期,严重影响开发周期的,双方需要协商解决。对于企业内部的子部门,即使没有开发周期的限制,我个人认为详细的开发计划还是必要的,从而保证开发的时效性。凡事预则立。

创新——对于软件企业所开发的系统并不一定是其所熟悉的行业,要有快速学习的能力。并且要敢于接受未曾接触过的挑战。创新不是说每天去接触新的东西,在一个新的系统中偶尔做出一个亮点的东西,对于软件企业可以作为短期的卖点。平时注重内功修为,必要时方可出奇制胜。不闭门造车,不固步自封。

交流——与客户的交流、与调研人员的交流、与开发人员的交流以及他们之间的交流。交流是一门艺术,可以从中汲取所需的知识,共同进步。另外在交流比较少的团队,最简单的例子就是对同一个术语持不同的理解,都会给开发带来很多麻烦。

几点个人想法:

第一、强调需求。强调需求分析在开发中的地位,在需求分析阶段至少应该有《用户需求说明书》作为此阶段的里程碑文档。在开发之前应该有至少一次的阶段性评审,评审人员至少应包括一名有决策性的用户和最终使用的用户、需求调研人员、项目负责人员。

第二、合理方案。为了树立在软件方面的权威,就要求我们做事情必须要严谨,要加强学习,增强业务能力和专业技能。对于用户提出的一些不合理的想法应该果断的委婉拒绝。果断的意思是必须拒绝,委婉是拒绝的技巧。对于用户描述不清楚的需求,应该帮助用户制作出可行的解决方案,并最终让用户接受。需求分析人员很多不从事开发,但是很少有不懂开发的。

第三、实用、适用。不但是按照用户需求开发,更应该让用户舒适的实用。Google suggest输入前提示功能无论是不是用户的需求,它实用也很适用。伴随着web2.0的发展Ajax的异步刷新的发展,很多富客户端的东西诞生,使B/S程序获得新的动力。但是我们在考虑开发一个系统的时候不一定非的盯着B/S程序不放。也许某个系统用C/S的程序完全能够解决问题。某项语言对某个领域都有他的特性。比如当初最早做portal的是python的zope,并非流行的java或者c#,所以从多方面权衡,一家专业的软件企业会考虑学习python。并不一定使用他们熟悉的语言。我们团队都实用.NET平台,在具体的业务需求下我们可以从成本考虑选择一个较合适的平台开发。

第四、第一印象,和实用、适用类似。第一印象是在初次使用的时候给客户留下的感觉。软件产品选用精美的包装,使用CD或者移动存储设备存储,这是对开发企业的包装。程序界面才是对程序的包装,然后是用户体验,然后才是真正的程序代码,代码的优劣是数据达到一定程度的时候才能显现的。举个例子来说:很多网站的留言本下面是编辑区,输入提交之后,是把新发布的放在最后呢?还是放在最上面。如果有分页如何处理?但是用户第一眼看到的是你的界面是不是漂亮,第二是不是把我发布的信息让我迅速的看到,第三才是程序是否稳定、健壮。

第五、模糊分工。我们不得不承认我们是小开发团队,不可能分工非常明确具体,所以希望每个人都以一当十。即使比较大的企业也是类似情况,为了提高工作效率,很多软件企业都分成开发小组,每个小组也是几个人,所以说我们可以算是一个开发小组。程序员不了解色彩没关系,至少要了解div+css,至少能够学着处理简单的图片。美工不了解程序没问题,至少应该知道html标签。测试人员不单单是黑盒测试,至少了解要白盒测试。需求分析不是转告用户的需求,而是提炼用户的需求。

希望开发过程中能够有:①项目启动报告:项目开发之初对整个项目做出总体的规划,时间,人员,开发环境,部署环境,设置项目进展的几个关键性里程碑。使用工具:Microsoft project 2003或word模板文档②用户需求说明书:需求分析师前期调研的产品,由阶段性评审确定。内容应概括描述系统包含的模块以及模块间关系以及相应接口。使用工具:word

用户详细规格说明书:需求分析阶段的最终产品。有阶段性评审确定。内容包括系统的模块,模块间关系,接口,每个功能的前置后置条件。使用工具:word、viso,或其他建模工具

③数据库设计:根据用户详细规格说明书设计数据库。使用工具:Power Design或其他

④软件代码产品:根据数据库设计的数据库和用户详细规格说明书开发程序。工具:待定

⑤测试阶段:根据用户详细规格说明书测试,不单纯白盒测试还应注意黑盒测试。工具:待定⑥涉及的发布形式,是否加密发布(光盘、包装、培训手册等)项目验收标准。

综上所述,我个人认为一、应该注重需求,允许需求变更,但要控制变更。需求分析不能完全听客户的,客户的未必是对的。二、产品要实用,但是不可否定在这个有特色的国度,漂亮的界面还是需要的。注重一些比较花哨的卖点,做产品还要跟紧跟主流概念,形成卖点,这是营销的范畴了。三、让所有参与项目的人看到模型,需求调研阶段给出可以提高其工作效率的解决方案,有模型,甚至有草图。四、规范开发代码,多个程序员在都理解业务的前提下应该书写大体相同的代码。五、开发过程最好也是分期分模块开发,软件开发一般是一个漫长的过程,用户希望在短期内见到东西。所以软件要总体设计,分期开发。同时可以将问题分期解决,不至于到上线后要大规模修改。六、产品部署维护的界定。那些是我们该做的,那些是我们友情客串的,那些需要付款解决的。以上几点不单纯是从技术角度考虑,因为项目的开发一般都有合同,前期的方案、需求书、甚至草图以及验收报告都是合同的一部分。

以上仅是我的个人工作经历的内容和想法,有精华,有糟粕,请领导指正。

转载于:https://www.cnblogs.com/yiyou609/archive/2008/11/07/1328915.html

关于软件开发的个人体会相关推荐

  1. 软件开发实训需要用到的算法和结构_软件开发实习心得体会

    软件开发实习心得体会 [篇一:软件工程实训心得体会] 软件工程实训心得体会 软件工程实训心得体会一:软件工程实训心得体会 这次软件工程实训是从 2010.12.26 号开始的,截至 2010.12.3 ...

  2. 制作“产品录入系统” 软件开发心得体会

    用Unity制作"产品录入系统" 数据上传LeanCould数据库 软件开发的成长与问题 半个月之前我和一位同学在老师那里接了我们的第一次真实项目,经过半个月的艰苦奋斗与废寝忘食, ...

  3. 开发标准化软件组件能让程序员在大城市过上体面的生活 -- 多系统用户权限管理标准件开发销售心得体会...

    其实很多人都有顾虑,选择程序员这个行业是否有前途?是否可以长久?我是78年出生的,现在算算已经35岁了,虽然在同学里算不上最成功的,但是也足够不是最差的.生活中该有的都有了,虽然身体没往日那么强壮,但 ...

  4. 学习swing鼠标点击事件心得体会_西门子COMOS软件开发定制学习8-查询列表间的数据交互...

    ​本篇在西门子COMOS软件开发定制学习6-管理界面定制基础上定制,简单介绍两个查询列表之间的数据交互. 实现效果: 在左侧列表中选择某一设备,右侧列表自动根据所选设备,显示该设备相关的设计图纸(如P ...

  5. 从开源软件开发中体会到的心得

    Mitchell Hashimoto 是一名开源软件工程师.由他托管到 GitHub 上的 开源项目 Vagrant,是一个用于创建和部署虚拟化开发环境的工具.近日,Mitchell撰文讲述了在开发 ...

  6. 软件开发项目风险管理的几点体会

     参与过大型软件项目的人都会认识到许多事情都可能出错,一但出错就可能给项目带来危害.损失或其它不利影响.风险是在项目中发生的一系列事件或不利结果的可能性.软件开发是一项 高风险的活动,在项目开发过 ...

  7. 彼之蜜糖,吾之砒霜——聊聊软件开发中的最佳实践

    作者:sherrywasp https://www.cnblogs.com/sherrywasp/p/9436623.html "描述一个事物,唯有一个名词定义它的概念,唯有一个动词揭露它的 ...

  8. 登上软件开发的和谐号

    项目越来越充实,开发队伍也逐渐壮大,虽然进度还勉强能跟上,但在团队内和团队间的协作上还是存在着一些既定或者潜在的问题,这些问题也影响到了项目的质量和进度,而当谈起这些问题的时候,往往又会出现互相扯皮的 ...

  9. .NET软件开发, 你应该知道 (整)

    1. 线程与进程的区别?       多线程共存于应用程序中是现代操作系统中的基本特征和 重要标志.用过UNIX操作系统的读者知道进程,在UNIX操作系统中,每个应用程序的执行都在操作系统内核 中登记 ...

  10. 高质高效软件开发组织能力模型

    背景 至今,我在Motorola网络部工作超过了5年,所在的产品线也是采用统一软件开发过程和敏捷思想(但不是SCRUM)来组织软件开发活动的,但这5年多的工作经历从未引起我象微博上对于SCRUM话题的 ...

最新文章

  1. 将jar包部署在docker上,将jar包打成镜像,使用docker部署jar包
  2. 三十八、页面分配策略
  3. 【干货分享】dos命令大全
  4. Mac 技术篇-修改默认的python版本,mac最新版Python3.7.4的安装配置
  5. /dev 设备文件属性解读
  6. 启动mq 在虚拟机中_记在使用rocketmq client客户端过程中踩到的坑
  7. java王大拿谢大脚_《乡村爱情1》:“王大拿”赵本山有3大亮点,追谢大脚根本不算啥...
  8. Java中运行Shell for Android
  9. 【iOS开发-74】解决方式:Xcode6下利用preference保存数据,终于的plist文件在哪里?...
  10. python入门——P40类和对象:一些相关的BIF
  11. mt4 谐波_MT4指标AB=CD Dashboard — AB = CD 谐波模式仪表盘指示器
  12. 前后端分离实现excel批量导入导出功能
  13. seo从入门到精通_SEO入门书籍推荐:从入门到精通,新人必看的3本书
  14. 附件英文计算机英语,详情请参见附件的英文说法
  15. 苹果商店App Store审核指南中文版(14-15-2016最新)-附:2015年App Store审核被拒Top10(官网)+被拒的23个理由(中英)
  16. 长江游艇俱乐部租金问题
  17. 【开发历程】STM32F4之SHT31-DIS温湿度传感器完整学习历程(附模块化程序代码,带详细注释)
  18. 油气管道供应可视化数据大屏:连点成线,打破信息孤岛
  19. C# 窗口关闭再次确认及取消
  20. Modbus的基础学习

热门文章

  1. 最流行的国家级域名是什么?不是.cn 也不是.uk
  2. linux之使用cron,logrotate管理日志文件
  3. [style] visibility
  4. 取出大文件里面的一部分数据
  5. linux下 vim修改文件后如何保存
  6. API 的5 大身份验证安全隐患
  7. Spring Boot 学习笔记,这个太全了!
  8. 浅谈web架构之架构设计
  9. 19 个如此好玩有趣的 Linux 命令,你玩过几个呢?
  10. 29 条运维工程师必会实用 Linux 命令