做工程项目需要注意什么 要开发一个软件应该考虑哪些方面?

[更新]
·
·
分类:金融
1512 阅读

做工程项目需要注意什么

要开发一个软件应该考虑哪些方面?

要开发一个软件应该考虑哪些方面?

软件是一个系统工程,业界有软件工程一说。软件工程也是各校计算机系必修科目。开发一个软件应该考虑哪些方面,我们将引入软件工程中的一些概念和元素进行描述。
同时,作为企业,客户或者个人而言在进行软件开发时,除了要考虑软件工程外,还需要考虑到相关的资源。这里的资源包括人,预算,开销,时间等等。而这些包含进去,就涉及到项目管理的范畴。
接下来我就从 软件工程和项目管理的角度进行描述软件开发需要注意的方面。
从软件工程的角度看,软件开发包括了前期的需求分析,系统设计,详细设计,然后才到大家通常认为的编码实施阶段,接下来时测试培训,交付上线。最后还有一个不能忽略的阶段,那就是系统维护阶段。
需求分析阶段:通常采取访谈(interview),workshop,调查表等多种方式,由资深的应用/业务顾问 (Application Consultant/Business Consultant),向客户了解需求并进行确认。初始阶段的需求分析非常重要,稍有偏差,便有失之毫厘,谬以千里的风险。相信广大程序员朋友们都经历过变更,尤其是项目后期。当你的代码测试了一遍又一遍,自信满满确定几乎没有bug了,这时候leader告诉你不好意思,变更来了,你做的那一块要改成这样,改成那样 : ( 。当然项目前期需求收集,分析阶段不确定性比较大,所以我这里强调需要有自身的应用/业务顾问进行把关。当然有些变更是不可避免的。系统设计:需求分析好了,需要做Solution Design了,这时候Solution Architect进场(资深方案架构师)。要想后期编码实施轻松,系统设计阶段,如果有资深大牛把关后面的日子就会好过很多。包括系统的基本处理流程、系统的组织结构、模块划分、功能分配、接口设计、运行设计、数据结构设计和出错处理设计等。有时候要用到新的技术,还需要进行快速的新技术调研。当今技术蓬勃发展的年代,有时候客户的需求必须使用到新的技术,也许是整个团队之前都没有接触过的,这时候就需要架构师总体把关了。通常会有技术天分的小组成员进行技术可行性调研。详细设计:大的框架结构,技术方向在系统设计阶段完成,确定了以后,对于各个模块而言进行详细设计。好的详细设计文档包含了模块内所有用例(use case)的逻辑处理,以及逻辑处理涉及到的算法。通常需要资深的程序员进行这部分文档的书写。好的文档写出来,后面coding的同学就会一身轻松。编码实施:如果前面详细设计做的好,到了这个阶段就相对轻松。但是对于程序员的基本功还是很有要求的。另外有一点就是自己的单元测试一定要做好。测试培训:这个阶段其实分两个小阶段。一个是测试,一个是对用户的培训。测试包括集合测试,压力测试等,最后是UAT(User Acceptance Test)。如果都没有问题,就择良辰吉日上线了。用户培训这个环节相当重要,千万不可忽视,直接关系到最终用户对整个系统的接受程度。一般会选取种子用户先进行功能培训,并和种子用户一起对所有用户进行整个软件的使用培训。交付上线:前面这么多的阶段都完成了,所有的测试也通过了,是不是上线就一帆风顺了。呵呵,根据笔者的经验,未必。上线的时候或多或少都有一些幺蛾子。新系统上线还算好,对于旧系统升级,如果系统相当庞大,国内一般也就只能是国庆/春节进行了。为啥,有7天假期,也就是说有7天的时间用户不使用系统,这7天过程中如果出现问题也不影响用户的操作。但是如果7天时间无法上线,不好意思,只能回退,等待下一个7天的假期。维护:上线了,该庆祝了,一般软件公司上线后都有庆功会。庆祝后,不要忘了还有软件系统的维护。首先,任何系统都无法保证不出bug。其次,对于实际的应用来讲,对于复杂的系统,每天产生的数据量巨大,对于性能方面,是需要有相关监控以及相应的。在用户使用了一段时间以后,会发现一些问题也会产生一些需求。所以,软件系统的维护也是相当重要的。
上面说了这么多,都是从软件工程的角度,也都是提到了资深架构师,资深顾问,好的详细设计等等。这些都是资源,都是需要争取的,如果争取不到,不好意思,项目经理就要多辛苦了。
接下来就从软件开发这个项目的角度出发,站在项目管理的角度上,有哪些需要注意的。项目管理方面我是用PMP的体系来进行描述,笔者之前通过PMP认证,觉得PMP的体系在整个项目管理过程中也是行之有效的。PMP中涉及到项目的范围管理,时间管理,成本管理,质量管理,人力资源管理,沟通管理,风险管理,采购管理,干系人管理等。对于软件开发尤为重要的几个环节,我这边会进行描述。
时间管理:做软件开发,一定会有schedule,什么时候开始,什么时候结束。那么这里的进度计划就显得尤为重要了。一定需要在规定的时间进行交付。成本管理:无论今天是一个公司,或者一个客户,或者一个独立的自然人所拥有的资源和时间都是有限的,能投入到软件开发中的资源也是有限的,如何能够在给定的资源中完成软件开发,是对项目经理一个要求。很有可能我上面提到的那些资深顾问,资深架构师项目经理根本要不到,或者公司也提供不了,这时候就要另想方法。风险管理:进行早期的风险识别,以及相应的定性,定量分析,来制定应对的计划,从而能够达到对风险的控制。实施整体变更控制:绝大部分项目都会有变更,软件开发也不会例外。笔者对此就很有体验。对于变更的管控,也是对项目经理而言很有挑战的一项任务。
上述的都考虑到,基本整个软件开发也不会有什么大问题了。
如需要进一步交流,欢迎留言或私信。

我想去工地上班,请问有哪些正规渠道招聘吗?

这个渠道很多,看你能做什么,想做什么。基本上有2个方向,一是施工管理相关,比如说施工、测量、质量、预算等,这类看你有没有相关工作经验,要求稍微高一点;二是去当民工,这类需求比较大,没什么太大的门槛,懂得做的话有好多工种,如电工、焊工、钳工、泥瓦匠、钉摸板、钢筋工,架子工等,如果没做过,直接去做小工,前期去搬砖呀,刷油漆等等。
最直接的渠道是,你平时路过大工地可以直接进去问,还招不招人,自己能吃苦耐劳,听从班组安排,有良好的素质,基本上都会给你机会去试一试的。