【作业】2020年高等软件工程中期总结与反思

恩恩,按照国际惯例,开头得先好久不见一下,毕竟这是必须的程序🐶。

不过这次呢,从某种意义上,真的算是好久不见了,相比于我第一次写博客,相比于我第一次在工程实践类课程上写博客,相比我第一次从课程角度而非学生角度写博客,相比于第一次写软工课程的博客和总结而言,真的挺久了。有些想法呢,该刷新了,也确实刷新了,程序都得不停迭代,开源都得commit热乎着的才靠谱,那我本人的脑瓜子当然也不遑多让。

综上,是时候该写点啥了,算是做个纪念吧。

这阵子折腾了点啥

这阵子的话,其实说干了啥,也干了不少,但是又很容易感觉啥也没干。

就我个人而言,大概这么几件事:

  • 复习了一遍UML相关的基本概念和基本使用方式
  • 了解了软件工程在需求分析、设计等方面更深一层次的技术和方法
  • 带领小团队搞了一两次事,弄过领域分析和需求建模分析
  • 我个人的话,对后续的技术开发进行了一定的技术调研以及技术选型

看吧,很简单对吧。不过要说的话,还是挺值得说一说的。

首先第一部分,字面意思,复习,毕竟本来就接触过,那自然没太多疑问,了解了其基本思维(即,UML是一种建模工具而非绘图工具)后,就是对思维的不断训练,以及对工具使用的不断熟悉。关于UML相关,强烈推荐PlantUML,简直最对程序猿胃口的UML工具。此外,还得强烈推荐下我写的一个开源项目plantumlcli,Github地址:https://github.com/HansBug/plantumlcli ,国内Gitee地址:https://gitee.com/hansbug/plantumlcli ,现已正式上线pypi,并已经在一些地方投入使用,目前使用体感很舒服,对持续集成等自动化场合以及爬虫搭建场合都十分友好易用(关于这些抽空专门介绍一下),欢迎各位支持一波。

第二部分的话,则是了解了一下RUCM等技术和方法。实际上经过这段时间的学习,并不难发现,其实不仅在技术领域,甚至也不仅在管理领域,而在需求描述、分析、建模等领域,实际上也都有了一套完整的技术和方法,其中一部分还已经有了成熟的工具链。而很多时候,比起靠自己瞎琢磨到秃瓢,还是按照这些方法有章有法地来更靠谱点。实际应用场景下的应用,已经充分证明了这一点。

第三部分的话,还是字面意思,带了一次团队,做了点不伟大的事情。嘛,毕竟事情不是我说伟大就伟大的,况且大多数的人也对伟大无感更无欲望,人之常情而已。这部分的话,虽然笔者之前有多次带团队的经验,但是这次的情况可谓截然不同,不同到完全需要换种思路来想问题的程度,这部分在后文详细讲述。

第四部分的话,传统艺能,我个人最喜欢的纯技术环节。在瞎折腾开源代码的同时,还对一些曾经不那么了解的技术栈重新认识了一遍。这就好比去菜场溜了一圈,有啥好的食材大概心里有数了,然后接下来开发也就是买来食材下锅煎炒烹炸了。该部分不想多言,常规操作而已,唯一可能有说头的,就是这里面一部分开发成果,后续也可能考虑进行开源放送,敬请期待

恩,这阵子就是这么平淡无奇。大概,平平淡淡才是真吧,毕竟波澜壮阔久了,晃得人都晕得找不着北,越发像堆烂泥,这时候静一静,醒醒脑子,未免不是一件好事。

这阵子琢磨了点啥

首先,这段开始之前,我得强调一下——该段对事不对人,所有的分析只用于描述客观事实,没有任何看得起或者看不起任何人的意思,无意冒犯,如有冒犯,我很遗憾

好了,说完干的事实,接下来说说做了啥春秋大梦,啊呸,做了啥思考。

首先,在写此文之前,笔者又读了一遍自己在大三那会本科软工课写的思考文:

现在的笔者,和那会不同的是,可能不太会去站在课程角度思考分析,毕竟这个课内容已经开始比较硬核了,笔者没那么勇气说自己无所不知,所以大概更该做的还是带着耳朵和脑子,当一个学生更合适。

然后,对于那会的一些想法,大部分笔者依然感悟没太大的变化,毕竟一脉相承的,况且也都经历了实战的考验。不过,唯独在一件事情上,我觉得非常值得好好说说,那就是带团队的问题。

仔细回忆一下,据不完全统计,笔者以前以领导者身份带过的团队(以成员身份参与的一概不算在内;此外,笔者从小就是个过街老鼠式的角色,这样的事在大学之前根本就是不可想象的):

  • Questionor题库网站团队(笔者的第一个实际投入使用的作品,各方面都是真真正正的第一次,部分地方可谓创造奇迹;本网站于2020上半年因为校方支持中断且联系不到合适的下家而停止运行)
  • 同袍智慧校园App团队(笔者从学长手里接手的产品,自己组建了新的班子继续运行;于2019年交接至后续团队)
  • 2017-2018冯如杯科技竞赛团队(笔者第一次将一手好牌打得稀烂😭,明明全组的大佬但是最后输的非常惨烈,此后笔者开始了历时一年的闭关修炼,卧薪尝胆并积蓄力量)
  • 北航2019年OO课程助教团队及系统开发组(笔者第一次去运维非纯技术团队,也是第一次尝试如何去放权,也是一次真正的创造奇迹,无论是技术层面还是非技术层面都是如此),后续人长期OO课程系统组技术支持(算是半个带领者吧,不过同时也得充分考虑如何让后续的学弟学妹们成长起来,毕竟不是人人有能力像笔者一样2019年初那会俩月造一整套系统,如何让这个团队长期稳定下来是个亟待解决的问题,这不仅涉及技术问题也涉及结构性问题)
  • 2019年本科软件工程团队(这次严格来说算不上完全领导,实际运维是交给了组里的PM大佬,笔者更像是个垂帘听政的存在,只会在一些大问题上发表看法或者亲自操作,毕竟和OO那边同时进行,有点忙不过来)

其实回忆起来,这些组的成员中负责技术开发的,基本都是清一色的大佬,都是具备很强自我学习能力、自我适应能力,而且基本功扎实人还聪明靠谱的那种,甚至不乏那种即便在笔者本人不在时依然能扛大梁的潜在核心级人物。

而在这样的阵容下,笔者一般的套路,就是最为简单的一个萝卜一个坑,一个人一个任务,只管做下去即可,一字排开立起盾牌应敌。没啥问题是这样解决不了的,如果有那就调动增援或者必要时亲自参战。这样的套路,可谓是屡试不爽,毕竟组里要么都是大佬,要么也都是基本功十分扎实且靠谱的战力,自然没啥好担心的,很简单。

可是这次,情况变了,我这边的人员配置情况为:

  • 甲,本科北航非科班,学过C语言考过考研题,准新手水平
  • 乙,某211或985(不太确定)计算机专业,具备计算机专业的基础知识,搞过一点小东西,但是经验明显不足
  • 丙,某985软件专业,具备计算机专业的基础知识,似乎有点经验(据笔者判断可能实习过),但还是能感觉到稍显稚嫩
  • 丁,某985软件专业,基本功不明,实操经验极低,大概会是个理论型选手
  • 笔者,不必多说,看看我知乎,看看我博客,或者知道我真名的人百度搜下,大概就该知道是怎么回事了

首先重复一遍,没有瞧不起任何人的意思,只是客观反映事实,更没有想对研究生群体开地图炮云云。这四位同学的水平,有一说一,都明显低于北航六系本科毕业生平均水平,具体表现为实战经验的匮乏,所掌握的技术栈广度偏低,部分同学主观能动性也很低。

在这样的一个基础配置上,按照原本的思路可就很难办了。最起码,一个萝卜一个坑,在这里头怕是行不通。而且还有更为要命的一点——高软毕竟是个课程,周期短的很,而且很大一部分时间都用在了非技术开发的时间上,留给我们的时间真的少之又少。在这种短周期环境下,甚至不敢保证能将有一定基础的成员发展壮大起来,毕竟等到那时候恐怕一切都结束了。

后来和一些富有经验的人士进行了交流,我变换了一种思路,虽然是一种非常权宜的思路——物尽其用。具体来说,我本人作为技术的核心主力;两位有一定经验的会进行辅助,配合主力作战并在实战中尽快提升自己,有一点算一点;而实际上团队协作还有一些非技术的问题,比如沟通、调研、了解情况、文案等,和技术无关甚至还有点麻烦,但也总得有人去做,那么交给剩下两位,让他们负责。

看起来很简单对吧,可是实际上效果超乎想象——两位非技术成员,其中一人沟通能力相当强大,几乎摆平了一切的外围问题;我本人,一向是个单线程大脑,不擅长同时应对很多很杂的事情,而一旦有了一个相对安定的内部环境,那对笔者而言是一个非常重大的利好,可以让笔者的注意力都放在核心工作和调度上,工作效率翻了几倍;而两位技术成员,则各司其职,稳定的完成了布置得任务(本次布置得都是局部且清晰化的任务,并且有笔者兜底,给他们充分的自由发挥空间),并且在后续时间吃紧的时候,也都起到的非常关键的作用,充分并行起来提高效率。

最终在这个阶段,我们组取得了还算不错的结果,算是一个阶段性的胜利。

引用一位老哥的博文我是如何失去团队掌控的?中的一段话

  1. 项目中总是会面临资源不足的情况,永远不要想着项目中拥有最适合的资源、人员。毕竟最适合的人员不可能一直等着你的项目
  2. 带项目就像打牌,一手好牌做好了项目是应该。而一手烂牌打赢了才是你的能力

这次笔者的实践就是一个最好的说明,一群大佬一字排开,简单得很,但是没啥值得高兴的;真正困难的在于如何将不太乐观的局面变成一片大好,这才是能力。这也是笔者后续更需要进一步修炼的地方,毕竟世界很大,需要去体会的人和事多的很。

这阵子想说点啥胡言乱语

好了,又到了一文一度的总结胡言乱语时间。

还是老规矩——该部分的话可能会戳着有些人的肺管子,但是我觉得就是得这样才有说的意义,才会有更多人开始知道皇上原来正光着屁股在大街上瞎溜达。但是我不求人人都愿意醒着,那不现实毕竟人性使然,所以烦请玻璃心们绕道,没必要难为自己的小心脏,要好好爱护自己,感激不尽。

首先关于思考,我个人一直认为,这才是一切学习所真正必须的。这也解释了为啥有些看起来贼努力贼认真的学霸,进了这个专业后分分钟兵败如山倒。就算再努力,只要不带脑子学习训练,那谁也救不了你,这个专业尤其如此。用战术上的勤奋掩盖战略上的懒惰,把自己感动的鼻涕一把眼泪一把却啥都没干出来,实乃掩耳盗铃买椟还珠的可笑之举。可是有时候有没办法啊,我们的选拔还真就是存在这样的错位,我们的教育教育出了大量相信努力等于成功,付出必有收获的人,我们的选拔选拔出了大量对努力二字深信不疑的努力家们(毕竟那种学习成长环境,除了高考外一切都被剥夺是常态,但是人作为有自我意识的生物,总得信点啥,于是就有极大的概率会饥不择食),而真正带了脑子这一对学习而言至关重要的东西的人,却反倒没那么常见(当然,也有又努力又带脑子的人,那种人往往会强的离谱,笔者见过这样的,但真就是凤毛麟角),然后一到了现实中,深信不疑十几年的三观被摔成渣渣,其中一部分意志还算坚强,或者开始明白带脑子重要性的那些,卷土重来,真正成长起来,开始独当一面,在这一过程中,他们会收获真正属于自己的信念,并坚守下去;而另一波天真无邪的可爱宝宝们,则彻底黑化,作困兽斗而不得突围,乃至走向彻底的消极与沉沦。嘛,其实这也都是常态,笔者本人从小就是个有些离经叛道的角色,认为凡事无绝对,相信活人不能被尿憋死,更不太瞧得上所谓的努力学,说白了,从小就不信邪。诸位可以想象下,在我们的教育环境下,对这样的人能有多少宽容。但是这几年,真的看见了好多回乖宝宝们的悲剧,以及他们看着揪心却又无谓的挣扎。算了不多说了,聊点别的。

然后,近期听到我一工作过的好兄弟说了一句话,原话忘了,大致意思是——人在外头混,要么得会做事,要么得会做人。这句话真的我得给一万个赞,非常准确传神👍。成年人相处最基本的原则无非就是价值交换,很直截了当没那么多虚头。你若会做事,有一技之长,能扛起大梁,能当个好团长,那么自然没啥好担心的,一个李云龙的战斗力想必没人怀疑;倘若不擅长这些,要是能促进沟通,充分协调人际关系,当个好政委,那也一样吃得开,正如独立团不能没有赵刚;可是,你要是又不会做事,又不肯好好做人,非要当大爷当小公主,指望身边的人陪你玩过家家游戏,那就是很荒唐的了。而这类人,常常最喜欢强调自己的所谓“人权”,仿佛卢梭那么一句“天赋人权”就给自己披上了坚不可摧的战甲,让自己可以为所欲为。可是这些人常常又只知其一不知其二——当你有权选择别人的时候,别人也在选择你,你有人权,别人也有。当你会做事,或者会做人,或者家里有矿,总而言之能给人带来价值的时候,你当然可以堂而皇之说人权,不仅啥毛病没有,还可以获得一众喝彩;但是你没有这些资格的时候,却喜欢大谈人权,遇上礼貌的会表示非常感动然后无视你,遇上一般的会用关爱智障的眼神看着你,遇上暴躁的会直接嫌你吵然后把你乱棍打出门,就这么简单。所以说,人应该透过现象看本质,还是该脚踏实地,要么会做事要么会做人总得会点啥,只有这样,你的人权才不会是一个有价无市的东西。

这次的胡言乱语,大概就是这么一些些,这些事呢,也都源于生活。笔者这人有自知之明,知道自己是个十足的傻瓜,一个永不会满足于自己吃饱喝足老婆孩子热炕头的傻瓜,一个热血就没凉过总是希望世界变得更好的傻瓜,但是这个傻瓜明白一个道理,即学医救不了国人编程亦然这一道理,然后就会有时候常常会哀其不幸怒其不争,自说自话两下子。还望各位海涵,以及,批评指正。

就酱,完事,开溜,掰掰。。。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章