刚刚工作不久,还没有开始从头到尾开发过一个项目,而是负责对一个开发到后期的项目进行维护和后期开发。本以为这些工作没有什么技术含量,比较枯燥,然而出我所料的是,经过两个多月的维护工作,却领会到了很多软件或项目开发领域中的学问,虽然这些东西的字眼和概念原来在大学的时候遇见过n多次,但是从来理解不了是怎么回事。
1.说说需求挖掘,定义和管理吧。我本来就是刚入行,觉得谈这些上流话题有点不自量力。不过在这里我倒也不打算去网上找些资料把有关需求的内容拿来啰嗦一顿,而是说说自己的体会,知识和经验都是慢慢体会和积累的嘛。这个项目负责开发的人不多,需求一直都是通过和客户之间电话会议来确定的,即客户那边有什么要求经过双方讨论确定再有开发人员实现,完了后再转给测试跑跑看有没有问题。这样一直快要到交付的前一个月,老板以为接下来的就是些简单活,就叫我这个新手去锻炼锻炼,顺便看看人家是怎么开发一个项目的。可是就这个时候,众多严重的问题出现了:因为系统即将要交付使用,客户多少会积极一点去试用。结果经常出现错误或者莫名其妙的故障。比如开发的时候当初压根就没有考虑到多用户的情况,所以整个系统的多个地方都只是以单个用户的方式来编写的,比如一个货品的数量在进入一个页面的时候就取出来缓存并显示,然后这个用户在这个页面上逗留了十来分钟,再对这个货品数量进行修改,如果只有一个用户在使用这个系统的话,数据永远都是一致的,没有问题。但是如果多用户的话,结果就可想而知了。这个项目的测试人员也只有一个,当然没有考虑到在多台机上试试系统运行情况。还有,对真正要试用该系统的用户的场景没有事先了解,所以开发人员照着惯用思维进行开发,结果当然是用户提出异议了。还有,在系统开发前期的时候,没有很好考察定义系统的平均或一般负载,性能要求之类的关键指标,即没有考虑到压力测试。用户那边系统后,发现到了快速大量输入数据时,系统会慢得不可使用。除了这些典型的问题之外,还有客户在快要交付前突然要大范围更改和添加需求,弄得我们手忙脚乱也完不成任务。具体情况就不在赘述了。这些经历给我的体会是:需求果然是很难作的,所以要花心思,动脑筋,甚至花体力去尽量做好(比如可以到客户公司去考察考察,呵呵,不知道这个想法实不实际,个人想法而已)。切记一种姿态就是,客户扔了一个需求过来,讨论讨论过了,然后动手,弄完叫客户大概看看,没事就OK了,而是要多Push客户那边多搞搞,不断跟进(好像客户大部分都不是很积极的,所以项目公司这边要积极和客户联络)。不然开发到后期出了前期没有发现的大问题再修改代价就很高了。
2.第二个体会,可以说就是“切肤之痛”吧。写代码比较辛苦吧,看代码好像也很辛苦,但是看一些几乎没有注释且比较乱的代码,并且这些代码还比较多,会不会很辛苦呢?答案是肯定的!大学时候学的一门课程,叫项目管理。那时候学那门课觉得简直就是浪费时间,很难领会到一些要工作后才能领会的知识,好像学来没用。比如书上说,开发一个项目,一般开发时间只占20%-30%,其余都是维护时间。出来工作后才发现维护时间还真的是很长,如果在这段时间里,一直都是由系统开发的那帮人来维护,到也罢,反正代码写的怎么样,他们自己看。但是万一项目的开发人员离职或者调到别的项目组从而原来的项目叫别人去维护的时候,就会发现优良的编码习惯是多么重要啊。我有时候实在觉得摸不透,就去问原来开发这个系统的人,结果有时候他看了之后自个也不知道怎么回事,还责怪我这样写是有问题的,还不时误会是我写的代码。我心里说,原来你刚不理它一个半月就都会不记得啊,呵呵。这些经历给我的启发就是:写代码的时候,想想以后。该写注释的地方,就算简短,加两句以后别人维护起来也省 了好多脑细胞去想那段代码到底是干啥的。
3.哎,太晚了,明天还要上班,有时间再加上。都是自个感受,写出来备个案。
分享到:
相关推荐
Winform 项目开发心得 Winform 项目开发心得是指在使用 Winform 进行项目开发时所需了解和掌握的技术要点和经验总结。以下是 Winform 项目开发中的重要知识点: 一、登录界面验证成功后进入主界面 在 Winform ...
在Java项目开发中,开发心得主要集中在以下几个方面: 1. **知识技术储备**:开发者需要具备广泛的知识技术,包括但不限于Java基础知识、JSP、数据库管理、Servlet、EJB(Enterprise JavaBeans)、开发环境配置和...
### Java开发三年项目经验心得分析 #### 一、项目经验概览 在这篇文章中,作者回顾了自己在Java开发领域三年的工作经历,期间参与了三个不同的项目,从中获得了丰富的实战经验和技术积累。这三个项目分别是涉密...
FPGA开发心得 FPGA(Field-Programmable Gate Array,现场可编程门阵列)是一种高性能的数字电路,广泛应用于通信、计算机、自动控制等领域。下面是FPGA开发心得的知识点总结: 一、Verilog语言的学习 * Verilog...
本文主要讨论了作者在项目开发过程中的心得体会,特别是在B/S项目中如何合理配置人力资源。 首先,美工是项目中不可或缺的角色,他们负责网站的视觉设计。理想的美工不仅需要有良好的审美观,还应具备手写HTML和CSS...
五、软件开发心得体会之五:项目管理 * 项目管理是软件开发的关键一步,需要制定详细的项目计划和进度安排。 * 项目管理的目的是为了确保软件的开发效率和质量。 六、软件开发心得体会之六:团队合作 * 团队合作...
东南大学学生会管理系统——SRTP项目开发心得体会 本文档记录了东南大学学生会管理系统——SRTP项目的开发过程和经验总结。SRTP是一个锻炼大学生课外研究学习能力的一个项目,旨在让学生通过实践学习和研究,提高...
### 2021年网站开发心得体会 #### 一、项目背景与心得概述 在2021年的网站开发过程中,作者通过亲身实践积累了一系列宝贵经验。这些经验不仅包括技术层面的学习,还有团队协作和项目管理等方面的重要启示。本文将...
嵌入式系统开发是一项复杂而有趣的任务,尤其对于初学者来说,可能会感到无从下手。本文将基于作者的经验,提供一些学习嵌入式系统开发的建议和路径。 首先,了解嵌入式系统的基础知识至关重要。这包括掌握嵌入式...
这个"SSH项目源码及心得体会"的资源对于初学者来说尤其宝贵,因为它不仅包含了实际项目的源代码,还记录了开发者在整合和使用SSH框架过程中的心得与经验。 Struts2是MVC(Model-View-Controller)架构模式的一种...
在Revit二次开发中,开发者通常需要深入理解Revit API并掌握特定的编程技巧来实现高效的功能扩展。以下是对标题和描述中所述四个要点的详细解释: 1. **编程创建墙饰条** 创建墙饰条是Revit二次开发中的常见任务,...
本文是一篇全面介绍iOS开发的文章,旨在帮助读者了解iOS开发的基本概念、开发心得、项目实践以及相关练习。通过本文的阅读,读者可以深入了解iOS开发的流程和技巧,提升自己的开发能力和项目实践经验。 文章首先...
### Spring Boot 心得体会与实用技巧 #### 一、快速搭建项目 Spring Boot 是一款非常流行...以上总结了 Spring Boot 开发过程中的一些实用技巧和心得,希望能够对正在使用或即将使用 Spring Boot 的开发者有所帮助。
本文详细介绍了iOS开发的基础知识、开发心得、示例项目和相关练习。通过开发一个简单的待办事项应用,读者可以掌握iOS开发的基本技能和流程。该项目包括创建项目、设计用户界面、创建数据模型、实现视图控制器、运行...
- 项目开发计划是项目管理的核心,它详细规划了项目的时间线、资源分配、里程碑和交付物,确保项目按预定的目标进行。 以上内容揭示了项目管理的各个方面,从团队协作到风险控制,从项目规划到执行监督,涵盖了...
这可能是一篇关于如何制定有效项目开发计划的文章,强调了目标设定、里程碑设定、资源分配和时间估算的重要性。 通过深入学习这些材料,无论是新手还是经验丰富的项目经理,都能提升自己的项目管理能力,更好地...
"学生会管理系统项目开发心得体会" 在开发学生会管理系统项目的过程中,我们遇到了很多困难和挑战,但这些经历也为我们带来了宝贵的经验和教训。通过这个项目,我们了解到了项目需求分析的重要性,客户思维方式与...
本资源包含Android开发的详细介绍、个人开发心得、实际项目案例以及一系列相关练习。通过本资源,您将能够深入了解Android开发的基础知识、技术栈和最佳实践,同时掌握实际项目开发的流程和技巧。无论您是初学者还是...