在重大產品決策或者大規模應用開發前一般需要進行技術選型,特別是需要開發一個之前沒有了解過的系統或者應用時,其目的是為了降低產品研發的技術風險。所以首先需要明確為什么需要技術選型、需要達到什么目的,整個過程需要有一套的組織流程來保證。
一般可以將整個過程分為調研、候選對比、關鍵技術驗證、原型驗證幾個階段。
在調研階段主要調研對象是目前該范圍業內主要產品以及開源產品,需要了解其主要技術特點和各自的優勢和劣勢。從以下幾個方面入手:
1、實現當前的需求,主要用到哪種技術;
2、該技術的成熟度如何,是否被廣泛使用;
3、該技術目前由誰支持,是否持續更新或者權威性如何;
4、該技術的優勢和劣勢,以及存在的風險;
5、技術的復雜性如何,當前團隊對該技術的熟悉程度和可能需要的時間;
在候選對比階段,是在前一階段基礎上選出兩種傾向用於最終路線的技術進行進一步的研究和對比。在此同時,需要需求人員給出產品使用的場景以及模擬,這一點是很有必要的。因為明確了產品的應用場景,才能對技術需要解決的問題進行更好的把握,避免選錯,導致最后項目失敗。比如有需要用新的內核開發游戲盒子的需求,主要解決游戲的體驗和流暢性問題,以及IE內核游戲盒子的弊端。如果需求只是這樣,並不能很好的指導技術選型,因為還不知道要支持游戲還需要些什么。因此還需要更明確的指出使用場景,如玩的是頁游,最少要穩定支持到10個游戲多開,頁游對CPU和內存等資源占用比較大,需要兼容到windows系統XP及XP以后的版本。這樣列出來后,技術人員就會知道使用的技術必須在游戲多開時和系統資源占用大時,應用要穩定和流暢。
在關鍵技術驗證階段,需要列出所有的技術驗證點,對驗證點描述、驗證方法、驗證步驟、驗證前提、驗證環境以及最后的交付物和評估方法指標在驗證方案中體現;
在原型驗證階段,主要是針對重點關注的場景,通過一個原型來整體驗證比較。在這個階段一般需要進行概念模型、編程模型以及結構設計例如設計時視圖、系統結構圖等,定義需要的API,必要時還需要划分子場景,在場景中包括場景描述、特寫、預研點以及相關設計。
以上是在技術流程上怎么選型,在選型時還要注意到以下幾點:
1、實事求是,不要一味的擁抱開源或者依賴收費支持,只選擇適合解決當前問題的技術。
2、不要炫技,熱衷於時髦技術,選擇最新的東西讓人有成就感,但沒經過市場大規模檢驗的技術,也會讓人陷入泥坑。
3、敏捷務實,借鑒其他團隊的成功經驗,並且不要過度設計和拓展。