設(shè)計(jì)為能夠跨部門擴(kuò)展
- 編輯:admin -我們簡單討論過JAD的結(jié)構(gòu)和機(jī)制?,F(xiàn)在我們可以更加詳細(xì)地探討它了。JAD是一個合作的設(shè)計(jì)流程,在這個流程中,開發(fā)某些新的重要功能或者修改架構(gòu)所需的所有軟件開發(fā)資源都會相互合作,定義出一個符合公司的架構(gòu)設(shè)計(jì)原則和最佳實(shí)踐的設(shè)計(jì),用來滿足業(yè)務(wù)單元的需求。這組軟件開發(fā)資源由負(fù)責(zé)最終編碼的軟件開發(fā)工程師、架構(gòu)師、至少一個或者多個運(yùn)營人員以及根據(jù)需求可選的產(chǎn)品經(jīng)理、項(xiàng)目經(jīng)理和質(zhì)量保證工程師構(gòu)成。如前所述,這些人各自獨(dú)特的知識、視角、經(jīng)驗(yàn)和目標(biāo)都會彼此互補(bǔ),使他們達(dá)到一種平衡。雖然運(yùn)營工
我們簡單討論過JAD的結(jié)構(gòu)和機(jī)制?,F(xiàn)在我們可以更加詳細(xì)地探討它了。JAD是一個合作的設(shè)計(jì)流程,在這個流程中,開發(fā)某些新的重要功能或者修改架構(gòu)所需的所有軟件開發(fā)資源都會相互合作,定義出一個符合公司的架構(gòu)設(shè)計(jì)原則和最佳實(shí)踐的設(shè)計(jì),用來滿足業(yè)務(wù)單元的需求。這組軟件開發(fā)資源由負(fù)責(zé)最終編碼的軟件開發(fā)工程師、架構(gòu)師、至少一個或者多個運(yùn)營人員以及根據(jù)需求可選的產(chǎn)品經(jīng)理、項(xiàng)目經(jīng)理和質(zhì)量保證工程師構(gòu)成。如前所述,這些人各自獨(dú)特的知識、視角、經(jīng)驗(yàn)和目標(biāo)都會彼此互補(bǔ),使他們達(dá)到一種平衡。雖然運(yùn)營工程師現(xiàn)在的目標(biāo)是設(shè)計(jì)一個滿足業(yè)務(wù)需求的功能,但他依然保留原先的目標(biāo),即維持可用性。這樣有助于確保他會對部署到生產(chǎn)環(huán)境的東西一直保持警醒。
由于每個技術(shù)團(tuán)隊(duì)都參與進(jìn)來了,所以會對硬件、軟件、中間設(shè)備進(jìn)行權(quán)衡,并會對是構(gòu)建新的系統(tǒng)還是采購進(jìn)行權(quán)衡,這樣有助于縮減產(chǎn)品上市的時間、開發(fā)軟件的成本以及運(yùn)營的成本,提高整體質(zhì)量。由于有運(yùn)營團(tuán)隊(duì)的服務(wù),軟件開發(fā)工程師通常不會關(guān)注硬件。因此,如果讓軟件開發(fā)工程師設(shè)計(jì)-一個存儲圖像的功能(參見信息看板中的例子),而工程師卻沒有關(guān)于能夠使用以及應(yīng)該使用的存儲設(shè)備的知識,那么這種設(shè)計(jì)注定不能滿足需求,不會是經(jīng)濟(jì)有效或是可擴(kuò)展的。但將可擴(kuò)展性作為共同目標(biāo)就可以確保擴(kuò)展文化滲透到每個團(tuán)隊(duì),并當(dāng)發(fā)生問題或危機(jī)時,由于每個團(tuán)隊(duì)都是責(zé)任人,他們會同心協(xié)力來解決問題。
JAD方法并不僅局限于瀑布式開發(fā)方法,即產(chǎn)品的一個開發(fā)階段必須發(fā)生在另一個階段之前。JAD能夠且已經(jīng)成功地與各種類型的開發(fā)方法結(jié)合使用了,如迭代式開發(fā)方法或敏捷開發(fā)方法,在其中,每當(dāng)對產(chǎn)品功能有了更多了解時,規(guī)格說明書、設(shè)計(jì)和開發(fā)都會被修訂。每當(dāng)一個設(shè)計(jì)被修改了或附加了新內(nèi)容,JAD就會被調(diào)用,幫助完成它。架構(gòu)的類型也不會妨礙使用JAD。無論是傳統(tǒng)的三層Web架構(gòu),還是面向服務(wù)的架構(gòu),或者只是一個單一應(yīng)用,軟件開發(fā)工程師、運(yùn)營人員和架構(gòu)師都會合作得到一個更好的設(shè)計(jì),畢竟由團(tuán)隊(duì)制定出的解決方案一定比個人制定出的好。團(tuán)隊(duì)成員的背景越多元化,得到的解決方案就越全面。
JAD實(shí)際上的結(jié)構(gòu)非常不正式。在給新功能指派了團(tuán)隊(duì)后,其中一個人要負(fù)責(zé)協(xié)調(diào)設(shè)計(jì)會議;如果團(tuán)隊(duì)中有軟件開發(fā)工程師或項(xiàng)目經(jīng)理,通常由他們擔(dān)任這個角色。通常會有多次設(shè)計(jì)會議,根據(jù)成員們的日程安排,這樣的會議會持續(xù)個或多個小時。 對于非常復(fù)雜的功能,應(yīng)該針對該功能的不同組件安排多個設(shè)計(jì)會議。例如,安排一個會議重點(diǎn)討論數(shù)據(jù)庫,然后安排另一個會議重點(diǎn)討論緩存服務(wù)器。
通常,這些微信小程序設(shè)計(jì)會議都是從討論該功能的背景和業(yè)務(wù)需求人手。在這個階段,最好由產(chǎn)品經(jīng)理進(jìn)行介紹,然后隨時對團(tuán)隊(duì)成員提出的問題進(jìn)行澄清。討論過產(chǎn)品需求后,最好回顧一下與這個設(shè)計(jì)領(lǐng)域相關(guān)的架構(gòu)設(shè)計(jì)原則。接下來,可以讓團(tuán)隊(duì)展開頭腦風(fēng)暴,提出各種解決方案,這樣通常會得到幾個不同的解決方案。它們會在會議結(jié)束時被記錄下來,然后發(fā)送給相關(guān)人員,供他們在下一次會議之前認(rèn)真考慮一下這些解決方案。通常,需要安排一個或兩個會議,就這個功能的最佳設(shè)計(jì)方案達(dá)成一致。最后的設(shè)計(jì)會被記錄下來,形成文檔,報告給ARB。
