我叫Siva,是印度海得拉巴的一名軟件開發人員。軟件開發是一份令人興奮的工作,因為你每天都可以看到新事物。如果沒有新的事物,我們還可以賦予一些舊概念新的有趣的名字,然后自娛自樂。但是,從我的角度來說,在印度做一個軟件開發人員略有不同,也有點難。總之,一言難盡。
來自于其他國家的軟件開發人員對印度軟件開發人員的看法,讓我大吃一驚。
所以今天,我想和大家分享我作為印度IT行業中的一名軟件開發人員的感受。
ps:這些純粹是個人觀點,不喜勿噴。
我的第一份工作
我的第一份工作是在一家小公司里,職位是Java開發人員。并且我的幾個非常親密的朋友也加入了這家公司。我很慶幸能在我職業生涯的初期就和一些非常有才華的人一起工作。
我的第一個經理習慣于強迫我們在工作的第2到3個月時間內只使用 Notepad+ + / EditPlus編碼,目的是為了讓我們熟悉如何編譯和運行程序,并知道編譯時和運行時的類路徑等。但是,架構師對此頗不認同。有一天,他看見我在用EditPlus編碼,就走到我身邊,說:“難道你去打仗都不用武器的嗎?”。他從我一片茫然的表情中知道了我并不知道他在說什么。他將鍵盤拖到他面前,下載了Lomboz Eclipse(一種Eclipse的變體,不過現在已經沒落了),然后給我解說如何使用它。此外,時不時地,他還教了我一些很有趣的鍵盤快捷鍵,用IDE代替Notepad/ EditPlus寫代碼的速度明顯快多了。
我從他們身上學到了了解事物的工作原理以及如何有效使用工具來加快工作的重要性。
對了,我的團隊領導是實戰經驗非常豐富的開發人員。他記得大多數核心的Java API方法,并對設計模式有一個很好的理解。他是一個完美主義者。即使只是代碼縮進不正確,他也不同意我們提交代碼。有一天,我們正在加班,時間甚至已經是第二天凌晨了,因為我們得提供一些緊急交付。然而即使這樣,他也堅持要糾正縮進,清理導入的包和未使用的變量,嚴格按照TABs和空格一致等原則。我們抱怨不休。
但是后來在融合來自于不同開發人員的所有代碼更改的時候,我們才意識到這么做的重要性。他總是說:“既然要做,就要把事情做好。否則就不要做。”
至于團隊中的其他成員,由于我們也是好朋友,所以彼此之間沒有任何沖突,也沒有政治矛盾。我們常常周五晚上開party直至凌晨2點,在辦公室講笑話樂得哈哈大笑。一切都是那么美好。
開啟我真正的旅程
3年后,我離開了這家公司,跳槽到一家大公司里,大公司意味著更好的工作,更高的工資和更佳的工作文化。然而我很快發現,并不是所有的東西,大公司都比小公司好!在那里,我遇到了一個有著可怕代碼庫的遺留應用程序,看得我真是頭大無比。
此外,和我一起工作的開發人員,都是這家公司的老員工,他們不愿意接受任何新的東西,沒有興趣使應用程序變得更好,只想墨守陳規,即使原來用慣的方法是令人痛苦不堪。
由于印度IT產業主要是基于離岸開發模式,大部分的時間我們都在維護遺留的代碼庫。我們很少有機會去搞新建的項目。即使是那些關鍵架構/設計部分是由現場團隊完成的新建項目。
幸運的是我有機會去參與一些新建項目,也涉及了從頭開始設計應用程序的過程。
許多公司里對那些想要繼續走技術路線不想轉去管理部門的程序員,都沒有明確的職業發展規劃。更糟糕的是有些公司迫使開發人員在具備了一定年限的工作經驗之后,步入人事管理的行列。
青菜蘿卜各有所愛,不是所有的開發人員都熱衷于技術,這無可厚非。有的人是做一天和尚撞一天鐘,有的人只想著不擇手段完成就好,不管代碼質量和可維護性如何。在印度,你很難找到那種充滿激情的開發人員,因為大部分人只是將編程當作工作而已,而是不是因為樂趣和愛好。
有時,我學會了新的東西,或做了一些很酷的玩意兒,環顧四周想分享我的激動心情之時,卻發覺沒有人能夠理解我的這種興奮之情。
寫博客
當我在一個項目中使用Struts 1.x框架的時候,我碰到了一些棘手的問題。并且在努力搗鼓了3天之后依然找不到任何解決方案。我不停地調試,搜索了所有的書籍和論壇。終于發現有人針對這個問題剛好寫了一篇文章,并提供了解決方案。果然他的解決方案是有效的。我向那位博客作者表達了萬分感謝。但想到還有很多不知道作者的博客也幫助了我很多,于是也想開一個博客回饋社區。于是,我有了我自己的博客,上面我陸陸續續寫了一些我學到的東西。
不久,我的文章發表在了DZone和JavaCodeGeeks社區網站上。雖然我的英語寫作能力不夠好,但我一直在寫文章,希望通過練習能夠熟能生巧。
當看到有人對我的文章評論“在你的文章中我學到了一些東西”的時候,我真的非常開心。我從StackOverflow,博客,論壇等社區中獲得了很多幫助,如果可能的話我也想盡我的微薄之力回饋給社區: -)
寫書
之后,我寫的文章陸陸續續發表在了DZone和JavaCodeGeeks上,我的博客擁有了越來越多的訪問者。終于有一天,我收到了來自Packt出版社的一封電子郵件,上面問我是否有興趣寫一本關于MyBatis的書,我當時真的是激動萬分。
在我答應寫這本書之后,他們開始向我解釋寫作流程和支付的詳細信息。他們可能不知道,即使沒有任何報酬,我也愿意寫這本書。我同意寫這本書是因為我對技術的熱情,而不是為了賺錢。
當我差不多完成我的第一本書的時候,他們要求我寫另一本關于PrimeFaces的書,我同意了。我大概花了18個月的時間來寫這兩本書。在這一年半的時間里,我沒有任何休息,沒有周末,也沒有外出游玩,什么都沒有。一有時間我就去寫書,或閱讀我已經寫好的內容看看能不能改動什么使表達描述更精準。
也正是這段時間,讓我意識到有一些自己的空余時間是多么的重要。寫書是非常耗費時間的。如果你寫書的目的是為了賺錢,那么我建議你換一種方法!
然后有一天,我收到了一個快遞,里面是《MyBatis》這本書的印刷本。看著自己的勞動成果變為現實,感覺真心太棒了。我激動不已。
充滿激情的開發人員面臨的挑戰
印度的軟件開發人員需要面對很多問題。
優秀的開發人員就像戰爭英雄
由于我們要做的大多數是遺留項目,或是在維護模式下的項目,因此管理層更喜歡那些忠誠的,堅守在公司的老員工(盡管很多老員工拿的工資并不高或者公司并沒有將他們當作一種資源對待),而不是技術力量雄厚的人才。
優秀的開發人員就像戰爭英雄,雖然在我們開啟新項目或創建一些核心設計的時候需要這樣的人才,但是一旦核心設計已經搞定了,其他的開發人員按照設計走也可以添加方法到流的時候,就像一旦戰爭結束了,那些英雄就會變得無人問津一樣,很多公司就不會再去關注那些優秀的開發人員。
許多非印度技術人員討厭印度的開發人員
我經常看到一些抨擊印度軟件開發人員的文章。當然,這只是一些個人的意見。
印度IT企業的主要問題是,為了獲得項目,他們讓客戶相信他們能在幾乎不可能的時間內交付項目。而為了達成這些瘋狂的時間線,他們將責任下放到管理人員身上,然后管理人員強迫團隊領導接受任務,而團隊領導再將截止時間扔給開發人員。這就是印度的開發人員面臨的最大問題。許多印度的開發人員不知道怎么說“NO”。他們只會默默地接受這種瘋狂的時間計劃,竭盡全力地完成。而這整個過程的結果是“不可維護的蹩腳的代碼”。
但是,我還有幾個問題。現場的非印度客戶怎么會相信“印度離岸團隊可以用6個月的時間建造現場團隊預估要18個月的同一個項目”?他們為什么不要求終端到終端的測試套件?他們為什么不要求代碼質量報告?
一分價錢一分貨!你支付多少,你才會得到多少!
那些大放厥詞說“所有印度程序員都很差勁”的人,應該先想清楚再說。這樣一棍子打死一船人,是要不得的。每個地方每個國家都既有優秀的開發人員,也有差勁的開發人員。我曾經和一些非常囂張傲慢的現場開發人員合作過。那么難道說所有的現場開發人員都是囂張的嗎?這當然是大錯特錯的。
我堅信,在印度也有很多偉大的開發人員和架構師,而且我和他們共事過。
也有很多像我這樣希望每天都能學到什么,想要成為比昨天更優秀的開發人員。這么多年時間中,我學會了“如何快速學習新事物”。所以,我竭盡全力學習,為明天做好準備。無論你要我使用的是Spring還是JavaEE,Python還是RoR,Eclipse還是NetBeans,我都能手到擒來,游刃有余。
繼社區之后
正如我說,在印度很難找到充滿激情的開發人員,因此我希望能夠多多接觸世界各地使用社交網絡如Twitter的充滿激情的開發人員。
我喜歡參加技術會議,喜歡接觸偉大的開發人員。但不幸的是,相比美國,印度這樣的會議很少很少。所以,我會在InfoQ,Parleys和Youtube上觀看那些會議會談,這是我的盛宴,令我心曠神怡。
展望美好未來
近年來,很多事情正在慢慢改變。如今的印度IT產業已經不再完全依賴基于美國的項目。印度企業中技術應用增長了很多。但是,除非思維過程得到改變,否則一切就都還是在原地踏步走。企業不應該再異想天開讓“9個開發者1個月時間發布一個新項目”。
開發人員應該更專業,并且當要求他們去做一些不能高質量完成代碼的實現任務的時候,能夠鼓起勇氣說“NO”。
總之,通過這些年的學習,我明白了軟件開發并不都意味著技術。關鍵是要理解業務領域,重視其他人的溝通交流。
-
軟件工程師
+關注
關注
8文章
218瀏覽量
21135
發布評論請先 登錄
相關推薦
評論