如果你是开发人员:
1.你开发中按软件工程做了吗?
软件工程,这对软件开发员来说是多么熟悉的字眼,但其中的内含你又知道多少,再进一步说,在开发中按软件工程来做的又有多少。大家常在网上听到一些程序员在抱怨说:"我加班加点的写了10万行的代码,所以老板把我给开除了。"这话扎听有点好笑,但细细一想这是他的悲哀。他写的代码虽多,可是关键的又有多少。如果里面的代码只要有80%的是关键的,我想老板是决对不会开除他的。问题出在10万行代码中有多少是关键的。先不说写这10万行代码所开的时间了,就说以后的维护问题,要是你到一个公司,老板首先要求你看完这10万行代码。我想你第一想到就是走人,第二想到的还是走人。因为对于一个没有按软件工程来进行开发的程序,不要说是这么多的代码;那怕是几十行、几百行,读起来也是很难受的事。所以得好好按规定《软件工程》办事。说这些只是想让大家静下来想想,你在开发中按软件工程做了吗!
2.你是先写文档再写程序的吗?
一个好的程序是先写好设计文档再进行编程的,在设计文档的指导下,才能写出安全的代码。在文档的指导下,这样写出来的程序至少不会出现写了10万的代码还被老板开除的情况。如果你不写文档,一开始就写程序,这样你就不会按已设计好的路线走,而是想到哪写到哪。小功能还好说,要是大功能,你想想等你写下一个时,回过头来看原来写的,你早就不知所云了,那时你就觉得好像在云里雾里乱走,修改的代码也就更不安全了。我所说写文档不是说很正规的,那怕你只用一张搞纸划上几画也要画点出来(这是对小功能来说的)。对于大的程序来说,你就必须正规的写了。因为这样才能详细的记下你的设计思想,如果开发一段时间后,感觉须要对一些功能进行修改或**时,记住别删除原来的,而是在下面进行变更说明。这样再次看文档时你就会更清楚为什么要这么做的原因。一看就明白不是多好。总比你去再想以前的设计花的时间要少,如果删除原来的设计思想,当你再次看修改或变动的功能时,你可能会对其不理解。这是多么可怕的事呀!我想作为程序员应该知道文档的重要性。可是在一些小公司,先写文档后写程序的开发员又有多少。要成为一个好的程序员大家想想自己该怎么做的吧!
软件项目管理问题:
1.现代的软件开发,技术不是关键:
随着日益增长的软件需求和软件系统功能的增强,过去一个人开发的历史以不复存在。现在单枪匹马写程序也只是一种娱乐。我们一般开发的系统都是一个小组才能完成的。所以管理才是开发出好的软件的前提条件,没有管理一定出不来好的软件,当然有管理也不一定出软件的。一个成功的软件不一定是最好的技术,但在它背后一定有一个好的管理。所以现在的软件开发已不像从前把技术放在第一,而是该把管理放在第一位。我在网上看到一篇关于中国软件和印度软件的比较。我现在记的不是太多,但对我影响最深的是他们会去权衡技术和开发效率问题。如现在开发一个软件,用户要求去在三个月内完成,你在做系统分析时也认为在三个月能完成。但你没有考虑到一些细节,你写完系统的总体设计,在进行详细设计时碰到要建一张不是太大的路由表。这时大多数国内的设计人员就会想用什么算法,去花很多时间去设计研究新的算法和技术,而人家首先考虑的是系统的运行环境,而这个软件设计了是在(CPU:1.1G,内存:512M)中运行,用户也没特意提出其运行效率要求。所以人家就在内存中开一个大数组来对这个路由表进行操作。从这点看,人家注重的是软件的整体,而不像国内大多数据设计员那样把个体放在首位。把软件设计的整体放在首位,而不去花太多的时间在不一定成功的技术上。如果花太多的时间在技术上去,这将对系统的按时完成带来影响。我也不是说不该研究技术,我只是说开发中应当以全局为重。如果要加入新的技术,必须在分析时就预算其所需要的时间,并设置技术风险管理。如果风险太大就应当取消用这项技术,改用其它的已成功的技术代替。风险管理这是近来才提出的软件管理方法。它对我们的软件项目有着很好的控制作用。