“工程輪崗”文化,最開始在2010年的時候,工程輪崗項目是每年的一些特定的時刻,可能運維就會很累,這個時候運維的人手就不足,公司就開展了這樣一個活動,大家都去學習怎么做運維,在運維很忙的時候,大家能去搭把手幫幫忙。后來公司發現這樣一個活動不僅僅在運維層面,我們還可以在所有的工程師的崗位上做這樣的事情。我們通過這個活動能夠讓全公司,讓大家更好的產生同理心,更好的去理解別人的工作。整體提高大家的協作互助的意識。
最后關于質量文化,這個公司像陸老師說的一樣,單元測試,代碼的測試覆蓋率是很重要的,當我們看到代碼覆蓋率的時候大家就想到了一點,比如做了很多的單元測試,我的覆蓋率很好,但是如果一個工程不做單元測試會產生什么樣的情況呢?并不是說僅僅的缺乏單元測試而已,如果不做單元測試就會發現有些代碼,甚至有些函數幾十行甚至幾百行的函數都有,其實這樣的工程它的可測試性是非常差的,我們通過單元測試去讓大家把可測性做的更好。
濟南網站建設公司就是多樣性和包容性的,多樣性是因為公司運營著一個社區,這個社區什么樣的人都有、什么樣的情況都會發生,所以,在技術崗、研發崗以及管理層面可能也都會有不同的情況,比如有不同的性別、不同的膚色、來自于不同地域的人,通過公司的包容性、多樣性的隊伍,創造一個更友好的環境,鼓勵大家的創新和協作,以及一些想法上的交流。公司的6個管理層只有2個是男性。
我們現在進入第三章,關于公司簡單介紹一下。左圖是Etsy的創始人羅伯·卡林,右側的是查德迪克森也是靈魂人物。公司的創業宣言:“為愛手工制品的人們提供交易和交流場所”。如圖,這是公司幾位CEO。最核心的靈魂人物,查德迪克森,2008年的時候他以CTO的身份加入公司,到2011年他成為了這個公司的CEO。在他在的這段時間,公司也起到了很大的變化,主要是工程上面,2017年西爾弗曼上臺。羅伯階段公司誕生了,到查德迪克森階段提高了它的能力,到他壯年的時候空有一身本領但是不知道本領怎么變現,這時候西爾弗曼來了,自從他上臺之后整個公司股價一直在向上爬升,一直到現在。
最后再跟大家說一下公司工程文化的演進,公司主要有4大項:1、放權和信任;2、集體責任;3、持續的學習;4、相互督促結伴而行。
它的工程演進史,公司在2005年6月18日成立,發展到2008年的時候,公司從4個人慢慢成長到了三、五十人,這時候也是出現了溝通不暢、每個部門各自為政這樣的情況,到了2008年的時候,公司覺得這樣不行了,管理層做了調整,由瑪麗亞·托馬斯和查德迪克森兩位高管,一個負責運營,一個負責工程,工程文化的演進從那時候一直到現在,開始了他們的DevOps之旅,從每日的站會,把溝通問題先解決掉,然后建立一種好的協作機制。演進之路分了5個部分,比如,那個時候網站穩定性不夠好,所以做了一些改進,引入了持續部署,當時公司的一些不好的技術也都廢棄掉了,包括數據庫層面的改造。
關于公司的工具文化,簡言之,工具是我們很多文化、很多價值的體現,工具只是一部分,只是一個窗口,通過這些工具的建設可以把一些不確定的事情確定下來,大家不斷的持續的優化、迭代工具的情況。
其實剛剛我們第一點說了,質量保障之道歸根結底為什么能夠做到這么好?這才是核心,就是公司的持續集成、持續發布以及持續部署,其實就是一個階段一個階段來的,也就是解決了我們產品快速的創新,最重要的是解決掉平均的恢復時間,因為大家關注工程能力的話,MTTR是非常重要的一個指標。
大家也能看到這張圖,是一個持續的流水線,從最開始的開發、集成到最后測試階段,到最后的上線,也就是說每一個階段往下游走時,哪一環節有問題都不會順利的走到下一個環節。
也就是在告訴我們這樣的情況是很好的,我們最后看到的東西都是測試通過的,都是質量達標的,當我們很多條流水線,很多條任務都是這樣做,都是沒有問題的,為什么最后生產的時候還是出了問題呢?是說我沒有做單元測試嗎?還是說我的覆蓋率不夠?也許是數據的問題,也許是配置的問題,是測試環節或者集成環境跟生產環境的容量與負載的不匹配導致的嗎?如何解決這樣的問題,我們努力的去測試,努力的去提高,就能避免這樣的問題嗎?顯然是避免不了的。既然避免不了,如何保證我們的質量呢?首先提及兩個概念,也就是剛剛提到的MTTR還有一個是MTTD。
在我們上線之后,還是要做很多的監控工作,像每個公司都有一些預警/報警,也就是說最后綠色的這一部分,上線之后綠色部分要做到的是什么,就是在提升我們的MTTD,也就是說,當問題產生的時候我第一時間就要被通知到,這樣我才能在第一時間去采取對應的措施。
假如我們一個月要部署的代碼行數是5萬行的話,如果按照之前的模式,不引入持續部署的機制,有可能是開發了一整月,到最后的時候5萬行代碼一起上線,好的情況就是什么問題都沒有,不好的情況就是出現了問題,那么一旦出現問題我們一次性Deliver了5萬行代碼,修復時間會很長。如果用流水線的方式做的話,拆很多很多個流水線去發布,這個時候我們感知到錯誤的可能性是非常高的,而且我們每次的發布可能就幾十行,至少不超過一百行的代碼,這樣發生了問題,很快的就知道問題所在,很快的就可以解決了它,很快的再去迭代發布,這個問題就沒了。也就是說我們MTTR的問題。這個公司每次發布部署的東西很多,部署的頻度很低,一周部署兩次左右,現在一天要部署幾十次或者更高,可能對于大家而言互聯網行業一天部署50次簡直太少了,但是對于這個公司而言它這幾年的變化還是很快的,而且按照這個公司目前的工程文化的發展持續學習,即便將來公司做的很大了,不像現在八九百人的規模,更大了,我相信也依然會做的很好的。
公司整個架構演進就是從2007到2011年的架構演進,也就是到現在這個公司主要的開發語言還是用的PHP,整個公司的技術演進時間軸如圖,在不同的階段引入了不同的技術,隨著人員的規模變化,也逐漸沉淀出了相應的工程師文化,無論是技術還是文化都是在慢慢的演進出來的。
最后“運營模式”,會后大家再看吧,因為今天時間不多了,我簡單給大家說一下。最簡單的介紹一下Etsy這個公司是做什么的,它是一個在線電商,這是一個標簽,它的品類比較有限,我們這個平臺只賣手工制品,不支持批量,而且在這個平臺上要想開店,首先你得是一個手工藝人,公司會去審核,一旦他發現你作為一個手工藝人在這兒開了個店,賣著從中國義烏來的產品,可能這個店就要被封掉了,它是不允許批量買賣的,可能涉及的方面也很多,而且這個網站的賣家和買家,70%以上都是女性用戶,可能女生更在意唯一性之類的事情。近期的一些熱點,針對這個公司的新聞也蠻多的,公司做的很多事情有可能不一定是在完全維護買家或者賣家某一方的利益,很多的規則可能還是來自于整個社區的反饋。
針對這個公司收益率、市盈率的情況,我也問了一下,包括美股的資料,這個公司的市盈率數字看起來還是有泡沫存在的。
轉載自:Testin云測