一个是学校团队做的项目,一个是企业团队做的项目,从直觉上讲,你会更信任哪个团队?为什么会这样认为呢?不同的人会有不同的想法和结论,也许你会认为学校团队做的更靠谱,尤其是Top X的学校的话,也许你会认为企业不论如何都做的会更专业些。但是总的来说,学校团队在做一个项目的过程中,往往会存在一些弊病,这些问题是企业团队做项目时很少会存在的问题。
1. 任务排期不合理,突发杂事较多
由于学校的项目多是导师带领学生做,很多时候不是按照任务量的拆解和总工作量大小来规划,而是根据其他跟人事相关的因素来规划。最典型的就是“要求明天先拿出一个样例Demo出来,我需要在会上跟xxx领导展示一下”,“xx领导xx时候来考察,到时候我想演示一下这个项目”。而在企业中,我们很少会听说xx项目要在xx时候给xx演示,加班加点推进赶DeadLine,或者先不管三七二十一,抓紧做一个跑通能用的demo再说。
2. 不问后端架构和代码是否合理,只会从前端挑问题
众所周知,在企业里,代码是有质量和规范要求的,而且会有Code Review机制,有相应的负责人对提交的代码进行评审,而且更有很多的自动化工具对代码进行检测,以发现潜在的各项问题。因此,哪怕项目开发进度有延期有时并没有太大关系,延期是经常会遇到的,但是如果一个人写的代码质量较差,代码架构不合理,不仅会被其他合作同事或后续接手项目的同事骂,而且还会严重影响个人的绩效考核评分。
但在学校做项目就是不同的,后端代码和架构设计如何地不合理都没关系,只要能按领导的要求做完,领导看起来满意就好。由于后端的特点,摸不着看不见,因此,人们往往喜欢从前端上挑问题,比如这个按钮摆放在这里,看起来比较碍眼,需要调整到其他地方去。其实如果从用户体验角度讲,去优化前端的界面设计和操作流程,那也是很重要的,但是实际中,往往不止如此,甚至很多老师还非常看不起前端。有时,xx功能是我们这个系统的核心,是我们系统的亮点,这个入口按钮如果放在右上角,领导可能看不见,所以得放在屏幕正中央,让领导一眼就可以看到这个功能入口,就会更可能尝试点进去试用,以达到展示效果的目的。也许他们觉得前端工作就是画画页面布局而已了。
3. 项目开发人员本身的知识水平和技能储备就有所欠缺,又缺乏挑重担的技术leader
在学校里,项目的开发往往最终是交由学生做的,大多数情况下几位老师自己不会亲自参与到写代码的过程中去,虽然有些老师不是这样,也会亲自开发核心的任务,但这样的老师不多,而且本身也是老师少学生多,不论如何也需要分很多任务给学生的。当大多数代码由一个个还在学校仅仅才学会了1+1=2的初级编程水平的人员实现时,代码的质量就可想而知了。更为严重的是,除了一部分有水平的老师外,其他大多数老师不会去挑起技术架构的重担,项目开发的完成质量就堪忧。而这些问题,在很多企业中不会存在,或者不会太严重。除了非技术人员外,技术人员多多少少也是经过了相关技术的笔试和面试的。
典型的例子就是,当某一个项目需要用到存储服务时,一个较好的解决方式是使用S3协议的对象存储服务组件,但是对于在校生来说,S3是什么,根本不知道,甚至就没听说过。最后妥协的解决方案是挂了4块本地硬盘作为存储,结果由于硬编码文件存储路径,也没有做硬盘阵列,只有一块硬盘可以被利用,另外三块硬盘不知道该如何通过代码同时利用起来。很多在校生见面只会说,xx编程语言某种语法是怎么用的,xx编程语言是世界上最好的语言等。另外,企业团队开发人员是有工资驱动的,而学校的学生团队如果不是自己主动有意愿去做,那么项目的开发效率也成问题。
4. 需求变化较多较大,也较快
这个应该是老毛病了,很多企业其实也存在。但是正如前面所说,管理完善的企业会有代码质量保证,一个质量好的代码,对需求的变化往往更容易适应。代码质量较差时,往往会消耗更多的精力在频繁更改代码中,代码质量好时,反而是相对更轻松的。
5. 各项机制不完善,额外人工工作量很大
比如学校的一个查询学生成绩的系统,如果出现了问题,很可能需要人工通过命令行工具连接进入数据库中手工检查问题,很难通过一系列诸如日志、监控和相关的运维工具和自动化工具快速定位和判断,并给出解决方案。而且,服务的可用性也存在问题,学校机房接入的电力系统有时会面临短时停电的问题,而且学校机房给分配的服务器往往是人工ssh远程连接方式管理的,也缺乏自动化编排流程。这些可谓是学校以及部分中小企业的通病了。
6. 在学校做的项目基本不存在世界级市场,没有高并发也没有大量用户
这个是一个很客观的因素,学校团队做的项目,很多属于接的外包,或者面向校内自用的。这样的项目只需要功能实现即可,也就是“能用就行”,“我上我也行”,这样的项目可能本身没有什么技术含量,也可能因为规模问题根本用不到一些高端的技术,久而久之就只会做到“能用就行”的级别。还记得12306网站一开始时的经常崩溃问题吗?没有真实的大规模应用场景的需求,没有人并且也不应该有人去为此做优化。
在学校有时会安排给一种可以授予“xx开发者”的项目,这种项目本质是什么的?是企业做出了某款产品,然后为了推广和测试其产品,让大家使用他们的产品去做开发,这时最容易的入口就是学校老师学生们,老师们能签到合同自然愿意,而学生们则变成了免费测试劳动力,对于学生将来的发展没有什么用途。
写在最后:
既然学校做项目有如此多“天生”的缺陷,那么学校做项目的优势在哪里的?AI柠檬认为,关键在于自主研发的前沿创新型技术研究及其成果转化落地应用。学校做项目要利用好学校自身的科研优势,而不是拿自己的劣势跟企业竞争,更不是老师为了自己赚些蝇头小利而让学生成为免费劳动力,而是应当发挥好学校的教书育人的作用,让学生能够更好的成长为一名能够了解社会、适应社会、符合社会需求的合格应届毕业生,以及前沿技术创新和科研成果产出的作用,回归高等院校的本质。
版权声明本博客的文章除特别说明外均为原创,本人版权所有。欢迎转载,转载请注明作者及来源链接,谢谢。本文地址: https://blog.ailemon.net/2021/07/03/cjznl/ All articles are under Attribution-NonCommercial-ShareAlike 4.0 |
“差距在哪里?是什么让我们在学校做的项目往往拿不出手”上的2条回复
分析太对了,但是这也是没办法的事情。学生本来是来科研的,但是拿你当免费劳动力,也是一点脾气都没有,许愿早点毕业吧。。。
是的 /(ㄒoㄒ)/~~