回顾以前的开发历程,偶得出一个属于自己的经典经验,那就是,开发流程根据项目规模和团队成员情况而定
OK,不相信,我举一个例子,现在要写一个Helloworld,请问您会选择RUP还是Agile?
很简单,答案不言而喻,那就是直接写了
下面是我的一些总结,应该有利于新手打破在学校里面所学的软件工程的障碍
1. 少于100行的代码, 直接就学一门语言, 写吧
2. 少于1000行的代码, 这个要用到基本的数据结构和库文件
3. n*1000行的代码, n<10, 这个要学会用一些第三方框架/类库和基本的模块设计经验,glib/MFC/libevent/Struts+hibernate+spring/RoR,类似这样的东西,其实都是框架类库啦,然后,尝试把问题拆分成为少于1000行的问题吧
4. 过10000行的,过万行的代码其实也可以分解成为 n*1000行代码的情况,比如,拆分成几个模块,每个模块以一个类库的方式提供,这个时候,应该开始引入一些初步的项目流程和项目管理了
5. n*10000行的项目,这个就开始复杂起来了,OK,真到了这个情况,您就琢磨着自己办吧
在我的心目中,我一直认为,项目流程所制定的规则,所选用的工具,所使用的技术,都应该是量体裁衣的,这其实也体现了一种思想:量力而为,如果不遵循这种思想,有什么后果?明显是项目危机!
列举一下一些经典的不量力而为情况:
1. 在一个6个月工期的项目中,引入学习周期为3个月的技术框架,嗯,一下子烧掉一半的开发时间
2. 在团队技术水平不够的情况,尝试从头开发整个框架,而不是框架选型,您就折腾去吧
3. 重复发明轮子。。。哦,这个就不多解释了,如果担心轮子的不可控,也应该在别人的轮子基础上发展
4. 指定繁琐的流程制度,但是却不能从制度中获益
5. ....其他
在实际中,上述的情况比比皆是,可能是国内IT发展还不成熟的原因,期待将来的完善