已经换了两家公司了,加入时刚好都是开发一个新项目,对我来说确实是非常难得的学习机会,随着这近期一个项目的接近尾声,总感觉心里有点什么东西不吐不快。
近期的这个项目,给了我一些很深的体会:
一是如果项目任务紧,最好不要在陌生的领域搞,比方说:项目组对.net已经积累了大量的经验,但对于java来说还是门外汉,最好不要用java来设计开发这个较紧的项目。但从另一个方面来说,如果用户一定要使用这个平台环境,客户是上帝嘛,没办法,但千万不要在项目开发中招新手(如使用java,但招的新人对java并不熟悉),可能这样表面上会给公司剩下一笔钱,但其后期的埙失将不可估量:由于对这种语言不熟悉,其潜在的bug如果提前发现还好,否则当项目晚期出现时,叫天骂地的将不会仅仅是一个项目经理。
第二点体会是:开发之前的项目调研特别重要。也许在这里说有些画蛇添足了,因为任何一本软件工程的书本里对这个的重要性都是强调再强调的;但奇怪的是为何大多数的项目开发小组都没有好好贯彻?纳闷!接触过很多软件开发人员,差不多大家都在抱怨这个问题;往往是已到项目收尾期,大家都想着该轻松一把了,需求变更来了,有的根本就不是客户提出的变更,而是业务人员看到软件后的反应,当然用户提出的概率大些,有个同事搞了一个项目,即将交付时,用户提出的更改将他的设计全盘打乱,每当他给我提起,总气得要命,但有啥办法?顾客是上帝嘛,公司不可能说是因为你的劳累就放弃一笔单子的收入。
我们近期的这个项目这一点上并好不到哪里去,刚开始让几个特别熟悉业务的人搞需求分析设计,搞了一两个月,定下来后,就开始进行开发,其间并没有发现和其他任何业务员进行交流沟通,当问起时,回答说,这一方面他们是专家,很自信。确实在以后的日子里,我也确实发现没有比他们更熟悉业务的,但这就意味着不需要和他人交流了吗?很纳闷,总感觉这样有点像闭门造车!果不其然,在随后的日子里,经常碰到一些需要变更的东西,有很长一段时间,我感觉不是在开发新项目,而是感觉在维护已经漏洞百出,即将崩溃的快要死掉的项目。
第三点,如果某些事情在项目开发之初就感觉应该做的,绝对不要拖到后边做。举个例子,搞一个web项目,美工肯定是离不了的,因为这直接影响到客户的第一印象。当项目开发之初就应该先找美工把所需要的一切:样式风格,框架设计,界面布局等;不要为了赶任务,凑合着做项目,拖到后边来完善,留给程序员的无疑将会是一场恶梦。
第四点,感觉非常重要的就是项目质量的控制,这是一个较大的问题,也是一个难以衡量的问题,但有四点我感觉尤其值得注意:一是测试一定要跟上,不要拖到项目收尾时,单独专门搞测试,开发项目象盖房,最好的就是先搞测试(写测试用例),实在不行就一边开发一边测试,因为测试是一个度量,度量这个项目是否符合要求,否则,如果等到开发完毕再进行测试,就好比盖好房子再拿设计图检验,搞不好就要全部拆掉,据我所知很多项目虽不至于因此烂掉,但因此延误期限的病不在少数;二是,项目开发一定要按照开发之前的规范走,如果没有就一定要定一个出来,以后如果谁没按照规范走,后果就由他承担。绝对不能单纯的按照某一两个人的意见就私自更改一些设计或者一些文档,也许看上去这个似乎并不太重要,但项目的维护,以及项目开发过程中的大量的重复劳动都将因此为你带来无边的痛苦;三是一定要使开发人员高度重视所写代码的质量,不能简单的应付差事,或是为了赶任务仅仅满足于所实现的功能,还要多加考虑灵活性和可扩展性,否则以后项目的需求稍加变动便意味着你的劳动的不必要的但却是必须作的重复;四是,注释和文档一定不能少,更不能缺,项目成员的变动不是一两个人就能决定的,所以一定要考虑到项目的接管问题,最好的办法是文档不能少,注释也不能少,并且是越多越好。当然了,注释和文档一定要和项目保持同步,否则有不如无,相信大家对于这一点都不陌生,就不多说了!
第五点,也许有点垃圾,但感觉还是比较重要的,那就是作为一个项目经理,一定要密切注意整个项目的进度以及尽可能的了解每个项目组成员的情绪变化,要不断适时地给予一些鼓励,当然该批评的也不能姑息,要让整个团队在一个较好的气氛环境中进行作业。当项目遇到挫折时,千万不能急,要沉住气,要冷静,千万不要对项目组成员发火,因为发火不是解决问题的方法,不但不能解决问题,还可能激化矛盾,加剧项目开发的风险,有可能因此使得项目流产。
不早了,本来以为问题不会这么多,谁知越写感觉话越多,暂且到此吧,以后慢慢补充,要赶紧休息了,呵呵!
分享到:
相关推荐
在实际项目开发中,源码的质量和管理是关键。良好的源码结构可以提高代码的可读性和可维护性,降低后期修改和扩展的难度。开发者可能会分享他们如何运用设计模式来优化代码结构,或者如何通过单元测试和持续集成来...
相反,自定义开发插件虽然可能延长项目周期,但能确保插件完全符合项目需求,且更便于后期维护和扩展。对于开发者而言,这是一种提升技能的有效途径,尤其是当你能设计出轻量级、可扩展的解决方案时。开发插件需要...
在IT项目开发中,经历一个项目从开始到完成往往能带来深刻的感悟。在这个"信息发布系统项目"中,我们可以总结出一些关键的知识点和实践经验。 首先,需求分析是项目的基础,确保需求的准确性至关重要。需求不明确...
因此,小区规划阶段需要进行细致的前期调查和科学的规划分析,确保详规审批后的实施放线能够严格地按照批准的规划图纸执行,为整个项目打下坚实的基础。 单体楼作为小区的重要组成部分,其设计与施工质量直接影响到...
概念和专业术语虽然可能一开始难以理解,但在实际操作和项目经验的积累中,它们会变得越来越清晰。实验环节尤其重要,因为它能提高动手能力,使理论知识得以应用,并加深对概念的理解。 总的来说,嵌入式开发的学习...
例如,通过虚拟机安装Linux,实践指令操作,以及进行相关的实验项目,以提升动手能力和对理论知识的理解。在实验中,概念和专业术语的掌握能够指导实践,而实践又能加深对理论知识的认识。 在嵌入式开发的学习路径...
接触这个框架有三年的时间了,初次接触b/s型开发项目时,是在指导人员的帮助下完成的,技术上确实也学到了一些东西,但个人觉得最大的收获是在开发软件项目的过程中,自己意识上的提升,如做项目是考虑其合理性安全...
首先,当项目需要某个特定效果或功能时,我们通常有两种选择:使用现有的JavaScript插件,或自行开发一个新的插件。使用现成的插件,虽然省时省力,但可能会面临一些问题: 1. UI定制问题:许多现有的JavaScript...
因为,只有充分理解开发人员的想法和项目的具体要求,测试人员才能设计出更有效的测试方案,进行更准确的测试,并给出具有建设性的反馈。 此外,随着敏捷开发、持续集成等现代软件开发模式的兴起,软件测试也面临着...
例如,在一个项目中,我们看到了一段代码,该代码使用了大量的 if…else 判断来处理不同的类型和状态。这类代码会使得代码难以维护和扩展。解决这个问题的方法是使用状态模式,状态模式可以将每一个状态或类型封装...
课程设计一般包括项目选题、方案设计、软硬件开发、系统调试和项目答辩等环节,对学生的综合能力有着较高的要求。 在这篇《单片机课程学习与感想》文章中,作者分享了自己在单片机课程设计过程中的经验与感悟。作者...
在进行JAVA与数据库实训项目的过程中,我们不仅学习了理论知识,更重要的是获得了实践操作的宝贵经验。这九篇范文正是这种实践经验的结晶,涵盖了不同阶段...对于其他实训项目,这些感想和经验同样具有很高的参考价值。
这个过程中,我积累了丰富的知识和实践经验,以下是我对软件工程的一些核心理解和感悟。 首先,软件工程并非单纯的技术活动,它涉及到项目管理、团队协作和沟通技巧。在实践中,我们学习了如何制定合理的项目计划,...
项目结束后,对测试流程有了更深入的理解,提高了问题解决能力,同时也意识到持续改进和团队协作的重要性。 综上所述,TinyShop测试项目涵盖了从需求分析到测试执行的整个生命周期,使用TestLink和Mantis进行测试...
BBS论坛的开发是一个综合性的项目,涵盖了多个技术领域,包括网页设计、JavaScript、Struts2框架以及数据库操作等。 首先,BBS论坛的开发通常分为前后台两大部分。前台功能主要面向用户,包括用户登录、注册、发帖...
在实际项目开发中,Java 的优势在于其强大的库支持和社区资源,如Spring框架、Hibernate ORM等,这些工具和框架极大地简化了开发流程,提高了开发效率。此外,Java 还提供了丰富的网络编程、数据库操作和并发处理的...
在Python项目开发实战中,机器学习是一个至关重要的领域,它为开发者提供了强大的工具来解决复杂的数据分析和预测问题。这门课程将通过6个经典的机器学习算法案例,深入浅出地解析如何在实际项目中应用这些算法。...
- 实战项目:可能包含一个完整的ASP网站项目,供学习者模拟开发环境。 - 练习题和答案:帮助检验学习成果,巩固所学知识。 通过深入学习和实践这些课件,你将能熟练掌握ASP动态网站开发,为创建功能丰富的Web应用...