如果把生活中每件事情都从时效性和系统性的角度出发思考,那么,项目开发就是在我们身边,无处不在,甚至自己都经常无意识地进行一个又一个项目开发。然而,如果把他视为一种学问去研究分析,则发现原来如此博大精深。
一个小小的项目组成立了,研发一个基于java的网络视频会议系统,遇到太多的问题,无法诠释,无法归纳,只能一个问题一个问题记录下来,留待日后思考。
——题记
整个项目开发的过程中就涉及到人力资源、沟通成本、精力成本、时间成本、技术成本的成本利用以及运用合适的方法让他更顺畅的进展运行,然后达到低成本高校应的成果,当然,所谓的高效只是一个神话,就好像人月神话一样让没有银弹的程序员门头头碰壁。
项目已开始就遇到一系列问题。
1、分工不明确。
一开始,一个团队从十个人分组为编程组和文档组各五人,导致编程组风风火火的开工,文档组枉然不知道自己如何进展,唯有不断的苦学几种基本的软件工具,uml和测试工具,等编程组进展,然而编程组的进展也不顺利,遇到几个比较核心的难点。
后来,经过商讨,把整个团队分为编码组、需求组、测试组,设计组四个组,然后人员交叉,运用螺旋式和渐进式的工作流程把促进整个项目进展。
然而,对于这样的分组,又导致监督成本的浪费。困惑?
2、技术难点
所谓编程人员只是初步了解了如何如何使用一些基本的java技术和利用一些基本的工具,然后深一层技术就很难逾越。项目一开始,就发现了三大问题。1、socket传输。2、ecilpse与swing不兼容,无法调用windows部件实现不了调用视频捕获功能。3、界面美化问题,没有关于swt的教程。
此外,所谓的文档人员也不会用一些系列的工具,也不懂得如何进行风险评估、系统设计和系统测试等等。
对于这样一个技术水平参支不齐的团队如果更有效率的运作呢?又进入思考。
目前选择了几种最为原始的解决方法:
首先,拓展外部资源,从网络、图书馆和老师同学中引进更多的技术学习资源。
其次,划定一个时间区域让相关人员进行技术学习。
3、沟通成本。
单纯的项目小组组长的沟通会让整个项目处于沟通点汇聚然后缺乏流畅性,如果改为个个人相互沟通又会变成资源极度浪费。
面对这种瓶颈,目前相处的集中方法。
首先,设定交叉性的分工,有针对性地项目针对性地沟通。
其次,引进wiki技术文档和资料更规范的划分。
两个星期下来,目前整个项目开发小组的关于网络视频会议项目的成果有:
1、项目风险分析计划书
2、项目计划明细
3、质量计划署
4、需求说明书
5、几个简单的界面(对于界面问题稍微解决,需要用到swt才能做出相对漂亮的界面。)
以下是一些简单的贴图:
整体下来,下一步的进度就是完善需求以及开始进行系统总体设计以及详细设计,详细设计中涉及到数据流以及用例方面也是一个比较重大的难点。整个过程中,我选择不做项目小组组长,主要因为时间忙不过来,其次我希望能够尝试从一个旁观的角度观察一个软件项目开发的整体过程遇到的问题以及思考解决问题的方法,一步一步完善。
接下来,我负责的那一块就是系统单元测试计划设计以及系统服务器假设实现技术,涉及到的技术难点分别有数据库jdbc以及数据结构的设计。
——关于这次的软件项目开发的整个过程完全让我重新认识所谓的项目开发,以前对于项目开发的进程把最大的注意力集中在编程方面,现在从一个宏观角度看来,每一个模块每一个工作流程都非常重要,当程序与市场以及时间精力人力成本结合起来,就变得博大精深。
加载中,请稍候......