大家都希望自己参与的项目能够成功交付,然而影响每个项目是否成功的因素却千差万别。在此,根据自己的经验,说说一些在适当时候有用的方法,可以从一定程度上提高项目成功率的方法。就像设计模式一样,这些方法的使用过程必然是一个仁者见仁、智者见智的过程。

1. 尽量不要考虑项目外的重用

许多人认为能提高软件的重用度是最好的,然而每个项目实际情况都会有所不同,在设计项目中的某个模块、方法时,过多的考虑项目外的重用,必然会参加项目的复杂度,增加时间的开销。也许有人会说,这会减少下一项目的开销,试问,下一项目是什么项目?有什么需求?各方面有什么影响因素?有谁会在当前知道这一切。 如果真要重用,应该是在项目结束后再将可重用的部分提取出来,经过修改、优化后做为企业的可重用资产,而不是当前项目中的一厢情愿。

2.经常检查项目架构
项目架构通常是在项目实现开始前就已确定的东西,是一个总体的设计。然而,在这时,对项目需求的理解、复杂度的估计对还停留在一个初始阶段。如果在项目开发过程中不随着对项目的理解改进架构,必然让项目中的成员都按错误的方法开发项目。所以,必须经常检查项目的架构,进行必要的重构。

3.重构

有人说,都写了这么多了,再修改不是浪费时间嘛。他可能没有想过,一个下午的重构可以加快以后几个月的开发速度,这节省下来的时间是无法想象的。再者,通过重构,通常能想到更多简单的方法来代替现有的实现,这样的经验,同样可以简化其他模块的开发。

4.避免过度集成,让每个模块只做自己的事

一个常见的例子是,在业务系统中通常会有许多的审批,很多人一下子肯定会想到把审批做成一个通用的模块。这是没有问题的,然而通常的问题是,太多的人将审批结束后的业务处理也放到了审批模块的业务逻辑中,其实,那些是各业务模块自己的事,审批应该只完成审批即可,至于审批结束后怎么办,让该干这事的模块自己去处理。

5.避免过度灵活

设计和代码并不是越灵活越好的。一个常见的例子是,使用泛型时可以使类或者方法操作不同的对象,然而,在 .NET 常用的 N 层架构中,如果一系列的类本来就是针对某个特定实体的操作,就没有必要还指定为泛型,再在使用时指定为使用特定的实体类。这颇有画蛇添足的感觉。

6.减少锦上添花的功能

页面无刷新,更酷的显示效果等等,对于业务系统来说都是些锦上添花的事,如果因为这些而使业务界面非常复杂,给业务处理带来一系列的问题,极端情况是业务处理无法继续时,再漂亮的界面也是无用的。一个忠告时,仅在确保业务处理正确进行的前提下再考虑其他的。这一点有一个前提是与用户进行必要的沟通。

7.适当拆分

这一点与 4 类似。尽量降低每个模块的复杂度,让脑力劳动转化成体力劳动。一个常见的例子是,通常对某个表单都会有增加、修改、删除和查看的功能。但是,前三种操作通常仅在某个功能点上、特定状态和特定权限的人进行操作(也许仅在在系统中的唯一一个界面中)。而查看操作却会分布在项目的各个角落,如果将这四种操作都放在同一界面中,虽然可以减少界面数,但增加的却是这一界面的复杂度,要对各种状态、条件进行必须的判断来进行界面元素的只读设置,这个复杂度的增加是指数级的,而如果将查看拆分开,工作量将是线性的,就算要做10个查看界面,总比复杂度变成 10*10 要容易处理得多,况且还可以组件化。

转载于:https://www.cnblogs.com/chinhr/archive/2007/12/27/1016891.html

简单是一种美:提高项目成功率的一些方法相关推荐

  1. 干货分享!提高项目执行力的六大方法

    在当今竞争激烈的商业环境中,企业成功的关键在于实施高效的项目管理.项目执行力是一个企业能否在规定时间内交付高质量成果的重要因素.为了确保项目最终交付,企业需要采取以下措施提高项目执行力. 1.明确项目 ...

  2. arduino向串口发送数据时掉包_[技术]清楚简单,一种串口触摸屏的开发流程和方法介绍...

    1.什么是串口触摸屏 触摸屏是工业控制上很常见的人机交互部件,很多设备.系统都在使用它,它至少有两个功能:显示,触摸控制. 串口触摸屏是采用串行数据通信协议进行数据交换的触摸屏,具有简单.可靠.易于操 ...

  3. 两种查看表空间使用情况的方法

    本文简单介绍两种查看表空间使用情况的方法. 方法一. SELECT c.tablespace_name "表空间", ROUND(a.bytes/1048576,2) " ...

  4. Java 面试就业指导,100 % 提高面试成功率

    转载自   Java 面试就业指导,100 % 提高面试成功率 想要成为合格的Java程序员或工程师到底需要具备哪些专业技能,面试者在面试之前到底需要准备哪些东西呢? 本文陈列的这些内容既可以作为个人 ...

  5. 【页面传值6种方式】- 【JSP 页面传值方法总结:4种】 - 【跨页面传值的几种简单方式3种】...

    页面传值--最佳答案6种方式: 一. 使用QueryString变量 QueryString是一种非常简单也是使用比较多的一种传值方式,但是它将传递的值显示在浏览器的地址栏中,如果是传递一个或多个安全 ...

  6. 2020年,产品经理如何提高求职成功率?

    本文整理自 线上活动 | 2020年PM如何提高求职成功率?,分享嘉宾为司马特小分队,现担任丁香健康产品负责人,拥有近十年产品经验.接下来我们就来看看分享的精彩内容吧~ PS:线上分享每两周一次,下次 ...

  7. 如何提高项目交付效率

    道法术出自老子<道德经>,道,是规则.自然法则,上乘.法,是方法.法理,中乘.术,是行式.方式,下乘."以道御术"即以道义来承载智术,悟道比修炼法术更高一筹." ...

  8. 如何提高项目估算精准度 关键有3方面

    软件规模可以用多种方式进行估算,但是用功能点估算方式更准确,而自动估算让估算更快速,我们以CoCode需求分析工具为例来说明,如何提高项目估算精准度? 一.调整功能点数 要提高项目估算精准度,首先应该 ...

  9. 如何提高项目估算精准度?关键看5大影响因子

    如何让项目估算工作更加精准,我们需要重点关注5大调整因子. 1.功能点调整因子 首先需要对功能点因子进行调整,区分不同类型的系统特征值. 因为不同的系统,对项目开发的影响程度不同,一般我们把系统特征值 ...

最新文章

  1. 聊聊Unsafe的一些使用技巧
  2. Unity进阶技巧 - RectTransform详解
  3. A-Webkit第五章:添加成绩
  4. 用java调用oracle存储过程总结二
  5. 【Tiny4412】Uboot常用命令
  6. linux要求关闭httpd服务,Apache2.4.4的安装及实现service和chkconfig系统控制httpd开启关闭...
  7. zookeeper删除节点的权限_Zookeeper使用超级用户删除带权限的节点
  8. opengl 安装_一步步学OpenGL(34) -《GLFX,一个OpenGL效果库》
  9. Android的简介
  10. 接口与抽象类的区别和联系
  11. Linux AIO的新归宿:io_uring(介绍,系统调用)
  12. 计算机专业毕业设计题目大全
  13. web学习笔记1-VM虚拟机配置windows,IP,DNS,DHCP
  14. 我对Pass、SaaS、IaaS的理解
  15. ensp动态路由ospf基础配置
  16. rainmeter雨滴皮肤——万花筒
  17. Mysql闪退无法打开,试试这个方法
  18. 想要学习C++,就必须要学习C语言吗?
  19. 损失 18 万,获刑 7 年,又又又是程序员删库!
  20. 2019第九届蓝桥杯大赛个人赛决赛真题C语言B组——调手表

热门文章

  1. python time strptime_Python中操作时间之strptime()方法的使用
  2. maven重新指定仓库存储路径
  3. 第一行代码学习笔记第十章——探究服务
  4. 字符串数组 和 字符串指针 的区别
  5. mysql memory leak_解决memory leak问题
  6. openhtmltopdf 图片_30w太阳能路灯价格及图片
  7. java idle,java – IMAP IDLE库
  8. epoll 接口以及原理说明
  9. C/Cpp / STL / 各个实现版本的说明
  10. oracle 表分析 影响,oracle 表分析