服務(wù)級別協(xié)議定義了開發(fā)人員和客戶之間正式理解和溝通的基礎(chǔ)。Simon Jackson探討了為什么你的項(xiàng)目需要一個服務(wù)級別協(xié)議。
服務(wù)級別協(xié)議(Service Level Agreement,SLA)
用來管理服務(wù)的表現(xiàn)。盡管它可能還不能成為你的開發(fā)項(xiàng)目的一個常見部分,但是SLA可以用來提高開發(fā)過程的質(zhì)量,減少項(xiàng)目失敗的風(fēng)險,加強(qiáng)與客戶之間的關(guān)系。SLA體現(xiàn)的是專業(yè)性——發(fā)表和依賴可接受的標(biāo)準(zhǔn)表明公司了解其業(yè)務(wù)和客戶。本文將探討軟件開發(fā)里的服務(wù)級別協(xié)議:為什么你需要用它,以及創(chuàng)建這樣一個協(xié)議的訣竅。
什么是服務(wù)級別協(xié)議
SLA Information Zone的Web網(wǎng)站將SLA描述為“定義兩者之間關(guān)系的文檔”。SLA為開發(fā)過程的要素設(shè)定了基準(zhǔn),這被認(rèn)為對于保持開發(fā)小組和客戶之間的關(guān)系十分重要。
盡管不是一個正式的合同,但是SLA能夠被用作是正式交易的一部分。合同與SLA之間的不同之處在于文本的目的和嚴(yán)謹(jǐn)性。合同是為了將關(guān)系正式化,并具備法律效力;而SLA用來改善關(guān)系,并不具有法律效力。但是,如果無法實(shí)現(xiàn)SLA的條款,那么你將傷害或者破壞這種關(guān)系,這與不履行合同的后果一樣。
為什么要實(shí)施服務(wù)級別協(xié)議?
軟件開發(fā)在交付方面的名聲并不好。Standish集團(tuán)公司2003年的CHAOS報告顯示,在要求和預(yù)算進(jìn)行開發(fā)碰到困難時,超過一半的IT項(xiàng)目都會遭到“質(zhì)疑”。
項(xiàng)目失敗的原因各式各樣,但是各種研究都表明標(biāo)準(zhǔn)對于項(xiàng)目的成功至關(guān)重要,例如用戶的參與和清晰明了的要求就是這樣的標(biāo)準(zhǔn)。SLA是將這些原理從書本里拿出來放到實(shí)際項(xiàng)目里進(jìn)行實(shí)踐的工具。
同樣重要的還有加強(qiáng)與客戶之間的關(guān)系。編寫SLA要求對專業(yè)軟件開發(fā)的理解和對客戶的真正責(zé)任。你清楚自己的要求,并堅(jiān)持這一點(diǎn),給客戶以理由相信你的能力和知識。
為什么應(yīng)該囊括服務(wù)級別協(xié)議?
項(xiàng)目成功的主要因素包括:選擇項(xiàng)目、客戶的參與、正式的項(xiàng)目管理和要求管理。
根據(jù)項(xiàng)目的大小、計(jì)劃安排和風(fēng)險,你還希望考慮軟件開發(fā)的最佳做法,比如質(zhì)量保證和單元測試。
加入客戶認(rèn)為重要的內(nèi)容也很重要。你可能并不總是同意,但是如果必須的話,提問、傾聽和協(xié)商是很重要的。
要記住,SLA定義的是關(guān)系;它以協(xié)議和理解為基礎(chǔ)。通過獲取用戶的投入,你是在加強(qiáng)關(guān)系,改進(jìn)整個過程。
選擇項(xiàng)目方法
一開始,選擇一個適合項(xiàng)目的項(xiàng)目方法似乎是不可理喻的。從本能上講,我們在尋找一個真正的途徑,也就是有效地實(shí)現(xiàn)項(xiàng)目成功的完美方法。聽夠了任何過程布道者的花言巧語,你也會開始相信。嘮嘮叨叨的挑剔之語總是存在,但是——如果他們的過程這么好,那么那么多其他的過程是怎么來的呢?
忽略偽宗教者的言論而把注意力放在客戶和項(xiàng)目上很重要。每個客戶和每個項(xiàng)目都不相同——沒有哪個方法是萬能藥。
替代方法有很多,所以你應(yīng)該選擇一種適應(yīng)你具體要求的方法。敏捷軟件開發(fā)方法的先鋒Scott Ambler 在他的文章《One Size Fits None》里指出,“做到這一點(diǎn)要求對項(xiàng)目的了解,以及對各種方法的優(yōu)勢和劣勢的了解”。
SLA必須申明所選擇的項(xiàng)目方法以及相關(guān)的特性和性能標(biāo)準(zhǔn)??蛻艨赡懿皇欠浅jP(guān)心選擇的是哪種方法,但是他們會關(guān)心它會如何影響項(xiàng)目。
客戶的參與
“早發(fā)布,常發(fā)布”這個格言常常是吹噓得多但實(shí)際做到的少。這里面所隱藏的意思是客戶在項(xiàng)目實(shí)施過程中不應(yīng)該聽到任何不利的意外:比如“我們超過了預(yù)算50%”或者是“至少還需要多花兩個星期”這樣的話。
讓客戶參與進(jìn)來的策略包括會議、共享的工作空間和正式的問題管理。
會議
定期的會議,最好是每周一次,但這常常不受開發(fā)人員的重視,雖然它們可能會成為項(xiàng)目的支柱和救星。如果運(yùn)用合理的話,它們會幫助解決問題,加強(qiáng)關(guān)系,加深小組對客戶要求的了解。但是如果運(yùn)用不當(dāng),它們就會浪費(fèi)時間并打擊信心。
SLA必須確定會議的頻率及內(nèi)容才能夠讓會議產(chǎn)生效果。這些內(nèi)容包括有一個固定的議程,指定一個主席、計(jì)時員、書記員,告知行動項(xiàng)目和分發(fā)會議記錄。
對于如何組織好會議,去拜訪一下你所在地的(專業(yè))主持人。這些會議都有固定的規(guī)則;例如它們都要按時開始和結(jié)束,發(fā)言人的發(fā)言要按時間表來。這樣做的結(jié)果就是,它們不會退化變成喋喋不休的個人獨(dú)白。
共享的工作空間
項(xiàng)目會帶來很多信息——文檔、討論、問題記錄、聯(lián)系信息表和事件。集中和共享是協(xié)調(diào)項(xiàng)目和保持用戶參與的關(guān)鍵因素。
要變得真正有效果,整個項(xiàng)目小組就必須能夠從可能的渠道獲得資源——從辦公室、家里或者是現(xiàn)場?;赪eb的企業(yè)內(nèi)部網(wǎng)是一個好的解決方案。
問題管理
這是客戶關(guān)系管理中最重要但是實(shí)踐最少的地方。在任何項(xiàng)目進(jìn)行的過程中,會產(chǎn)生很多疑問、問題和建議。捕捉、保存、優(yōu)先對待和處理這些事情對于推動一個客戶認(rèn)定為成功的項(xiàng)目是極其重要的。交付了客戶想要獲得的內(nèi)容但是仍然失敗的例子還是有的。這也許是因?yàn)轫?xiàng)目要求發(fā)生了改變,或者是因?yàn)闆]有在文檔里完整地表述出來。聽取客戶的意見,一產(chǎn)生問題就立即著手解決,這樣我們才能夠?qū)⒊晒Φ臋C(jī)會最大化。電子郵件不是完成這項(xiàng)任務(wù)的好工具。我常常會看到客戶關(guān)系由于對電子郵件里虛假內(nèi)容而迅速惡化。應(yīng)該維持單一的、集中式的問題登記,也許是在企業(yè)內(nèi)部網(wǎng)里。技術(shù)并不是那么重要,但是所有人都應(yīng)該能夠看到這些問題的登記信息,并經(jīng)常監(jiān)視和審查。
正式的項(xiàng)目管理
一般來說,項(xiàng)目管理要求具有不同的軟件開發(fā)技能。盡管如此,高級開發(fā)人員經(jīng)常被要求除了領(lǐng)導(dǎo)開發(fā)之外還要管理預(yù)算、規(guī)劃資源、負(fù)責(zé)人員招收、管理客戶關(guān)系和其他事務(wù)。這不僅僅是不合理,這對于客戶關(guān)系常常是致命的。
項(xiàng)目管理需要額外的代價,這包括客戶有的時候不愿意開會,尤其是如果他們過去的項(xiàng)目管理成績不佳。定義項(xiàng)目管理成果和標(biāo)準(zhǔn)的SLA將在某種程度上有助于減輕他們的憂慮。
要求管理
理解客戶需要什么是交付價值的重要部分。這很復(fù)雜,因?yàn)樵谀承┣闆r下,客戶可能只有對他們想要什么的一個未成型的想法。在所有的情況下,他們要依賴開發(fā)小組的技術(shù)專家來給他們建議。進(jìn)行要求管理的方法是軟件開發(fā)方法的基礎(chǔ)。例如,敏捷軟件開發(fā)方法通常都假設(shè)客戶對需要什么沒有一個完整的理解。所謂的瀑布開發(fā)方法則是從一個正式和靜態(tài)的且定義良好的要求開始。要求管理因此與項(xiàng)目方法的選擇密切相關(guān)。
SLA必須推薦要求管理的方法,以及如何處理項(xiàng)目實(shí)施過程中要求的變化。這包括一個變化控制過程,從而對整個項(xiàng)目的第二次發(fā)布或者重新報價提出了功能上的要求。
軟件“最佳做法”
軟件開發(fā)有專門的做法;正確地使用這些做法能夠提高軟件質(zhì)量和生產(chǎn)效率。這些做法包括每晚構(gòu)建、功能審查、缺陷計(jì)量跟蹤、代碼注釋、編寫文檔、質(zhì)量保證、變更、同事評估、單元測試和用戶認(rèn)可度測試。
不是每個SLA都需要用到上述所有的做法;這要由項(xiàng)目、客戶和項(xiàng)目小組的技術(shù)、經(jīng)驗(yàn)和創(chuàng)造力來決定。不要害怕做事情的新方法——成功就是一個創(chuàng)新的過程。
實(shí)踐中的服務(wù)級別協(xié)議
就像大多數(shù)的性能測定一樣,SLA應(yīng)該是SMART的:具體(Specific)、可測定(Measurable)、可實(shí)現(xiàn)(Achievable)、現(xiàn)實(shí)的(Realistic)和受時間限制的(Time-bound)。我將使用一個用于功能測評的基準(zhǔn)作為說明上述內(nèi)容的實(shí)際例子?;鶞?zhǔn)測試的第一部分相當(dāng)簡單:“我們將測評軟件的功能?!?br>
上述說法會帶來一些顯而易見的問題:功能測評是什么,為什么需要它?由誰來進(jìn)行測評?如何進(jìn)行測評?什么時候來測評?所以它肯定是不符合SMART標(biāo)準(zhǔn)的——因?yàn)樗鼜闹袀鬟_(dá)出來的信息過多。
要改進(jìn)它,首先要做的就是讓這個說法更加具體,申明要實(shí)現(xiàn)什么,為什么,以及如何實(shí)現(xiàn)?!肮δ軠y評用來檢查軟件的完整性,看它是否滿足既定的要求,是否滿足商業(yè)需要。這就能夠保證發(fā)布的軟件可以滿足客戶的預(yù)期。
“在進(jìn)行第一次測評之前,提供商要以一小點(diǎn)一小點(diǎn)的形式將要求總結(jié)出來,接受客戶的檢查,并得到客戶的認(rèn)可。
“功能測評包括整個項(xiàng)目小組的一次會議——也就是說,包括開發(fā)小組和業(yè)務(wù)小組。在會議中,開發(fā)小組將陳述每個要求是如何在軟件里實(shí)現(xiàn)的,這要用軟件最新的開發(fā)版本來說明。
“客戶負(fù)責(zé)確定每個功能是否已經(jīng)被正確地實(shí)現(xiàn)。”這就要明確得多。將要求具體化還可以讓開發(fā)小組檢查標(biāo)準(zhǔn)是否是可實(shí)現(xiàn)的和現(xiàn)實(shí)的。
這些測定在很大程度雙取決于開發(fā)小組的能力——技術(shù)、知識、經(jīng)驗(yàn)和時間。上面這種說法仍然不能完全滿足SMART的標(biāo)準(zhǔn):它沒有一個時限,也無法性能的測定提供一個基礎(chǔ)。還需要更多的細(xì)節(jié):
“將進(jìn)行三次功能測評:第一次是在代碼完成50%的時候,第二次是在完成75%的時候,而最后一次測評是在軟件進(jìn)入正式測試(formal testing,QA)之后。在要被解決的功能里,90%將被客戶認(rèn)可為被完成?!?br>
在這種情況下,計(jì)劃安排要以構(gòu)建階段里的里程碑為基礎(chǔ)。更加具體的日期可以通過這些點(diǎn)提供給項(xiàng)目規(guī)劃。我們還需要表述出一個清晰的、可測定的標(biāo)準(zhǔn)。如果做不到這一點(diǎn),就可能在開發(fā)過程中,在規(guī)范或者溝通過程中出現(xiàn)問題。
現(xiàn)在這就是項(xiàng)目的目標(biāo),也是一個早期預(yù)警系統(tǒng)。它將再次確??蛻袅私馑鼈儗⒈粏柕绞欠褚呀?jīng)滿足了項(xiàng)目要求,并給予他們你將向他們交付物有所值的軟件的信心。使用它,你就可以表明自己知道軟件開發(fā)里的常見問題——不完整或者不連貫的要求——并表明自己有決心解決這一問題。
每天都要應(yīng)用服務(wù)級別協(xié)議
你當(dāng)然會“得到你測定的東西”,但是SLA不僅僅是簡單地用作是一種測定方法。通過設(shè)定可實(shí)現(xiàn)的和現(xiàn)實(shí)的基準(zhǔn),它成為了一個用來改善軟件開發(fā)和增強(qiáng)客戶管理的工具。盡管軟件開發(fā)的質(zhì)量在過去十年里得到了提高,但是要改進(jìn)的地方還有很多;SLA就是解決問題的一種方法。
【?發(fā)表評論?0條?】