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