需求太多,是程式設計師們共同面對的困局。
從前端到後端、從資料到分析、從互動到測試,幾乎每個人都很忙。大公司的用人標準,早期有乙個很常見的說法,叫作「三個程式設計師,拿四個人的工資,做五個人的事情」。在行業高速發展期,給更多的錢,確實非常吸引人。但後來,行業發展不像早期那麼快速,內捲的趨勢隱隱然在加劇,乾脆就把「996」當作了工作的常態。這種情況下,需求多,讓大家自覺的加班工作,看起來就是很自然的現象了。
但是,你的需求真的多嗎?
某種意義上是的,產品不斷的在提需求,如果業務高速發展,那就多點功能吸引使用者;如果業務遇到瓶頸,那就多嘗試方法來尋找突破點。所以定期總有新的需求過來,再加上時不時的緊急任務支援,需求是真的多。
某種意義上卻不是的,並不是說我們真的做不完,而是要花費很多的經歷在需求溝通、合作方對接等雜事上。「白天開會、晚上coding」,是很多人平時真實的工作狀態,以至於我們喊出了「少開會」的口號,或者是封閉式開發,每天**時間內,誰找都不理。
每個組都在不斷的提公升區域性的效率,成果還是有的,只是全域性的效率卻一直上不來,根本問題沒有解決。
需求方想要什麼?用一句話解釋,就是持續交付有價值的產品。
我們可以設想兩個場景:乙個場景是在醫院中看病,每位大夫都是專家,看病速度又好又快,但我們卻要花費很多的時間在排隊上:檢查、交費、列印報告…… 醫院是乙個典型的區域性效率非常高的地方,但也是典型的全域性效率非常低的地方,因此幾乎每個人提到去意願,心裡都會默默的打怵。另乙個場景是物流快遞,現在的物流效率已經遠遠不是過去所能相比的,基本上在京東上下單,隔日就到非常正常,在江浙滬包郵區,很多**的商品也能做到次日送達。雖然區域性效率可能很低,例如快遞送到的時候我們不在家、例如快遞員丟到了快遞櫃中,但是從全域性來看,效率是非常高的,這也讓中國電商的購物體驗遠遠超過了其他國家。
其實在日常的工作中也是如此,業務、產品、運營等需求方,並不關心資料的建設情況是怎樣的,也不會關心現有的資料能不能體現出它應有的價值,但非常關心能不能持續的給我交付有價值的產出,哪怕這種產出只是匯出資料,也會給人帶來非常不一樣的感覺。
因此,我們最理想的狀態上,在整體協調的基礎上,提公升交付速度,同步提公升資源效率和流動效率。
但是,「屁股決定腦袋。理想都是全棧」,除非全部的東西都是自己做,不然跨了團隊、或者跨了合作人,效率總是有打折的。最核心的問題,往往都是相同的:「我做這件事的價值是什麼?為什麼不提前說一下?你真的想好了產品的價值嗎?」
可以說,資料持續交付的過程中,從來不缺少有經驗的資料工程師,而是缺少有價值的產品需求。
有些時候資料的同學很容易說話,幫忙做個事情,順手也就做了,但其實是不對的,工作還是要有原則的支撐。
典型的原則,有兩個:
很多時候我們接到的是乙個半吊子需求,分析人員覺的能做、產品覺得可行,然後找到了你,要求實現它,但仔細一看需求,跟想法卻有了千差萬別的地方,於是又要重新跟產品溝通,再核對一遍邏輯,砍掉一些需求。最後交付的時候,不僅樣子變了很多,週期也非常的長。
因此,在對接需求的時候,一定要有乙個意識,判斷這個需求的背景是怎樣的,產出的價值是怎樣的。如果確實很好,標記為p0,優先支援;如果需求本身就存在很多問題,那就標記為p1或者p2,反正都有問題了,就不要急於去交付。
有乙個很著名的利特爾法則,平均交付週期 = 在製品數量/吞吐率,如果我們想持續的交付產品,那就必須減少在製品數量。
因此,我們根據正常的產品交付週期:臨時、緊急插入的需求,作為p0需求;正常情況,規劃和排期的需求,作為p1/p2需求;其他需求,作為p3需求。儘管資料的研發流程與前後端不同,但分出個輕重緩急,也是必須要做的。
另一件事情,就是要有標準化的流程,並且能夠加速這個流程。資料團隊面臨的最大問題,是高速發展一段時間後,面臨的架構重構問題。我們平時為了快速搞定需求,會搞出很多臨時性的方案:例如命名不規範、沒有code review、ads跨層依賴ods等。儘管資料交付出去了,質量也沒有問題,但卻是對架構產生了很重大的影響。
解決的思路也是有的,但要看情況,有條件的可以自行搞一些自動化的監控過程:例如跨層依賴、**相似度、資料引用次數等;或者是提交的任務,定期交給負責人進行審核,簡單的掃一眼,就能減少很多的問題。
但根源還是在於團隊要有標準化的流程體制,定義明確評審標準、交付過程和驗收標準。這個流程很重,我們可以簡化,但不能沒有。只有堅持下來,才能夠在兼顧速度的情況,提公升架構質量,不然總有重構的那一天。
資料存在的意義是產出商業價值,而不是產出技術價值。換一換思維,把資源效率為核心,改為以流動效率為核心,或許你會發現乙個不一樣的新天地。
c 分類 機器學習 聽說你要用C 做機器學習
修改program.cs內容 using microsoft.ml using microsoft.ml.data using microsoft.ml.legacy using microsoft.ml.trainers using microsoft.ml.transforms using mi...
聽說你的模型損失是NaN
有時候,模型跑著跑著,損失就莫名變nan了。不過,經驗告訴我們,大部分nan主要是因為除數是0或者傳給log的數值不大於0。下面說說是log出nan的幾種常見解決方法。畢竟,計算機的是無法表示所有實數的,儘管有些函式得出的結果只能無限近似0,但是由於計算機精度問題,最後的結果往往被表示為0。比如si...
奇葩需求之寫不完的樹目錄
需求 資料庫行轉列關聯查詢兩張表得出以下資料表 前提 然後再根據多個任意字段 有序 分組顯示,選出的目錄拼成樹目錄結構,下圖是前提資料表 行轉列sql語句 select a.id,a.serial no as column1,a.title as column2,a.project type as ...