Lee Atchison
想努力跟上業(yè)務需要、技術(shù)發(fā)展、技能需求、開發(fā)與運營職責的快速變化?請記住這些提示。
精通數(shù)字化的客戶需要高質(zhì)量的軟件和網(wǎng)站。他們會想當然地認為供應商會不斷推出新的功能以讓他們處于最新狀態(tài)。然而,要讓客戶保持參與度和滿意度,除了需要敏捷的應用程序開發(fā)流程和技術(shù),更重要的是擁有利用最新開發(fā)工具、技術(shù)和方法等技能的軟件工程師。
因此,軟件開發(fā)人員的世界變得越來越具有挑戰(zhàn)性。讓我們看看現(xiàn)代軟件開發(fā)人員所面臨的5個關鍵難題,以及如何克服這些難題吧。
對不一致的目標進行協(xié)調(diào)
痛點:軟件開發(fā)人員在開始著手工作時往往對業(yè)務領導者和產(chǎn)品所有者提出的業(yè)務需求理解得不透徹。這可能導致目標不一致,進而導致開發(fā)出不必要和不適當?shù)墓δ?。同樣重要的是,如果開發(fā)人員沒有將重點放在正確的優(yōu)先項目上,他們可能會錯失良機。把所有這些加在一起,則將會導致客戶出現(xiàn)不滿,因為他們沒有得到他們所需要的。
不一致的目標也會造成團隊之間缺乏信任,并可能導致沖突和開發(fā)出不成功的產(chǎn)品,進而導致公司在客戶、收入和利潤方面蒙受損失。
如何處理:開發(fā)人員和業(yè)務領導者之間的定期溝通對于防止目標不一致至關重要。此外,隨著業(yè)務目標的不斷變化和完善,應對這些變化的流程對于長期成功至關重要。開發(fā)人員必須對不斷發(fā)展的想法和需求保持開放和靈活。
我們需要認識到,當產(chǎn)品所有者改變他們的需求時,通常都有著充分的理由。當然,業(yè)務負責人有時會在沒有正當需要的情況下改變他們的目標、優(yōu)先等級和期望。有時快速發(fā)展的業(yè)務需求會讓開發(fā)人員感到非常棘手,但是靈活的業(yè)務領導和融洽的團隊間關系可以帶來更好的終端產(chǎn)品,并最終讓客戶感到滿意,同時也可以讓公司變得更加成功。
跟上創(chuàng)新速度
痛點:新興技術(shù)正以令人眼花繚亂的速度推動新產(chǎn)品的推出。加速軟件開發(fā)工具和流程的創(chuàng)新可能會影響產(chǎn)品能力和市場接受度,并最終影響公司的成功。
幾年前,像DevOps、云計算、AIOps、智能系統(tǒng),甚至移動計算等創(chuàng)新都不為人們所知。然而今天,它們都是現(xiàn)代軟件應用程序開發(fā)中不可或缺的組成部分。
如何處理:現(xiàn)代軟件應用程序不再是靜態(tài)的,我們也不能再保持靜態(tài)。開發(fā)人員必須對新的想法和概念持開放態(tài)度,跟上最新的想法和創(chuàng)新,并找到創(chuàng)造性的方法,將新的工具和技術(shù)應用到不斷發(fā)展的企業(yè)應用程序需求當中。
具有諷刺意味的是,這使得軟件開發(fā)人員與他們的業(yè)務領導者處于相似的地位。業(yè)務主管負責了解客戶不斷變化的需求,而你也有責任了解不斷推出的新功能,以幫助解決這些需求。
掌握最新的軟件工程技術(shù)
痛點:還記得Ruby 是什么時候風靡一時的嗎?還記得什么時候XML是應用程序間通信的解決方案嗎?企業(yè)軟件開發(fā)建立在精心安排的瀑布式開發(fā)流程之上的日子怎么樣?PHP又是何時才讓Web應用程序開發(fā)變成一件輕而易舉的事情的呢?
如果你已經(jīng)在這個行業(yè)干了幾年,那么當你費盡苦心掌握的一些技術(shù)集突然變得不再重要,你可能也會變得不再重要。相反,掌握一套新的技能將會讓你變得非常受歡迎。
在軟件行業(yè),一項技能、技術(shù)或流程的壽命大約是2到3年。當你構(gòu)建起一個應用程序并開始在市場上看到它們?nèi)〉贸晒r,往往表明用于開發(fā)它們的技術(shù)可能已經(jīng)過時了。為了應對這種極端的創(chuàng)新速度,你必須跟上不斷調(diào)整的行業(yè)規(guī)范和要求。即使壓力越來越大,要做的事情越來越多而時間卻變得更少、速度也變得越來越快,你也必須花時間來讓自己的技能處于最新狀態(tài)。
如何處理:在上世紀八十年代流行起來的“T型人才”概念對于在不斷變化的軟件行業(yè)中取得成功非常關鍵?!癟型人才”對許多技術(shù)有著廣泛的理解,同時又對于一些關鍵領域有著深刻的理解。這種結(jié)合使得這類人才在他們的專業(yè)領域具有很高的價值,并且有著很強的大局觀。
隨著時間的推移,“T”字中代表深度的一豎所涉及的專業(yè)知識將會不斷地發(fā)展。同時,代表廣度的一橫有助于你決定下一步要專門研究哪些技術(shù)。
排除環(huán)境的干擾
痛點:現(xiàn)代工作環(huán)境既是福也是禍。除了可以在房產(chǎn)方面節(jié)省資金外,共享的工作區(qū)、開放的辦公室和專用的團隊空間還被認為可以減少層次結(jié)構(gòu)、提高創(chuàng)造力和協(xié)作能力、提高靈活性。
軟件工程師是需要時間來實際開發(fā)軟件的,而且許多現(xiàn)代工作環(huán)境似乎已經(jīng)忽略了這一需求。像Slack這樣的協(xié)作工具可能會讓情況變得更糟,因為它們讓每個人都可以快速討論一些期望值。開發(fā)人員會發(fā)現(xiàn)由于沒有統(tǒng)一的意見,自己很難將注意力集中在手頭的工作上。
如何處理:即使在現(xiàn)代工作環(huán)境中,有時間和空間進行安靜的反思和生產(chǎn)非常關鍵。遠離喧囂的開放式辦公室對于成為高效的開發(fā)人員至關重要。
許多開發(fā)者使用耳機來創(chuàng)造一個無干擾的環(huán)境,但是這樣可能還不夠。要想讓精力更為集中,找一個遠離正常團隊環(huán)境的安靜角落;關閉通知并退出所有設備上的協(xié)作和通信應用程序,包括計算機和手機;播放能夠令人心情平靜的音樂,創(chuàng)造出一個安靜的環(huán)境。有意識地這么做可以幫助你成為一個更為高效的工程師。當你無法專注于一個棘手的開發(fā)問題時,你可以為同事提供幫助。
管理運營開銷
痛點:隨著DevOps的興起,開發(fā)人員做好軟件,然后“將它們隔墻甩給”運營人員去管理的日子已經(jīng)一去不復返了。不管是否已經(jīng)準備好,現(xiàn)代軟件工程師逐漸開始負責自己開發(fā)的軟件的運營工作。這樣做有什么好處呢?除了在軟件不能正常工作時會在半夜被叫醒來處理問題的人外,沒有人會關注你構(gòu)建的高質(zhì)量、可擴展且高可用性的應用程序。
將dev和ops功能整合在一起已經(jīng)被證明對應用程序是有益的,對構(gòu)建它們的企業(yè)也是有好處的。掌握構(gòu)建高效、可靠、大規(guī)模運行的應用程序所需的工具和技術(shù)有助于軟件開發(fā)人員的成長和開發(fā)。但是DevOps所增加的運營責任是有代價的。許多開發(fā)人員在不了解大規(guī)模維護應用程序所涉及到的內(nèi)容的情況下,就被賦予了運營職責。此外,增加的運營負擔可能會成為另一個分散注意力的因素,導致開發(fā)人員無法集中精力創(chuàng)建優(yōu)秀的軟件。
如何處理:軟件支持方面的變化可以幫助開發(fā)人員在沒有求助時集中精力開發(fā),在有求助時集中精力改進應用程序的運營能力。團隊應該強調(diào),隨叫隨到的開發(fā)人員不應該只為了滿足新產(chǎn)品開發(fā)承諾而規(guī)劃自己的工作。相反,他們應該利用這個機會更好地了解運營需求并改進操作基礎設施。在不處理求助電話時,對操作方面的關注有助于讓你更加專注于開發(fā)問題。
無論喜歡與否,開發(fā)人員坐下來編寫代碼,然后把它們甩手扔給別人,讓別人為之操心的日子早已不復存在。在現(xiàn)代軟件行業(yè)中,對在更為復雜的環(huán)境中處理更復雜軟件的期望,要求開發(fā)人員能夠進行自我更新和自我擴展,并且就像他們創(chuàng)建和維護的應用程序一樣。
本文作者Lee Atchison現(xiàn)為New Relic的云架構(gòu)高級總監(jiān),擁有32年的從業(yè)經(jīng)驗,曾經(jīng)在亞馬遜擔任了七年的高級經(jīng)理,并在著有《規(guī)模架構(gòu)》一書(由O'Reilly Media于2016年出版發(fā)行)。
原文網(wǎng)址
https://www.infoworld.com/article/3411438/5-pain-points-of-modern-software-development-and-how-to-overcome-them.html