首頁>>技術前沿>>網站/軟件行業動態
軟件開發合同糾紛案件的法律深度分析
作者:西安APP開發 | 轉載 來源:西安軟件公司 | 時間:2021年2月11日| 點擊:0次 | 【評論】

筆者作為律師曾承辦多起軟件開發合同糾紛,綜合來講軟件開發合同糾紛涉及多種編程語言和開發工具,相應的專業問題比起一般合同糾紛更為復雜,案件審理中只有熟悉軟件開發行業的特點和相關處理流程才能對爭議的問題作出準確的判斷,這無疑對承辦律師和法官都提出了很高的要求。以下根據筆者的案例對于軟件開發合同糾紛的特點簡述如下:
軟件開發合同
一、軟件開發周期技術上無法準確預測

根據筆者與很多軟件企業管理人員及程序員的溝通,對于軟件開發延期的原因,企業管理人員認為項目經理早期計劃不充分是最主要的原因,其次是應急預案制定不足;而程序員則認為客戶需求變更和技術復雜程度是最主要的原因。以上兩者的差異來源于企業管理人員大多不懂軟件,對于程序員也缺少了解。企業管理人員為了在有競爭對手的商業談判爭取訂單,有時候不得不承諾減少開發周期,同時也是因為競爭的原因,軟件開發成本限制參與項目的程序員數量和技術水準,而以上的結果是項目經理所最不愿意看到的。因此從某種程度上來講,軟件開發合同前期的商務談判過程決定了軟件開發的成敗,有些軟件開發失敗的真正原因恰恰是對于軟件開發一無所知的客戶。

對于軟件來講,開發中問題都存在于代碼之中,無論開發經驗多么豐富的程序員,他都無法準確預測開發過程中可能的問題。盡管軟件行業存在很多評估工作量的理論和方法,很多因素是無法準確量化的,同時評估工作仍需考慮團隊的凝聚力問題,因此技術上準確地確定開發周期是很難實現的,最終還是靠開發團隊的歷史數據和經驗來粗略估算。

基于以上原因項目經理應當在軟件開發早期的商務談判中向企業的管理人員充分說明開發周期的復雜性以爭取寬裕的開發時間;對于企業管理人員來講,應當在商務談判中與律師協商,妥善安排有關開發周期的合同約定,例如開發合同中軟件開發的各個階段的時間限制應當只作為合同描述內容作為參考使用,而不能作為確定合同違約行為的依據,這樣可以幫助軟件開發人員在總開發周期內對分項時間進行調整。如確因客觀原因造成無法按照預期完成軟件開發(筆者案例中曾有核心程序員離職造成開發延期),則軟件公司應當及時向客戶進行通報,提出延期請求并以備忘錄、補充協議等形式對雙方的合意進行書面確認。盡管大多數軟件開發合同對于延期交付有罰金作為違約責任,但是軟件開發過程中與客戶協商延期的效果還是要遠遠好于開發周期后協商延期。

二、準確掌握軟件需求困難

因客戶與軟件開發人員分屬不同的行業,行業背景和特定專業知識的限制使得雙方對于需求清單中文字表述的內容可能會存在理解的偏差,這種偏差如果只是涉及軟件底層功能的部分調整還有可能及時彌補,但是如果涉及整個軟件模塊或架構的調整,可能給軟件開發工作造成致命的影響。筆者承辦的一起案例中,軟件需求說明書中表述的具體需求為“監控界面可以實現多路監控”,程序員設計的實現路徑是在同一個計算機上同時打開兩個瀏覽器界面,以上兩個界面可以分別顯示兩組不同的視頻內容,程序員認為以上方式即為需求說明書中所說的“實現多路監控”。但是在軟件進行驗收時,客戶提出“多路監控”是指在同一個瀏覽器的監視界面同時顯示兩組視頻內容,至此雙方對于軟件需求的理解產生歧義。因為以上軟件的功能調整涉及數據服務器以及嵌入的視頻功能模塊的調整而無法在短期內完成,最終致使軟件無法按期交付并引發訴訟。 

事實上我們可以從軟件開發過程來分析造成雙方對需求理解不同而造成開發失敗的責任,即有能力、有機會消除理解歧義的一方負有排除歧義的義務,而怠于履行義務的一方對軟件開發失敗負有過錯,應當承擔相應的賠償責任。

軟件開發合同中一般都沒有非常明確的針對雙方具體溝通事務的約定,軟件公司在開發前期都會與客戶進行反復溝通以確定需求清單的內容,但是一旦進入開發流程,開發人員有可能忽略與客戶溝通軟件開發的中間成果。例如由需求清單整理的功能需求說明書(SRS)、軟件產品架構設計說明書、軟件用例等文件都單純成為開發人員之間內部溝通協調的文件,而忽略了與客戶進行確認的過程。技術上來講,軟件開發的所有工作都是以軟件用例作為出發點和基本依據的,軟件用例也是底層程序員了解產品功能和使用場景的依據。與客戶對軟件用例進行溝通也最有可能在開發初期消除對需求理解的歧義。

綜上由開發合同中的需求清單到最終完成開發、交給客戶驗收的過程中,軟件開發人員將中間工作成果與客戶進行溝通確認的過程可以避免對需求清單理解歧義的發生。客戶對于軟件開發的具體流程和細節并不熟悉,因此軟件開發人員有機會通過溝通來消除軟件需求理解的歧義。因此,以上案例中,應當確定軟件公司對于因理解歧義而導致開發失敗負有責任。從律師的角度來看,應當將軟件開發流程中的關鍵節點確認作為軟件開發合同約定的內容之一,溝通過程中形成的確認文件也可以成為預防糾紛的有效形式。

實踐中對于軟件需求還有一種情況,那就是客戶在開發過程中不斷提出新的功能要求。出現這種情況的原因是多方面的,部分是因為客戶自身的業務需求不確定,部分是因為在開發周期較長的項目中,客戶在開發過程中了解同行業更為成熟的做法和經驗,因此提出新的功能需求。對于律師來講,應當在軟件開發協議中約定需求變更的程序和條件,例如“若需求變更影響不大,不增加費用和延長開發時間;若變更會對開發進度或工作量有較大影響的,應當延長軟件開發時間及增加開發費用”。但是具體實踐中因為程序員缺少相關合同事務的操作經驗,同時因客戶方面繁瑣的審批流程遲遲不能及時回復而程序開發的時間又十分緊張,使得需求控制的相關程序和文件未及時提出并確認,最終在引發糾紛時無法確定具體的責任歸屬。對于項目經理來講,應當及時與律師進行溝通解決程序問題可以有效避免此類問題的訴訟風險。

以上是筆者承辦軟件開發合同中的幾點粗淺認識,因為該類案件涉及的證據和爭議事實較為復雜。單純的法律規則已經無法妥善地解決雙方的爭議,在法學與計算機科學交叉的領域,需要計算機行業背景的法官和律師在此類糾紛中扮演重要的角色,同時在現有的諸如敏捷、精益等開發模式中,如能適時適度地引入法學相關的內容和視角,可以使現有的模式更為完善。

此內容DOC下載 此內容PDF下載

【全文完】
關鍵詞標簽: 軟件開發 軟件開發合同 軟件企業 
0 ([$-頂稿人數-$])
0 ([$-踩稿人數-$])

版權聲明:

1、弈聰軟件網站內容中凡注明“來源:XXX(非西安弈聰網站)”的作品,轉載自其它媒體,轉載目的在于傳遞更多信息,其中涉及的網站建設,網站優化,APP開發,微信小程序開發,大數據平臺開發,區塊鏈技術開發等軟件開發技術細節并不代表本站贊同支持其觀點,并不對其真實性負責。對于署名“西安弈聰”的作品系本站版權所有,任何人轉載請署名來源,否則西安弈聰將追究其相關法律責任。

2、本站內容中未聲明為“原創”的內容可能源自其它網站,但并不代表本站支持其觀點,對此帶來的法律糾紛及其它責任與我方無關。如果此內容侵犯了您的權益,請聯系我方進行刪除。

天天影视综合网