男性早孕-从软件与程序的区别说起
引言
?????? 今日新聞《如此醫(yī)院太荒唐大小伙子被查出“早孕”》,百度搜索結(jié)果如下:
?
看到這結(jié)果,大家啥感想?
?
按常理,醫(yī)院粗心、醫(yī)療機(jī)構(gòu)忽視患者權(quán)益、經(jīng)濟(jì)利益的惡性驅(qū)動(dòng)等等言論,唾沫星子基本足以把肇事醫(yī)院來個(gè)水漫金山。
?
但實(shí)際上,這可能真的是一個(gè)小小的技術(shù)失誤。
當(dāng)然,歷史上小的技術(shù)失誤導(dǎo)致嚴(yán)重情況的后果很多,本文的目的并非為醫(yī)院開脫,只是單純從技術(shù)角度分析下該問題出現(xiàn)的原因。
?
?????? 以下文字,開篇扯的有點(diǎn)遠(yuǎn),但很快大家會(huì)發(fā)現(xiàn)聯(lián)系。
?
1-軟件與程序
首先一個(gè)問題,軟件和程序是否有區(qū)別?
本人能找到的最早回答此問題的人,是一代軟件工程大師Frederick P. Brooks,在其圣經(jīng)級(jí)著作《人月神話》的第一章,就給出了這樣一個(gè)圖:
*出自《人月神話》(清華大學(xué)出版社2007年第2版,ISBN:?9787302155676)
?
程序,圖中左上角,Brooks定義:本身是完整的,可以由作者在所開發(fā)的系
統(tǒng)平臺(tái)上運(yùn)行。它通常是車庫(kù)中產(chǎn)出的產(chǎn)品,以及作為單個(gè)程序員生產(chǎn)率的評(píng)估標(biāo)準(zhǔn)
編程系統(tǒng)產(chǎn)品,本人認(rèn)為可以等價(jià)于“軟件”,Brooks定義為:可以被任何人運(yùn)行、測(cè)試、修復(fù)和擴(kuò)展的程序。它可以運(yùn)行在多種操作系統(tǒng)平臺(tái)上,供多套數(shù)據(jù)使用。
??? 如何從程序變成產(chǎn)品,需要走的路,就是圖中藍(lán)色的兩條:
橫向:代表了大家熟知的技術(shù)完善方向,例如架構(gòu)的規(guī)劃、接口設(shè)計(jì)、系統(tǒng)集成等工作;
??? 縱向:似乎是一些不太技術(shù)化的內(nèi)容,測(cè)試工作、文檔準(zhǔn)備等等;
??? 簡(jiǎn)單的說,橫向的道路,是為了把軟件做出來,縱向的道理,是要盡可能延長(zhǎng)軟件的生命周期;一個(gè)是從0到1,一個(gè)是從1到萬(wàn)。
???
??? 那么,下一步的問題就是:Brooks大師為何如此定義,這樣的定義對(duì)我們有何意義。
?
2-認(rèn)知模型
??? 任何一種定義,都和其產(chǎn)生的時(shí)代密不可分。結(jié)合上圖及計(jì)算機(jī)發(fā)展的歷史,基本可以看出,Brooks大師工作的時(shí)代,除了接口、系統(tǒng)集成之外,如測(cè)試、文檔等諸多工作,大部分也需要軟件開發(fā)者自主完成。
在這個(gè)過程中,其實(shí)兩類工作的思考角度是有明顯不同。
在軟件的制作過程中,制作者要考慮的是系統(tǒng)的結(jié)構(gòu),分為哪些模塊及哪些類(或函數(shù))等,以及相互關(guān)系和程序控制方法。
在軟件的產(chǎn)品化管理過程中,制作者則要考慮如何保證系統(tǒng)可用,如何讓系統(tǒng)可以被更多的人維護(hù),以延長(zhǎng)其生命周期。
上述兩類工作者,在工作過程中思考問題角度和思維過程的差異,即可認(rèn)為是認(rèn)知模型的不同。
?
??? 時(shí)至今日,軟件行業(yè)已經(jīng)從實(shí)驗(yàn)室和超大機(jī)房里走出,成為生機(jī)勃勃的產(chǎn)業(yè),其中所涉及的職能角色及其認(rèn)知模型,也發(fā)生了不少變化。
?
3-我們的工作基礎(chǔ)
以醫(yī)院內(nèi)運(yùn)行的軟件為例,醫(yī)院內(nèi)所使用的軟件系統(tǒng),屬于典型的行業(yè)信息化,嚴(yán)格的行業(yè)規(guī)范、高度專業(yè)的業(yè)務(wù)知識(shí)、復(fù)雜多變的需求,形成了目前此類軟件系統(tǒng)的開發(fā)團(tuán)隊(duì)通常由業(yè)務(wù)分析者、設(shè)計(jì)開發(fā)者、測(cè)試、項(xiàng)目部署實(shí)施等角色共同構(gòu)成的局面。
當(dāng)然,廣義的說,還要加上使用該系統(tǒng)的用戶。
于是,問題來了:這些人都關(guān)心什么。
用戶:系統(tǒng)是否符合規(guī)范,是否能避免規(guī)范中的禁忌,是否能更自動(dòng)化完成工作,是否可以為管理等決策數(shù)據(jù)處理提供方便,等等;
開發(fā)團(tuán)隊(duì):根據(jù)業(yè)務(wù)需求形成開發(fā)任務(wù),保證代碼質(zhì)量,系統(tǒng)可測(cè)試,架構(gòu)清晰,可維護(hù),等等。
形象點(diǎn)說,用戶眼里,軟件產(chǎn)品是這么形成的:
??? *用戶認(rèn)知模型
但在開發(fā)團(tuán)隊(duì)眼里,軟件產(chǎn)品很可能是這么形成的:
*開發(fā)者的認(rèn)知模型
顯然,除了起點(diǎn)和終點(diǎn),幾乎沒啥一樣的,中間不出分歧,才是怪事,分歧大到一定程度,就會(huì)變成“焦油坑”(出自《人月神話》,描述的是IT項(xiàng)目由于諸多復(fù)雜的問題和影響因素的影響,導(dǎo)致項(xiàng)目陷入混亂的狀態(tài))。
舉例:
(1)智能排序問題:某個(gè)輸入框的選項(xiàng),顯示出來大約20項(xiàng)左右,可能出現(xiàn)的數(shù)據(jù)大約千項(xiàng)。
如果想要根據(jù)用戶的使用頻率,把常用的向前排,顯然是個(gè)技術(shù)含量相對(duì)較高的做法。
但實(shí)際可能是,用戶常用的是相對(duì)固定的幾項(xiàng),剩下的用拼音碼檢索就可以。
?
(2)紅色標(biāo)識(shí):某個(gè)數(shù)字標(biāo)簽,在大于一定的數(shù)值后要標(biāo)紅,系統(tǒng)起初未開發(fā)此功能;后來增加,用戶高度贊賞。
顯然,(2)中所述的功能一般技術(shù)上不難,但獲得的價(jià)值極高;而(1)則反之。
?
除此之外,一些編程階段的不規(guī)范做法,給產(chǎn)品中埋下了若干地雷,比如一些變量未初始化,或簡(jiǎn)單初始化為0,而這個(gè)0對(duì)應(yīng)著第一個(gè)選項(xiàng);或者不可見區(qū)域的下拉框選擇內(nèi)容時(shí)錯(cuò)了一位,但后續(xù)又沒有校驗(yàn)措施,都可能會(huì)鬧出笑話,本文開頭的例子,很可能就是軟件中存在此類問題。
此類問題的修復(fù)在技術(shù)上一般也不太困難,但在業(yè)務(wù)上很可能給用戶帶來非常大的隱患,現(xiàn)今的醫(yī)療工作中,本身醫(yī)患之間解釋溝通的工作量就不少,再加上需要解釋軟件相關(guān)的一些問題,所引來的麻煩與溝通成本可想而知。
?
4-對(duì)組織的影響
??? 目前很多醫(yī)療軟件公司,在技術(shù)團(tuán)隊(duì)的組織架構(gòu)層面,融入了開發(fā)者認(rèn)知模型,通常會(huì)將工作崗位劃分為:業(yè)務(wù)分析者,開發(fā)者,測(cè)試人員,實(shí)施人員,數(shù)據(jù)庫(kù)管理員等。
??? 而為了盡可能貼近用戶的實(shí)際使用場(chǎng)景,提高產(chǎn)品可用性,即解決“用戶認(rèn)知模型”中的“更優(yōu)化智能的流程”和“禁忌問題規(guī)避”兩方面問題,某些公司參考了互聯(lián)網(wǎng)領(lǐng)域的產(chǎn)品經(jīng)理做法,但由于醫(yī)療行業(yè)當(dāng)中智能點(diǎn)和禁忌點(diǎn)過多而且相對(duì)分散,尚需結(jié)合此類問題的特征,設(shè)計(jì)標(biāo)準(zhǔn)化模型后方可能有更好的成果。
?
5-回到最初
??? 個(gè)人認(rèn)為:醫(yī)療行業(yè)傳統(tǒng)的信息化分析與建模等軟件工程方法更多的是解決如何將軟件從無到有做出的問題。
??? 在這個(gè)過程中,工作的重心是要關(guān)注重點(diǎn)功能,并結(jié)合技術(shù)難度,大量的資源用于處理關(guān)鍵需求與高難度技術(shù)任務(wù),以保證項(xiàng)目整體工期與質(zhì)量最佳平衡。
下一步,各供應(yīng)商的產(chǎn)品不斷完善、技術(shù)積累日益豐富,從而會(huì)在一個(gè)比較長(zhǎng)的時(shí)期,將軟件從無到有做出來的速度有顯著提高,但如何從正反兩個(gè)方向提高產(chǎn)品可用性就會(huì)成為核心問題。
正方向:如何從局部到整體的優(yōu)化流程,由于醫(yī)療行業(yè)規(guī)范嚴(yán)格且數(shù)量眾多,目前可優(yōu)化的空間較為有限。
反方向:風(fēng)險(xiǎn)問題分類,估算成本,以風(fēng)險(xiǎn)成本為核心驅(qū)動(dòng)開發(fā)過程及分配技術(shù)資源。
?
結(jié)論:用戶的認(rèn)識(shí)模型和技術(shù)人員的認(rèn)知模型有很大不同,在開發(fā)角度看起來的一些小問題,可能會(huì)給用戶造成極大影響。
隨著信息化技術(shù)的發(fā)展,可以考慮選擇功能點(diǎn)如果出錯(cuò),對(duì)用戶的影響程度這個(gè)重要指標(biāo)來進(jìn)行需求分級(jí)與架構(gòu)設(shè)計(jì)等工作。
轉(zhuǎn)載于:https://www.cnblogs.com/vbspine/archive/2012/11/27/software_and_program.html
總結(jié)
以上是生活随笔為你收集整理的男性早孕-从软件与程序的区别说起的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Exchange+2010实验手册
- 下一篇: Redhat的Linux产品版本AS/E