大学里面的几个失败项目

简介: 今天想起大学时参与的一个项目,让我突然想起了一些事情,多年之后再来看原来的我,发现其实还是有不少的建议。 那时候是暑假的时间,课程里面专门安排了一个项目实践,因为也没有实际的项目可做,所以也就是根据老师提供的素材来自己选择一个项目,给了三个项目,每个小组是10多个人,当时学软件工程也有些日子了,论逼格的一句话,当时的软件工程教材还是全英文的。
今天想起大学时参与的一个项目,让我突然想起了一些事情,多年之后再来看原来的我,发现其实还是有不少的建议。
那时候是暑假的时间,课程里面专门安排了一个项目实践,因为也没有实际的项目可做,所以也就是根据老师提供的素材来自己选择一个项目,给了三个项目,每个小组是10多个人,当时学软件工程也有些日子了,论逼格的一句话,当时的软件工程教材还是全英文的。当时大家实际参与到项目中的时候,也都是一头雾水,不知道该从哪里开始。
    记得给的时间也不长,大概一个项目周期下来就是2周,然后就要开始小组演示。所以从一开始就注定了这是一个简单的项目实战,因为大家都没有头绪,谁都没有敢想到两周后的那天到底会是什么样的场景。
    于是乎,大家就在教室里随机分组,然后评选项目经理,挑选项目,然后就是挽着袖子开始干活。
    没有思路,但是我们有模板,所以从这个模板中也可以看到一些工作的分工和任务,当然老师也会在整个过程中穿插指导。如此一看一切都准备妥当了。

在项目开始的时候,充分感受到了民主的风气。小组先分工,有做概要设计的,详细设计,数据库设计,测试的分工,对于测试的部分大家都不大愿意干,所以最后的情况就是自己开发自己测试,在项目开始的时候,大家感觉详细设计才能敲一下代码,才觉得自己实际上干了些活儿,虽然从软件工程中的学习我们知道概要设计是一个非常关键的环节,但是到了后面基本就是一个萝卜一个坑,你做你的概要设计,我做我的详细设计。
    我和另外一个女同学被分在了一个小组,负责概要设计,后面人手貌似不够,我们也负责了两个模块的详细设计。今天在邮箱中翻找,也算找到了当初的一点设计的东西,其实我们最开始在梳理关系的时候,也着实花了不少的功夫,也是通过rational rose来设计uml图,至于后来的结果怎么样,其实也是不得而知。因为设计和实现还是有很大的差距,至少当时是脱节的。

至于到底关系如何细粒度,到底是泛化还是其它已经不重要了。当时分工也看起来有模有样,分出了两个人做DBA,专门负责设计表和索引,说实话当时还是挺羡慕的,因为感觉建好表他们就没什么事情了。
    我们三个组,从我们的整体感觉来说,风格迥异,第一个组里似乎多了很多的程序员,因为大家都希望其他人能够复用他们写的代码,所以在开始的模块分工和功能划分上,下的功夫不够,于是乎,几波人都要做一个登陆验证的工作,然后各自开发自己的功能模块,当时他们的进度一度超过我们。
    我们是第二梯队,算是里面的温和派,大家在项目里似乎没有那么多的争执,在分工上有一点做的比较好的是,我们制定了一个统一的配置文件,按照模块划分,所有的主类都需要在这个配置文件中定义,然后划分每个人负责的功能模块,所以几个模块之间可以看做是独立来操作的,当然缺点也很明显,后面单捡出来说。第三个小组下的功夫最大,总能看到他们在那加班加点,他们也会有争吵,但是也会在项目经理的调和下马上平息,设计上也着实做了点东西,他们是严格按照MVC的设计方式实践的,其中为了突出DB层面的独立,硬是搬着电脑扛到教室,然后通过校园网连接到宿舍里的DB服务器,他们就想说明他们的DB是分离的,绝对不是本地的连接方式。
    很快就到了项目验收的阶段,三个小组都在最后的时刻开始了集成,整合,结果马上就暴露出来了一系列的问题,第一个小组因为大家开发的东西耦合度太高,最后整合代码以后连登录页面都打不开,然后各个小组都不愿意再做很大的改动,所以集成就是个大问题。当然如果要做进一步的整合,有些人的功能代码肯定是要直接抛弃了,所以他们在后期的时候最为艰难。
而我们小组在这方面确实是占了大便宜,我们整合的时候就是提交配置文件的主类,项目经理把这些配置整合到一起,然后代码都放在各个目录下,直接拷贝就能各尽其用,所以整合基本上没有花费什么时间,但是问题也很明显,我们每个人只负责自己的那个模块,其实很多模块之间还是有很多的关联,所以我们看起来功能实现了,但是完全解耦合,模块之间彼此没有任何的关联,也是前期的沟通和分工不合理导致的情况。如果再进一步来说,我们的这个系统只能查,完全不能用。第三个小组亮相的时候,也着实让我们刮目相看,他们实现了部分的功能,按照当时的分工和计划,他们完成了很少的一部分功能,演示的时候也显然弱化了这方面的缺点,因为大家都不关心里面的功能是否设计合理,只要能打开页面就感觉是一个基本的交代了。
    在下午之后,大家的分数基本持平,每个人都感觉像经历了一场战争,终于可以放松就好好喝喝酒,玩乐玩乐了。
    虽然老师也从优缺点的方面做了总结,但是现在来看,三个都是失败的半吊子项目,第一,项目的立足点就没有任何的需求,都是按照模板来完成,而且当时评判的一个标准就是页面是否能够显示出来,这一点现在想想简直是不敢想象。第二这个项目的分工大家都在选择回避,还是逃避了不少的潜在问题,在分工和沟通上还是不合理。第三这个项目就是个临时工程,大家写完的代码绝对不想再去看第二遍。
    当然在大学期间,我们不能要求太高,说得那么轻巧,落地实践不了还是白瞎。我们在后来也自发组织了几个同学准备也做个项目试试,在商量再三,决定做宿舍管理系统,有了上次的经验,我们这次的合作相对就会合理很多,但是最后也因为项目没有太多明细的计划最后一再搁浅。
    所以这些项目虽然看起来都是失败的,但是也着实给了我不少的宝贵经验,再到后来,做毕业设计的时候,大多数的同学都还是按照之前的项目的思路来做,其实项目怎么样,关键是论文的质量了,所以大家都在关注论文里面的引言,内容,然后找几张图片来嵌在文档中,这也算最后一个实战项目了,所以我想让自己做得能够有点谈资,于是乎我挑战了一个项目,电信性能监控系统,从当时的完成情况来看,完成了差不多50%的功能,而后来得知这个项目是哈工大的研究生项目,一个小组10多个人几个星期才能完成,所以也着实让我小小满足了一把。
   回过头来看看以前的日子,感觉时间真是一去不复返,那些当时看起来非常艰巨的任务现在来看是有落差,但是其中经历的一些事情也是难得的经验,从这些也可以一窥很多经验录,方法论。其实大学就是这样一个可以埋头做事情的大好时间,如果珍惜了,做好了,肯定会有不小的收获。
 
目录
相关文章
|
消息中间件 前端开发 小程序
一个基于.NET Core构建的简单、跨平台、模块化的商城系统
今天大姚给大家分享一个基于.NET Core构建的简单、跨平台、模块化、完全开源免费(MIT License)的商城系统:Module Shop。
260 2
|
存储 设计模式 网络协议
AD域 概述以及结构与存储技术
AD域 概述以及结构与存储技术
1659 0
AD域 概述以及结构与存储技术
|
机器学习/深度学习 算法 PyTorch
深度学习经典算法PPO的通俗理解
#1 前置知识点 基本概念 [https://www.yuque.com/docs/share/04b60c4c-90ec-49c7-8a47-0dae7d3c78c7?#](https://www.yuque.com/docs/share/04b60c4c-90ec-49c7-8a47-0dae7d3c78c7?#) (部分符合的定义在这里) 要理解PPO,就必须先理解Actor
9593 0
|
8月前
|
监控 数据可视化 数据挖掘
【开发者必看—电商篇】数据赋能电商类App转化率循序增长
通过友盟+ 数据分析工具,团队深入分析了用户行为路径、转化漏斗、停留时间及错误事件等关键数据,定位到用户体验与产品性能的问题。经过精准优化,包括简化购物流程、修复技术故障及提升稳定性,最终显著提高了用户转化率。这一案例展示了数据驱动在产品优化中的重要作用。
【开发者必看—电商篇】数据赋能电商类App转化率循序增长
|
7月前
|
安全 PHP 监控
织梦CMS迁移的技术路线分析与实践建议
随着技术发展,织梦CMS因安全风险、技术滞后及生态萎缩等问题亟需迁移。相比织梦,WordPress凭借持续迭代和现代化技术栈成为优选。针对迁移需求,提供三种方案:全量数据迁移适合中小型站点;渐进式重构适用于大型平台;生态转换迁移助力拥抱现代开发体系。实施中注重数据精准性、服务器优化与模板适配,并通过风险控制保障业务连续性和SEO效果。从技术生命力、生态完备性和迁移可行性三维度构建决策框架,借助Websoft9等工具实现平稳升级,助企业构建现代化数字化平台。
204 0
|
11月前
|
存储 自然语言处理 算法
Big data Doc Analyze
本文介绍了文本分析的基本概念、应用场景及技术细节,涵盖了结构化、半结构化和非结构化数据的概述,重点探讨了中文分词工具如jieba、SnowNLP等,以及中文关键词提取和相似度计算的方法,最后提出了文本分析的架构图和实施步骤,强调了NLP在文本数据处理中的重要性和应用前景。
179 3
Big data Doc Analyze
|
11月前
|
监控 数据可视化 安全
Zabbix 主要功能特点
Zabbix 主要功能特点
499 8
|
弹性计算 监控 负载均衡
slb健康检查注意事项
slb健康检查注意事项
208 1
|
JavaScript 前端开发
JS如何把身份证处理成中间几位变成*号呢
JS如何把身份证处理成中间几位变成*号呢
329 1
公司网站图片如何修改
公司网站图片如何修改