軟件(jiàn)開(kāi)發過程中資深項目人(rén)員(yuán)的(de)重要(yào)性
今天和(hé)大(dà)家(jiā)聊一(yī)個(gè)職業(yè)生(shēng)涯中接手的(de)軟件(jiàn)項目維護工(gōng)作(zuò),在其中發現(xiàn)的(de)問(wèn)題,以及問(wèn)題的(de)前因後果。
這(zhè)個(gè)項目是(shì)一(yī)個(gè)學生(shēng)報(bào)名管理(lǐ)系統,錄入學員(yuán)信息、報(bào)名信息,以及其他(tā)相(xiàng)關信息,然後再生(shēng)成一(yī)些(xiē)财務統計(jì)報(bào)表和(hé)學員(yuán)信息報(bào)表,本身(shēn)的(de)結構和(hé)邏輯并不(bù)是(shì)特别複雜(zá)。
發現(xiàn)的(de)問(wèn)題是(shì)——數(shù)據結構設計(jì)錯(cuò)誤,進而導緻項目不(bù)能(néng)正常實現(xiàn)功能(néng)、難以維護、無法升級,最終導緻軟件(jiàn)變成了(le)一(yī)個(gè)殘缺的(de)産品,最終下(xià)線停用(yòng)。
下(xià)面我具體(tǐ)描述一(yī)下(xià)問(wèn)題。現(xiàn)實中大(dà)家(jiā)都(dōu)知(zhī)道(dào),當前中國(guó)家(jiā)長(cháng)普遍有(yǒu)給子(zǐ)女(nǚ)報(bào)補習(xí)班的(de)情況,而且一(yī)般有(yǒu)多(duō)次報(bào)班的(de)記錄,比如(rú)小(xiǎo)明(míng)的(de)父母給小(xiǎo)明(míng)報(bào)了(le)一(yī)個(gè)數(shù)學補習(xí)班,可(kě)能(néng)過了(le)一(yī)段時(shí)間(jiān)以後,又(yòu)報(bào)了(le)英文(wén)和(hé)鋼琴的(de)補習(xí)班(這(zhè)個(gè)軟件(jiàn)項目的(de)甲方有(yǒu)很(hěn)多(duō)課程)。那(nà)麽在實際使用(yòng)此類軟件(jiàn)系統的(de)時(shí)候,一(yī)般的(de)邏輯應該是(shì)先錄入學員(yuán)的(de)信息,然後在這(zhè)個(gè)學員(yuán)信息的(de)基礎上(shàng)進行(xíng)報(bào)課操作(zuò)₽。這(zhè)就(jiù)是(shì)簡單的(de)一(yī)對(duì)多(duō)的(de)數(shù)據關系,一(yī)條學員(yuán)信息對(duì)應多(duō)條報(bào)課信息。


但(dàn)是(shì)這(zhè)個(gè)項目的(de)開(kāi)發人(rén)員(yuán)設計(jì)成了(le)每次報(bào)名直接錄入學員(yuán)信息加課程信息,沒有(yǒu)結構上(shàng)的(de)區(qū)分(fēn)。

而且為(wèi)了(le)方便,學員(yuán)的(de)聯系方式一(yī)欄填寫格式是(shì)自(zì)由填寫。
後果一(yī):在後期的(de)使用(yòng)中校(xiào)方查找、維護學員(yuán)信息十分(fēn)不(bù)便,比如(rú)想改動學員(yuán)的(de)聯系方式,就(jiù)需要(yào)查詢出所有(yǒu)學員(yuán)的(de)報(bào)名記錄,逐條修改,而且隻能(néng)根據姓名查詢,然後根據聯系方式判斷,因為(wèi)聯系方式錄入混亂無法通(tōng)過它來(lái)查詢學員(yuán)信息。
後果二:報(bào)表功能(néng)無效,比如(rú)校(xiào)方想統計(jì)報(bào)名兩次以上(shàng)的(de)學生(shēn§g)數(shù)量,需要(yào)增加一(yī)個(gè)報(bào)名頻(pín)次統計(jì),然後做(zuò)對(duì)應的(de)營銷策劃。由于設計(jì)結構的(de)原因,沒有(yǒu)學員(yuán)信息唯一(yī)性的(de)依據,學員(yuán)同名、聯系方式錄入混亂的(de)情況很(hěn)多(duō)。沒有(yǒu)唯一(yī)性就(jiù)沒有(yǒu)辦法針對(duì)唯一(yī)的(de)學員(yuán)信息統計(jì)頻(pín)次。
後果三:維護升級難以進行(xíng),因為(wèi)數(shù)據結構的(de)原因,後期使用(yòng)中多(duō)處不(bù)便,甲方和(hé)我們維護方都(dōu)想對(duì)系統做(zuò)升級處理(lǐ),但(dàn)是(shì)基礎數(shù)據結構的(de)問(wèn)題,導緻我們無法把唯一(yī)的(de)學員(yuán)信息抽取出來(lái)。最終項目無法在根源上(shàng)做(zuò)升級補救。
這(zhè)個(gè)項目的(de)最終結果大(dà)家(jiā)可(kě)想而至。在梳理(lǐ)這(zhè)個(gè)項目的(de)開(kāi)發管理(lǐ)的(de)過程中,我們不(bù)難發現(xiàn):程序人(rén)員(yuán)缺少(shǎo)基本的(de)數(shù)據結構概念,項目管理(lǐ)人(rén)員(yuán)缺少(shǎo)需求分(fēn)析和(hé)同類項目的(de)了(le)解。因為(wèi)不(bù)管這(zhè)兩方哪一(yī)方是(shì)合格的(de),都(dōu)能(néng)很(hěn)大(dà)概率上(shàng)避免這(zhè)個(gè)重要(yào)的(de)結構問(wèn)題。這(zhè)裡(lǐ)我沒有(yǒu)提到(dào)測試方,是(shì)因為(wèi)中小(xiǎo)型項目中,測試工(gōng)作(zuò)其實大(dà)部分(fēn)是(shì)由設計(jì)師(shī)、程序員(yuán)、項目經理(lǐ)、客服、客戶分(fēn)攤的(de),而在這(zhè)樣的(de)測試人(rén)員(yuán)構成裡(lǐ)需要(yào)負起責任的(de)還(hái)是(shì)程序員(yuán)和(hé)項目經理(lǐ)。
總結這(zhè)個(gè)案子(zǐ),希望行(xíng)業(yè)內(nèi)能(néng)保留更多(duō)的(de)有(yǒu)經驗的(de)技(jì)術(shù)和(hé)項目管理(lǐ)人(rén)才,讓他(tā)們更關注項目品質而不(bù)是(shì)産出,對(duì)行(xíng)業(yè)現(xiàn)狀和(hé)企業(yè)産品品質的(de)提升都(dōu)有♠(yǒu)好(hǎo)處。而作(zuò)為(wèi)甲方更多(duō)的(de)要(yào)關注到(dào)具體(tǐ)的(de)項目參與者的(de)資質經驗,程序員(yuán)要(yào)有(yǒu)一(yī)定的(de)項目經驗或者後備支持,項目經理(lǐ)最好(hǎo)有(yǒu)技(jì)術(shù)背景,這(zhè)樣對(duì)項目的(de)成功就(jiù)會(huì)有(yǒu)一(yī)定的(de)保證。
上(shàng)一(yī)篇:網建優化(huà)利器(qì)——新企業(yè)雲平台客戶端正式上(shàng)線!
下(xià)一(yī)篇:FileZilla下(xià)載的(de)文(wén)件(jiàn)自(zì)動加了(le)空(kōng)行(xíng)








