對於**或者平台,大多不可避免的要和第三方合作、或者接入第三方平台,合作的實現多是通過對對方介面的呼叫實現的。例如:**使用者共享、網銀支付的接入、無紙化彩票投注平台的接入等等。
和第三方合作的介面開發工作,我做了沒10次大概也有7,8次了吧。在這些合作的開發過程中,遇到過很多這樣那樣的問題,有些問題覺得還是有必要記錄下來,反思一下,另外也由此延伸,想到了關於技術負責人應該擔負的責任等問題。
第一:介面開發的流程問題。
介面開發的大致流程:
1.和第三方討論需要實現哪些介面。
重點是要確定每個介面的具體功能。介面引數在開發過程中常常會有變動,所以討論中一般不會明確定義。
2.編寫詳細設計文件。
文件包括介面名,引數名,引數型別,返回訊息格式等,並提供給合作方。
3.編碼
介面根據實際需要進行調整,同時更新詳細設計文件,保持介面詳細設計的可追溯性。
4.測試
包括介面內部測試、修改,和第三方的聯調。
5.上線
介面正式上線,測試通過則上線成功,失敗則回退,並從第4步開始新一輪的測試,直到系統上線成功。
常見問題:
1.詳細設計文件應付了事,甚至不寫設計文件。
實際的開發過程中,由於時間的原因,或者開發團隊對設計文件的不重視,造成有的開發者忽視介面設計文件的作用,甚至不寫設計文件。
設計文件的缺失,往往會造成:人員流動時,系統無法順利交接;會給介面的公升級,帶來重重困難。
2.不按合作雙方的介面定義,私下決定不實現某些介面。
這種情況不一定每個人都會遇到,但我確實遇到過這種事情。某一次和乙個比較有名的體育社群的合作過程中,由於我們的平台是類電子商務的,所以要給使用者建立財務賬戶,如果我們系統中不儲存使用者的基本資訊,就沒法為使用者建立賬戶。
所以我方提供的介面文件中,有乙個註冊介面,需要使用者在體育社群的註冊時,同時把資訊傳遞到我們的平台,這樣我們就會為這個使用者建立財務賬戶,否則,使用者登入時就會有問題。
合作方對介面文件沒有提出異議,但雙方介面上線一段時間後,一次偶然的聊天過程中,對方開發人員透露,他們根本沒有呼叫註冊介面。嚇了我一大跳,多虧我們前期的設計和編碼中考慮得比較完善,否則,介面上線後,不堪設想。
所以,大家一定要遵守事先的約定,不要違背事先的約定,否則會出大亂子。
第二:介面開發過程中,發現原有功能設計有不合理的地方,應該對系統重構,還是僅僅實現功能了事?
以我的經驗而言,總的來說大多因為原有介面缺乏可擴充套件性,導致新增新功能或者介面更改後**冗餘的問題。究其原因,有下面幾種情況的原因:
1.開發周期比較緊張,來不及對原有**重構。
2.開發人員懶得去重構,或者不具備重構的能力。
個人認為,這些問題歸根結底要由開發流程來約束和控制。
開發周期緊張的情況下,技術負責人一方面要爭取盡量多的開發時間,另一方面要根據開發任務的難度安排水平盡量高的人員來做;如果高水平的人員有了,時間還是緊張,可以考慮在以後某個合適的時間來重構這部分**,千萬不要讓這部分待重構的**永遠的等待下去。應該制定合理的重構時間表,作為正常的開發流程的一部分。
第三:技術負責人在系統構建過程中應該擔負哪些責任?
無論系統對外介面,還是系統內部功能,都是整個系統的一部分,都是技術負責人的控制範圍。
個人認為技術負責人應該對開發流程的建立、系統質量負主要責任。能否建立合理的開發流程,能否領導開發人員產出高質量的軟體系統,是乙個技術負責人是否合格的很重要的判斷標準。
就算開發團隊中,開發人員數量充足,水平夠高,但是開發流程不完善,缺乏合理的約束,往往會導致一部分人滋生得過且過的心態,編碼完了基本上就算了事。有的人爭取盡量多的空閒時間來學習新技術,為將來謀劃;有的人剛接了私活,人家催的比較急,需要上班時抽空做呢;這種情況並不少見,怎樣在這中惡劣的情況下保證開發工作在規定的時間內、高質量的完成?沒有嚴謹的、合理的開發流程根本不可能領導這些"各懷心腹事"的開發人員研發出高質量的系統。
個人認為,技術負責人一定要抓住軟體開發過程中的三個關鍵點:測試、**複查、模組重構,一定要重視再重視,程式設計師和老闆講解它們的重要性,他很可能不明白其重要性,但是技術負責人千萬不能不重視這三個環節,如果您都不懂或者不重視,那最終產出的是什麼樣的系統,大家可想而知了。
技術負責人的三種角色
企業管理是一盤棋,而技術是支撐企業生存和發展的重要一環。因此,作為企業的技術負責人,無論企業處於發展中的哪個階段,實施管理都無外乎是要做好幾件事 定目標,在深入了解企業的資源狀況和整體目標的基礎上,做好相對固定的長期技術計畫 分任務,做好計畫以後,把計畫分解成若干技術執行人員能夠充分理解和執行到位的...
技術負責人的三種角色
from 摘要 公司的發展會經歷各種不同階段,比如初創期 發展期 穩定期或擴充套件期,也許發展中很多時候是瓶頸期 對於不同發展階段,公司的技術負責人應該承擔怎樣的角色?該挑起什麼擔子?重點該聚焦在哪些方面?企業管理是一盤棋,而技術是支撐企業生存和發展的重要一環。因此,作為企業的技術負責人,無論企業處...
技術負責人的三種角色
發表於 2014 11 11 16 12 程式設計師 高博 程式設計師 雜誌 2014年11月刊 管理實踐 團隊管理 企業管理 ctocto俱樂部 摘要 公司的發展會經歷各種不同階段,比如初創期 發展期 穩定期或擴充套件期,也許發展中很多時候是瓶頸期 對於不同發展階段,公司的技術負責人應該承擔怎樣的...