• <tt id="tje4v"><ol id="tje4v"></ol></tt>

        網站首頁 > 畢業設計> 文章內容

        思碼逸任晶磊:如何讓代碼管理寫代碼的?

        ※發布時間:2020-6-23 18:27:02   ※發布作者:habao   ※出自何處: 

          這不僅體現在動輒百萬的薪資上,也體現在婚戀市場的地位,“人傻錢多不回家,對象當找程序員”。人們對這個職業形成了一種刻板印象,似乎每個程序員都是高智商、低情商的天才,他們整日穿著格子衫,坐在電腦前打天下。

          的確,寫代碼是一份很難被量化的工作,很多公司對程序員考核的方式是寫代碼的行數。但只會讓程序冗余、故障排除復雜,就像比爾蓋茨說的那樣:用代碼行數來衡量編程的進度,就如同用重量來衡量飛機的制造進度。

          當然,也有公司用bug出現率來評估程序員,這看似合理,但在實際操作中,bug率可能不僅和程序員有關,也和需求方有關,譬如PM缺乏判斷能力,提出的需求不夠簡潔等等。

          大學計算機科學與技術博士任晶磊嘗試解決這個問題。2018年,他創立了中國領先的深度代碼分析公司思碼逸Merico,試圖用一種更輕便的方式,提高對開發者度量的準確率。

          我是任晶磊,2016年從計算機系博士畢業,之前我在CMU和Stanford都待了一段時間,做一些合作的研究項目。那個階段我們主要做軟件系統,也給開源社區貢獻了很多代碼,之后我加入了微軟研究研究院。2018年底我決定出來創業,和現在的聯合創始人殷和政、Roland一起創建了思碼逸這家公司。簡單來說,思碼逸就是通過深度代碼分析技術,主要包括程序分析和人工智能,來量化程序員的工作。量化分析的結果主要服務兩類客戶,一類是企業,幫助技術管理者和開發團隊去提升研發效能,另一類是社區,幫助社區呈現程序員的貢獻,也包括價值分配,比如開源項目的捐款分配。

          有句話這樣說,程序員的工作既像工人也像作家,要搬磚也需要靈感——量化程序員的工作效能是很難的。為什么我們還要對開發者和程序員進行這樣的工作量化?您是怎么發現這個機會的?

          這個問題可能永遠都沒有一個絕對的答案。應該說編程既有藝術的一面,也有工程的一面。從最早軟件危機開始,到創立軟件工程這門學科,可以說是人們認識到編程里面工程的一面,這也是整個行業認知的一次躍升,所以我們認為編程很大程度上來說是一門工程,需要精細化的管理去提升它的效能和質量。

          一個是2016年我在微軟研究院工作時,Facebook采用了統計代碼行數的方式來決定金,這種簡單的辦法一方面說明大家對于量化程序員的工作有需求,另一方面,這種做法可能并不適用于其他團隊,這件事情了我,我們既然做程序分析,能不能通過一些更智能和深度分析的方式來測量程序員的工作。

          另外也是因為我自己經歷過的痛點。我們自己這么多年來一直在社區,貢獻過很多的開源代碼,F在很多開源項目其實能收到一些捐款,但是怎么合理分配這個捐款一直是一個痛點。所以我們也想去解決這個問題,讓程序員的智力獲得長期的收益,從而促進整個開源社區的繁榮,特別是今天有92%的應用都依賴于開源軟件。兩個因素促使我們最早去研究如何量化程序員的工作。Lily:

          過去也有辦法。一類是像Facebook,簡單地依據代夢見屎沾身碼行數來判斷,但這顯然不公平,而且往往會引發一些濫竽充數的針對性行為。另外一類就是靠人際之間的相互評價,用匯報和PPT的形式看你做得好不好,但這里面有太多個人主觀因素存在。所以我們希望有一個更透明的數據驅動的方式來做這些事情。而且工作過程中可能有人干得多說得少,也有人是干得少說得多,我們希望幫助貢獻多的程序員把他們的貢獻顯露出來。Lily:

          從最宏觀的層面來說,全球范圍內有兩三千萬可追溯到的程序員,還不包括不在冊的興趣愛好者,這個龐大的群體在今天的社會里扮演著越來越重要的角色。在過去二三十年里,科技行業,尤其是以代碼為基礎的科技行業,對整個世界的信息基礎設施的建設越來越重要。但是無論是從管理者的角度還是開發者自己的角度來看,他們的工作都不容易被量化。

          因為一個工程師工作的量化并不應該取決于這個產品的好和壞。比如你看到兩幢樓,一幢樓特別漂亮,一幢樓設計得很丑,你天然會覺得漂亮的樓更好。但問題是這不反映工程師,也就是這幢樓的施工隊的水準,因為施工隊負責的是鋼筋水泥,是水、電、煤的布局走線,但這些是從表面看不到的。

          這就和大家今天看互聯網產品一樣,比如一個產品的前端交互界面和瀑布流做得很好,但這并不直接對應每一個開發工程師的工作究竟產生了多大的價值。所以對應到如何量化施工隊在后臺的工作,這其實是需要一套工具的。然而目前來說,這個痛點還沒有特別好的解決方法。

          因此市場上急需這樣一套工具,不只是能夠幫助開發決策者和開源社區,也包括每一個的開發者自己,去更好地量化自己的工作,然后提升團隊或者個人的戰斗力。

          那個論文其實就是我們研發的基本框架和最基礎的技術,也是我們產品到解決方案的一個支撐,這個關系就像當年谷歌的兩個創始人發表Page Rank一樣,從那個論文開始,一直到打造出今天谷歌搜索引擎這個產品,以及整個商業帝國。Lily:

          兩個出發點,一個是聽了Facebook的故事之后,我們覺得應該有更好的方式去做這件事,第二就是我們其實也想為開源社區做一些貢獻。我當年也想過,我自己能否全職擁抱開源,去做這些開源的項目,但這就涉及到很多關于資助和分配的事情。這兩點是促使我去研究這個方向的主要原因。Lily:

          從企業端來說,我們會給企業客戶提供三方面的價值點,也就是生產力、質量和人才。首先,生產力方面,我們的數據分析能夠體現出個人、團隊或者部門在過去一段時間內的生產率狀況,這個包括絕對值、項目進度,以及研發穩定性等等。

          第二,質量方面我們會看兩個層面,一個就是代碼本身,我們會通過靜態檢查發現代碼里存在的問題。另外我們還會量化一些過去不好量化的工程質量指標,包括復用度、模塊性等等,我們能通過量化這些指標來幫助公司改進和提升。

          打個比方,如果你也健身,就會發現一個有趣的現象。一個人在公園里跑步很難下去,因為你不知道自己跑了多遠,配速怎么樣,就會覺得自己很累。為什么需要跑步機?因為跑步機能讓你知道當時的配速,你跑了多少公里,你的目標是多少,這樣就會更容易,并且達到那個目標。因為在每一個時間點,你都知道自己的不足在哪里,該怎么去提高。

          對開發者而言,Merico就是這樣一個類似的工具。它不單有質檢和功勞分配的作用,它也能提供一段時間內的反饋報告。這對開發者個人來說,就像一個健身教練或者健身設備給你提供實時的反饋,讓你看到自己今天的不足,在第二天就可以更好地進行價值創造。

          對于個人開發者來說,與其把Merico看作一個或者管理工具,它其實更多是一個賦能產品,幫助開發者更透亮地看到自己的缺點,提升自己,我覺得這是這個產品給他們帶來的價值。

          對,我們的工具在開發者群體當中的反響其實非常好,大家不會,而是拍手稱快。過去很多程序員做了工作但無法通過量化的方式體現他們的功勞,所以我們這個工具能幫助那些干得多、說得少的人,更好地體現自己工作的價值。

          從整個團隊來說,我們可以提升整個團隊的研發效能和精細化管理的水平。過去老板可能會依據工時來判斷員工的工作飽和度,這就導致很多程序員的工作時間非常長,F在有新的工具能夠讓管理者從更好的角度去看大家的產出,這對開發者個體和團隊來說都是一件能提高效率的事情。Lily:

          以滴滴為例。滴滴代表一類客戶:本身規模比較大,大概有兩三千人規模的程序員團隊,有自己的效能團隊,有一些基本的數據分析的能力。但困惑之處在于,如果他們想深入到分析里,也會遇到非常多技術障礙,比如如何更深地理解代碼本身?這時候企業就很需要像我們這樣的公司來提供數據的底座,有了這個底座,才能分析出滿足他們業務的結果。

          成立兩年,思碼逸Merico的產品已經在字節跳動、滴滴、長亭、自如等各個行業的標桿企業里落地使用。想見在程序員績效管理,或者服務軟件開發者人群這個領域,還有大量的衍生機會。羅超,您怎么看這個商業機會?羅超:

          我覺得這是個很大的商業機會,我理解有三類人群在這其中扮演著非常重要的角色。第一類人群是技術管理者,對他們來說,這其實是一個管理工具,也是一個績效提升的幫手。第二類人群就是開發者自己,他們依然有持續提升自己的,但持續提升需要幾個重要因素,一是可量化的結果,二是實時且有價值的反饋,而這恰恰是Merico這個工具可以提供的。第三類人群就是開源生態,開源生態包含了項目的發起人,以及參與過程中所有的貢獻者。

          開源社區有兩個核心。第一是價值的量化,第二是利益和捐贈的分配。我們不能完全要求每一個人發揮白求恩式的去為開源社區做貢獻,基于這個分配工具,我們可以用非常清晰透明的機制來衡量每個人的貢獻,然后根據貢獻來分配捐贈。所以我認為Merico的工具對這三類人可以產生非常大的價值。

          另外,我之所以對晶磊和Merico有很高的期許,一個很重要的原因是,我覺得它可以在茫茫人海里挖掘出更多有亮點的人才。在中國的創業歷史里,大家會記住很多明星CEO、明星CTO,但中國或者世界的互聯網世界并不單純只是這些明星人物貢獻出來的,還有每個項目背后許許多多優秀的前端、后端代碼貢獻者,我們看不到他們,也沒有人記得他們。但我覺得這不對,而Merico這樣的工具就可以幫助我們去挖掘出這些人,記錄下他們的貢獻。

          我很喜歡一部叫《Moneyball》(《點球成金》)的電影,電影里Brad Pitt扮演了一個叫Billy的棒球教練, Billy帶領的球隊在和紐約洋基隊的比賽里慘敗,球隊里的三名明星球員也被對方挖走了。但這個教練覺得運動不應該只是基于一兩個明星球員,普通球員通過訓練也能打造出一支冠軍球隊,所以他和數據分析師合作,通過量化和數學建模的方式,統計大量數據。包括判斷球員應該以多快的速度響應,監測每個球員的反應速度和沖刺速度等等數據。通過這樣的量化分析,他挖掘出非常多平民球員,后來這些球員慢慢登上更大的賽場,最終他帶領的球隊在新賽季獲得了冠軍。

          盡管沒有一位明星球員,但Billy用這樣的方式激發出了團隊的戰斗力。我覺得今天的開發者世界也需要這樣的。一個大項目的成功,除了明星leader,他的背后還有太多人,而這些人是可以被量化工具挖掘出來的,Merico做的這件事就是一件很偉大的事情。

          目前這個產品線才剛剛起步,整體來說我們還是先從企業端入手。給開源社區提供服務的最基本的方式,就是幫助程序員、幫助項目去分錢。我們會提供一個智能捐贈頁面,捐贈者可以把錢捐贈到這個平臺。每月月底,平臺會分析每個程序員的貢獻,根據分析結果相應地分給每位程序員。

          就像很多VC投資的時候會看人,我們選擇合作伙伴的時候,其實也同樣是會看人的。和不同的人聊過之后,你會發現有些人能夠抓住主要矛盾,能看到很多問題的實質,能夠知道哪些是必須的,哪些不是。其實我們做數據分析也是同樣的價值觀和目的,我們需要從各種噪音和數據中提取那些最有價值的東西,所以和羅超聊過之后,最大的感受就是他在這方面的能力非常強,他能很快看到事情的本質。

          您本人和您的團隊其實都是學術派出身,現在在公司的管理和運營過程中,有沒有遇到什么有趣的挑戰或者有趣的故事可以和我們分享?任晶磊:

          我覺得大家可能對學術派有一些預設的想法,但其實一個博士生的訓練常全面的,從某種意義上來說,寫Paper(論文)和寫BP(商業計劃書)有很多相通的地方。首先要定義一個非常有價值的問題,然后提出一個解決方案,最后在Paper里通過做實驗去驗證這個方案。這其實和創業有很多共通之處,而且作為一個博士,也要去系統地講自己的想法,這些訓練其實都是商業世界里需要的能力。所以我認為一個博士的訓練其實為創業打了很好的基礎。

          當然回到這個問題,每個人有不同的背景,他一定會有可能被忽略的短板。比如在某些產品設計上,我們有時候會高估用戶對某些概念或者圖表的接受和理解能力,所以我們需要不斷地簡化,把信息進行分層,然后讓用戶以最簡單的方式去消費數據。這就涉及到產品設計,所以我們也著重擴充了產品方面的能力。

          原來大家造樓、造橋、修,最怕的是什么?是豆腐渣工程。因為負責團隊也許會偷工減料,表面一層鋪得特別好,底下全是豆腐渣,這是過去基建中會遇到的問題。同樣地,新基建是大數據、智慧充電、工業互聯網等等,表面工作可以做得很優秀,但后臺到底怎么樣?算法能不能在每一個環節實現最優化?數據獲取和傳輸協議是不是最好的?這些問題才是構建新基建的基礎,而這些問題光看表面的UI是看不到的。

          基建的原材料是鋼筋、水泥、石灰,而新基建的基礎其實就是代碼。所以對代碼的檢測其實要細到每一個項目,每一個項目都包含無數行代碼,我們如何衡量它的價值、它的貢獻、它的穩定程度呢?這些都得通過代碼分析工具去完成。

          所以,如果未來有越來越多的團隊在新基建的各個領域成為施工隊,我覺得這些團隊都應該考慮使用Merico。因為作為一個團隊的管理者,作為新基建的投資方,他也希望這些項目能真正扎扎實實地幫助到新基建,而這個工具在該領域好可以產生價值。任晶磊:

          是的,新基建其實需要大量的開發者投入其中,可能需要工作多年,搭建起這些新的基礎設施,在這個過程中,我們希望通過數據分析,提升管理效能,幫助這些工程以最高效、最高質量的標準去完成。Lily:

          所以未來我們還有很多計劃把Merico的產品向外延伸,或者是產品的迭代,再或者我們也可以把它放到新基建公司對軟件工程師的管理中。任晶磊:

          對的,軟件工程師這個群體還常扁平的,不論是哪個國家、哪個公司,大部分的開發行為其實都有內在的規律,軟件工程這門學科其實是適用于不同行業的。Lily:

          過去大家覺得軟件工程是一個獨特的行業,但其實它無處不在,比如我們的寫字樓的門禁系統,一定也有代碼系統。所以未來這可能會變成一個人人都需要掌握的技能。任晶磊:

          沒錯,也許未來很多行業里,人們的行為也慢慢地代碼化或者數字化了,這其中我們確實可能有更多分析的空間。有這樣一個場景,就是組織程序員活動的時候用代碼控制系統來記錄大家的工作內容,大家把自己的活動記錄放到代碼庫里,盡管它不是傳統意義上的代碼庫,但它確實形成了一個代碼庫。Lily:

          確實,比如過去我媽媽上班的時候,她用筆來記錄大家每天的工作內容;現在我們用Excel來追溯每個人的工作;未來可能是用代碼數據來追溯和量化每個人的工作,這非常有趣。那如果未來還有人想在這個領域創業,您覺得哪些方向還有機會?羅超:

          我相信對于任何一個人群,他們的需求都是多樣化的,可以服務或滿足這些需求的方向也很多。大家可以不單純從工作職業的層面去思考,比如我們看到一個很有趣的現象,美國硅谷的工程師、開發者,他們除了自己的工作之外,往往有非常多的興趣愛好——玩單板、滑雪、沖浪等等。國內的程序員也有很多個人愛好,如果現在讓我拍腦袋想,我覺得第一個需求可能是程序員相親,這可能會是一個很重要的細分賽道,因為程序員的接觸面比較窄,興趣又比較集中于某個特定領域,程序員之間的話題相親有可能是一個很好的服務點?傊,我相信想要服務好這個人群,能做的事情其實是很多的。

          

        相關閱讀
        • 沒有資料
        平特精版料