为什么会失败

首先得说下这不是标题党,只是我对自己真实思想的一个简单过滤和表达
       大三下中的一个月是在大连度过的,学校安排我们去东软进行实训,在这里的四个半星期里的实训中,收获倒是不少,跟大一大二学校安排的易思博的培训真是强太多了(这里我不想对这个公司进行评价,知者知之就行)。
       前进三个星期的项目培训阶段是对C++和Linux的入门介绍,因为对C++和Linux已有一定接触,所以这个就忽悠过去了。重头就是接下来的两个星期的项目实践了。毫无疑问,就如题而言,我所在的小组失败了。败得让我感到很窝囊,导致我进行了为期一天的反思和自责。
       先介绍一下背景信息吧,这两个星期我们要在Linux完成一个多媒体播放器,主要使用GTK+和GStreamer这两个技术,在C语言下完成。组长和组员都是老师随机安排的,每个组有5个人吧,我们组的平均实力在10个小组中算是中等吧。我不是组长,但因为是接触过早先Linux和C++,所以我无意发表的意见都被组长采纳,让我后来逐渐的主导的小组的分工和工作(当然这里不得不说这也是一个失败的因素,最能coding,却又忙最多的琐碎杂务)。反正这么一折腾,我们组完成的成果却是所有小组的中近乎最差的那个。
因为后期我在项目比重比组长还要大很多(因为基本上是我安排组长的工作。。汗),所以这次项目的主要责任应该在我,为此反思是相当有必要的,这样才会有更大的收获。
1.模块的正确划分
错误行为:一个小的项目或许不是很有必要将其划分为多个模块,但我却强行的将所有的逻辑工作单独的抽离出来形成一个逻辑层。
导致结果:这个设计造成了后期很多不必要的麻烦,使得各个模块之间的交互并没有达到预期的简化。
反思心得:良好的设计并不适用于所有的情况。
解决方法:我应该将逻辑层适当的弱化一点,不能将所有的逻辑都集中在一个模块中
2.接口的合理设计
错误行为:接口的设计我采用了很多的结构体。模块的交互都是直接采用GLib中提供的链表,但交互的数据基本上都是嵌套很深的结构体,而且还维护了一个包含链表的链表,所以我们最多的时候竟然有6层指针嵌套引用
导致结果:模块之间的交互数据难以生成和处理,更难以进行测试。而且因为是由不同的人来完成的,所以导致malloc操作和free操作不是很契合
反思心得:这让我深刻了解UNIX编程艺术中提到的,接口的简化。在UNIX下的编程思想是将接口的交互数据直接以ASCII的字符串来表示。
解决方法:如果我采用字符串作为交互的数据且单独加一个utilities模块专门用于处理交互数据与实际所需数据的转换应该会达到相当好的效果
3.工作的合理安排
错误行为:由于整个程序的架构和逻辑都是我一个人来完成的,在这方面我怕我的队友不好理解,或者说理解有偏差,会导致过多的麻烦,所以我一个人包揽了相当大的工作。
导致结果:本来酱油的组员依然酱油,不想酱油的却也只能酱油了
反思心得:应该充分相信队友,与其他组的比较,他们即使有组员不做事,他们也会有一定的工作安排。
解决方法:我应该协调处理组内事务,不应该一味的去无视那种能力稍差的组员的能力,虽然成功避免了他们帮倒忙,但也得想办法让他们发挥他们的优势
4.队友的充分了解和信任
错误行为:工作的安排相当不合理,怕别人不够深刻理解我的思路和想法,同时也过度相信别人的能力(只是指代码质量)
导致结果:怕别人不了解自己的思路和想法,这个就导致了我们小组的一员大将打了酱油。过度依赖别人的代码,导致后期代码整合的时候我为之调试花了比预期多很多时间
反思心得:正因为如此,我应该学会如何去了解一个人的能力和他/她适合做什么事情。另一位朋友说的对,一个小组中是应该需要一个技术顾问的,这个人应该对所有的模块都有一定的了解,好进行各个模块之间的协调和处理各种疑难杂症。
解决方法:应该了解组员的能力和性格,给之适当的分配人物,信任队友的前提是要对他/她有一定的了解。而且我应该放弃coding的职责,转向协调各个模块的交互和提供解决问题的思路
5.积极的处事态度
错误行为:项目开始之后的第二天就是周末了,我和一帮朋友去大连老虎滩去找乐子去了,相反倒有一批人选择了周末加班赶项目
导致结果:这次的项目中由于启动时间迟了整整两天,导致后期相当被动
反思心得:缺乏冲劲,这也是我发现我和身边的人最大的差距之一,缺乏冲劲,碰到什么事情都是一副交差了事的态度。小事倒也无所谓,但习惯养成了,马也成了骡子了。
解决方法:以后凡事应该首先考虑下休息和工作的界限,适当的牺牲休息时间是获取主动权的一个必要的手段
6.时间的有效使用
错误行为:每晚回去都是dota到一两点才罢休
导致结果:项目进度落后不说,这也导致第二天的状态低迷,严重影响工作效率
反思心得:这个应该算是工作之后的一种弊病吧。白天繁杂的工作完成之后,晚上就想着怎样去娱乐,怎样去放松。这与我当初所设想的工作之后也要坚持抽空的学习截然不同。
解决方法:改变这种现状或者选择逃避。至于怎么个处理还是有待斟酌,目前就将精力放在一些简单的工具的使用上吧,比如vi,gdb

 

 

勉强完成一个项目,给我的收获还是相当大的,反思之后才更好的理解我的不足与需要改进的地方,希望在接下来的项目中能够更好的在前次失败的经验上爬得更好,走的更远

 

突然发现iteye对Ubuntu下的chrome支持的更好了,不再象以前那样bug连连,赞一个

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