六個可能導致軟件開發如此困難
復雜的代碼庫。準骨規格。時間緊迫。
如果這些聽起來很熟悉,那么您并不孤單。盡管軟件開發是美國增長最快的軟件之一,但它卻是一個很難工作的領域。開發人員經常會疲憊不堪。一項調查顯示,科技工作者的倦怠率接近60%。
在這篇文章中,我們將研究六個可能導致您精疲力盡的重要原因,以及如何使您的工作更輕松一些。
管理多個項目和期望
開發人員經常同時處理 多個項目和任務。有時似乎每個人都需要您的時間,甚至其他開發人員也是如此。了解時間和地點的分配方式對于按時完成任務和避免緊急情況至關重要。
不幸的是,估算工作量是開發人員要學習的最難的技能之一。項目通常看起來很簡單,但是在開發過程中會分崩離析。快速修復可能會變成漫長的夜晚。諸如設計問題,與其他系統集成,繁文tape節和意外錯誤之類的無數變量可能會阻礙進度。
同時,經理和利益相關者希望盡快交付成果。移動得太慢,您將被推后推。移動得太快,您可能會過度勞累,精疲力竭并犧牲品質。學會妥協很重要,但是需要您對自己誠實并意識到自己的能力。
你能做什么?
首先跟蹤您花費在任務上的時間。使用工具,如Toggl,Clockify,或Kimai,和你的下一個Sprint回顧期間審查。一旦了解了時間的流逝,就可以了解可以削減或委托他人執行的任務。
如果工作范圍對于當前迭代而言似乎太大,或者威脅到一個艱巨的截止日期,則將不必要的更改推送到下一個Sprint。對于最低限度可行的產品(MVP)尤其如此,因為漫長的開發周期可能會使最終產品面臨風險。通過實踐,您將能夠更有效地管理項目和任務。
沒有正確的資源或要求
開發人員需要資源,但是不幸的是,我們常常得不到所需的東西。系統,IDE,對環境的訪問,規范文檔,共享的知識庫,一個體面的工作站-如果沒有這些,您甚至會在編寫一行代碼之前陷入困境。
規格和要求特別重要,經常會丟失。沒有要求地編寫代碼就像在沒有藍圖的情況下蓋房子一樣,幾乎總是導致工作量的浪費和技術負擔。只要每個人都堅持要求,需求就可以為每個相關人員提供明確的方向并建立共識。
你能做什么?
與您的團隊聯系,獲取對您當前工作或總體職位至關重要的任何資源。向您的團隊負責人發送書面請求(電子郵件,Slack等),并安排提醒,如果需要很長時間才能與您聯系,請及時跟進。如果仍然沒有獲得所需的資源,請詢問需要該資源的功能是否確實必要,或者是否可以等到下一次迭代。并且在站立時請務必提及您的阻滯劑。讓您的團隊了解所有問題。
當涉及到需求時,請花費額外的時間進行適當的審查。如果沒有記錄在案的項目要求,請堅持要求!與項目所有者和主要利益相關者進行面談,以了解項目的目的。除非您對工作有完整的了解,否則請不要執行任務。
了解復雜系統
一個組織的代碼庫可以由數十個或數百個不同的開發人員進行數十年的組合工作,每個開發人員都會帶來其編碼風格,決策和注釋級別(或缺少注釋)。您可能會繼承令人困惑或徹頭徹尾難以理解的代碼,并且需要花費大量時間來理解和分解。希望您的代碼受源代碼控制,這也許是我們行業在過去十年中在了解代碼庫的歷史和基本原理方面取得的最大進步。如果不是這樣,您的困惑將會被放大。
即使對代碼有很好的了解,使用第三方產品通常也意味著學習全新的API。商業產品通過掩蓋其內部工作原理而使您的工作更具挑戰性,這使調試意外行為變得更加困難。
你能做什么?
如果這是一個新項目,請確保您熟悉團隊的編碼實踐和標準。如果您被某個特定的模塊所困擾,請留出一些無干擾的時間逐步解決它,并寫下出現的任何無法回答的問題。如果可能,請與更熟悉代碼庫的團隊成員(最好是原始開發人員或維護人員)配對。對于第三方產品,請毫不猶豫地使用文檔,常見問題解答,客戶支持,聊天室和社區論壇。當其他所有方法都失敗時,請使用Google(或DuckDuckGo)!
跟上技術發展
變化是軟件中唯一的常數。無論您處于何種級別,總會有一些新工具,編程語言和優秀實踐可以引起您的注意。即使只是維護代碼,也意味著掌握產品更新和安全公告的頂部。
當然,沒有人可以在所有方面都是專家,但是希望開發人員知道哪些工具適合于哪些任務。開發人員至少需要對多種技術和工具的粗略了解,才能更好地評估不同的解決方案,并避免為工作選擇錯誤的工具。您需要了解的新技能和技術數量可能是巨大的。
你能做什么?
通過不斷學習新技術和實踐來保持技術比賽的領先地位。如果可以的話,安排您不在當前項目上工作的“發現”日,而要花時間研究和學習新技術。學習新服務時,請利用免費試用版和教育材料。考慮為開源項目做出貢獻,以在工作之余練習您的技能。并永遠記住,新事物并不總是答案-在這里查看項目時不要分心。為任務選擇合適的工具,這些工具可能會或可能不會很閃亮。
平衡通訊和中斷
開發人員,團隊負責人和其他部門之間的持續溝通對于使每個人都在同一頁面上至關重要。但是,過多的交流會對生產率產生不利影響。開發人員已經將其工作時間的21%花費在通信工具上,使公司每年每人花費近3萬美元。所有這些中斷都會導致上下文切換,這使您更加難以專注于工作。據估計,中斷后最多需要20分鐘才能恢復工作。
為什么中斷對開發人員來說是災難性的。©2018猴子用戶。版權所有。
你能做什么?
進行編碼時,請消除干擾并全神貫注于任務。如果您發現自己經常遇到打擾,請在“聚焦模式”下向同事發出信號。在日歷上安排“無會議”或“無法觸摸”的日子,只是為了進行編碼,戴上耳機并更改通訊工具中的狀態。一旦集中精力,就必須認真思考問題,從不同角度評估問題,研究多種選擇,并提前計劃實施策略。記錄您的決策(以及您的代碼),并準備對其進行辯護。
感覺像你不屬于
盡管他們具有受過教育,專業知識和經驗,但仍有多達58%的科技工作者患有冒名頂替綜合癥。當開發人員面臨的任務會提高他們的能力或挑戰他們的自信心時,他或她可能會質疑他們完成這項工作的能力。這可能會導致負面反饋循環,最終導致開發人員脫離工作,甚至辭職。
對于人數不足的群體,不歸屬尤其困難。在美國,多達80%的開發人員是男性,58%是白人,而且不幸的是,年齡歧視仍然很普遍。這些有意或無意的偏見會阻礙熟練的開發人員,并阻止新的開發人員。
你能做什么?
不要孤立自己!與開發社區互動:與其他開發人員建立聯系,跟隨行業領導者并參加活動。借此機會分享您的知識,合作和學習新知識。請記住,每個人有時都會有這種感覺。
擁抱自己的優勢
您可以做的最重要的事情就是誠實并信任自己。克服對失敗的恐懼,擺脫困境。您嘗試新事物的次數越多,您將越能確定自己的優勢以及可以改進的地方,從而建立信心。相信自己會做出正確的決定,但也不要害怕尋求幫助。作為一名軟件開發人員,很難,但是如果擁有正確的態度和努力,這將是一次非常有意義的體驗。