爲什麼會失敗

首先得說下這不是標題黨,只是我對自己真實思想的一個簡單過濾和表達
       大三下中的一個月是在大連度過的,學校安排我們去東軟進行實訓,在這裏的四個半星期裏的實訓中,收穫倒是不少,跟大一大二學校安排的易思博的培訓真是強太多了(這裏我不想對這個公司進行評價,知者知之就行)。
       前進三個星期的項目培訓階段是對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連連,贊一個

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