- 相關推薦
軟件項目工作經驗總結(通用12篇)
總結是對取得的成績、存在的問題及得到的經驗和教訓等方面情況進行評價與描述的一種書面材料,它可以提升我們發現問題的能力,讓我們一起認真地寫一份總結吧。你想知道總結怎么寫嗎?以下是小編幫大家整理的軟件項目工作經驗總結,僅供參考,希望能夠幫助到大家。
軟件項目工作經驗總結 1
關鍵詞:企業;信息系統;軟件外包;關鍵因素
1、引言
隨著現代信息技術的發展與應用,國內各行業的信息化建設全面展開。信息化建設離不開各種信息系統的支持,如辦公自動化系統、管理信息系統、電子商務系統、決策支持系統等。企業在開發信息系統時,有些需要外包給軟件開發商來完成,企業只有把握好外包中的幾項關鍵因素,才能成功實施軟件系統的外包。
2、企業信息系統軟件外包成功實施的關鍵因素
煙草行業卷煙生產經營決策管理系統(即“一號工程”)是20xx年國家煙草專賣局根據行業宏觀調控和科學決策信息化建設發展的需要建設的信息化系統。系統建立了行業數據交換體系,通過打掃碼、數據庫聯機方式自動采集行業生產經營基礎數據,構建行業業務指標體系和數據分析模型,建立國家局數據中心,實現國家局分析展現應用的界面集成和業務集成。“一號工程”是煙草行業軟件外包的一個典型的成功案例[1]。
(1)選擇技術實力強、口碑好的軟件外包企業
企業在選擇軟件外包商時,可采取公開招投標方式,對投標單位從技術能力、人員能力及軟件過程能力進行綜合評估,選擇員工作風好、保密觀念強、政治覺悟高的企業作為接包方,確保系統數據安全,并與接包方簽訂《保密責任協議書》,建立安全保密分級管理制度。
如“一號工程”于20xx年通過公開招投標,確定由中國計算機軟件與技術服務總公司(即中軟總公司)作為項目總集成商,中軟總公司委托其下屬的中軟國際承接項目建設工作。中軟總公司是國家規劃布局內重點軟件企業,實力雄厚;中軟國際是國內領先的應用軟件和解決方案供應商,在國內IT行業享有較高的聲譽。
(2)充分調研與溝通,作好項目需求分析工作
企業在軟件外包時必須做好項目需求分析工作。業務部門提出用戶需求后,通過與技術部門、軟件開發人員多次交流溝通,提出系統的綜合要求及標準。開發人員通過分析系統需求,了解用戶工作流程并對其進行正確分類,確定系統的可接受性、可實施性、可測試性;在形成需求報告之前,對后期發現的不明確、不一致的地方要進行修改或補充;最后項目經理應邀請客戶代表共同評審需求文檔的正確性、完整性和清晰性,使需求文檔正確無誤地反映用戶需求。
(3)明確各部門職責,選派專人參與開發過程,保證項目進度及安全
企業應明確參與部門(如歸口管理部門、牽頭部門、協作部門等)的具體職責,避免在軟件開發出現問題時由于沒有建立合理的分工、反饋和跟蹤制度出現多方推諉現象;企業還應選派技術人員全程參與開發過程并建立項目進展情況表。企業參與軟件開發,不僅可以培養自己的技術力量,還可以及時協調、解決出現的'問題,為項目進度提供保障,還能對項目涉及的保密數據進行脫密處理,進而保證項目安全。
例如,“一號工程”在建設過程中成立了項目領導小組,國家局局長姜成康親自主抓,副局長李克明任組長,信息中心主任高錦任副組長,各單位負責人是領導小組成員。成立了項目實施辦公室,做到了分工明確,各司其責。從公開招投標到各階段的項目建設,每個方案都經過了專家會議的若干次討論,每一階段國家局都召開了專門的會議進行部署。李克明副局長親自參與布置各個階段的工作,協調各方關系,為項目建設提供了保障。
(4)做好軟件測試工作,進一步提高軟件產品質量
從技術角度看,各種信息系統開發的最終目的就是得到高質量的軟件產品。企業為保證軟件產品質量和可靠性,必須做好軟件測試工作。通過制定軟件測試計劃,做好測試準備工作;組建測試團隊,包括測試項目負責人、測試分析員、測試設計員、測試程序員、測試員、測試系統管理員、配置管理員;選擇合適的測試方法,靜態測試或者動態測試,白盒測試或者黑盒測試,重點要進行可靠性及安全性測試;選擇測試工具,如Parasoft、Compuware、Xunit等白盒測試工具,LoadRunner、WinRunner、Astra Quicktest等黑盒測試工具;重點做好測試中Bug和需求變更的跟蹤和管理,做好Bug分類、缺陷記錄、版本控制等工作。
(5)嚴格做好軟件驗收工作
軟件項目的驗收非常重要。企業在接到驗收申請后,要認真審查軟件系統的運行、文檔資料、培訓工作等現狀,對于符合驗收條件的項目,要嚴格按照驗收標準和流程來驗收。驗收的主要依據是軟件需求規格說明書 。驗收程序分技術測試和文檔檢查。技術測試由專家組負責。文檔檢查主要檢查招投標書、合同、用戶使用報告、信息安全測評報告、系統使用手冊等。驗收測試范圍包括功能項測試、業務流程測試、容錯測試、安全性測試、性能測試、易用性測試、適應性測試、文檔測試等。
如“一號工程”作為耗時兩年半精心打造的信息化項目,驗收時非常嚴格規范。驗收委員會由中國工程院院士孫家廣、沈昌祥等13名專家組成。中軟國際的驗收資料齊全完備,在《項目驗收總結報告》中詳細描述其建設過程,涵蓋了從方案論證、軟件開發到項目實施與服務、合同完成情況等方面的工作。中煙信息技術公司隨即構建了運行維護體系,設立了客戶服務、技術支持等部門,在完成日常維護的同時,以電話支持和現場服務等方式為行業基層提供服務或解決操作上出現的問題。
(6)做好商業秘密、核心技術等知識產權保護工作
企業在軟件外包開發中,要做好知識產權保護工作。首先,要和接包方簽訂嚴格的保密協議,要求他們指定專人負責對核心技術的使用控制;其次,企業要通過技術分析及數據過濾提供盡可能少的核心機密;第三,盡量在發包方本地進行后期的數據裝入,以減少商業秘密泄漏的可能。
對于產生的其他知識產權,根據我國《計算機軟件保護條例》的規定:“接受他人委托開發的軟件,其著作權的歸屬由委托人與受托人簽訂書面合同約定;無書面合同或者合同未作明確約定的,其著作權由受托人享有。”對此,企業要與接包方簽訂書面合同,明確以下3點歸屬問題:(1)軟件作為一個整體的知識產權歸屬;(2)軟件中的代碼歸屬及重用性約束等具體規定;(3)因知識產權歸屬的法律適用及發生侵權糾紛的具體解決方式,包括責任的承擔、損失的追償等。
3、結語
軟件外包對于企業來說,可以提高開發效率、降低成本。充分做好以上幾項工作,才能減少外包風險,保證軟件產品質量,為企業帶來更好的經濟和社會效益。同時,企業還要針對軟件項目特點,運用適合自身的項目管理模式來加強軟件外包項目管理,尤其要規范項目實施過程,才能迅速適應業務需求的變化,提高軟件系統的運行效率,提升企業的核心競爭力。
軟件項目工作經驗總結 2
軟件項目管理是為了使軟件項目能夠按照預定的成本、進度、質量順利完成,而對成本、人員、進度、質量風險等進行分析和管理的活動。軟件項日管理最早出現于7o年代中期,當時美國國防部專門立項研究軟件項目失敗的原因,發現70%的項目失敗是I如于管理不善引起的。而并不是因為技術能力。從而得出一個結論,即管理是影響項目全局的因素,而技術只影響局部。所以軟件項目管理至關重要。在關系到軟件項目成功與否的眾多因素中,項目規劃、需求變化、軟件質量、風險管理等都是與項目管理直接相關的因素。因此,提高軟件項目管理的能力對軟件組織的軟件生產力的提高是最為重要的。本人對目前軟件企業實施項目管理的狀況進行了分析,結合軟件項目管理的理論知識,以期找出在軟件項目管理中常見的問題。促進軟件項目管理的應用研究。完善軟件項目管理在軟件企業的實施。
1、軟件項目管理存在的主要問題
1.1項目計劃問題
項目計劃是—個用來協調所有其他計劃,以指導項目執行和控制的文件。項目計劃是項目經理實施項目管理控制的基礎。制定計劃的過程就是—個對項目逐漸了解掌握的過程,通過認真地制定汁劃,項目經理可以知道哪些要素是明確的。哪些要素是需要逐漸明確的,通過漸近明細不斷完善項目計劃。目前的問題主要有:一是項目計劃的制定不夠嚴謹,隨意性大.可操作性差,因而實施中無法遵循。如項目計劃過于粗略.落實粒度(“Breakdown”)不足,不能做到任務、進度、資源三落實。二是缺乏貫穿項目全程的詳細項目計劃,甚至采用每周來制定下周工作計劃的逐周項目計劃方式,其實質是“項目失控合法化”。三是項目進度的檢查(與進度計劃對比)和控制不足。不能維護項目計劃的嚴肅性。
1.2管理意識問題
在軟件企業中。項目經理大多是技術骨干,在技術方面的知識比較深厚,但是項目管理知識、項目管理必備的技能,項目管理的經驗都有待提高。部分項目經理沒有意識到自己是項目經理的角色。不是從總體上去管理整個項目而是埋頭干具體的技術工作,其計劃不周造成項目組成員任務分配不均.忙的忙、閑的閑,這將影響項目的最終實施。有些項目經理對于一些不服從管理的技術人員,沒有較好的管理方法,不好安排的工作只好th己做。
1.3項目干系人相關問題
項目千系人(“STAKEHOLDER”)是指參與項目和受項目活動影響的人,包括項目發起人、項目組、協助人、顧客、使用者、供應商,甚至是項目的反對人。人們的需求和期望在項目的開始直至結束都是非常重要的。不同的干系人其期望和追求的目標往往相差甚遠,因此對項目十系人的愿望進行平衡是相當困難的事情。例如政府部門的不少對群眾辦公的信息系統,上層管理機關往往希望能夠采集盡可能多的信息項以便對數據進行多種多樣的系統分析,并對信息進行有效控制而增加一些審批流程;基層對外辦公的窗口則因為辦公速度的壓力希望減少信息的輸入;而辦事群眾則希望相關政府機構能夠簡化工作流程,加快辦事速度。如果對項目所有干系人沒有進行足夠的溝通,使其盡可能地參與項目,則可能因為項目開始時項目范圍和一些具體要求不夠完整清晰,或某個項目干系人后期認識的變化而提出新的要求,造成工期的延長,成本的增加,甚至項目的完全失敗。
1.4項目團隊內分工協作問題
由于項目開發的各階段不同角色、同一階段不同角色的責任各不相同,項目經理把工作責任分畫給團隊成員時通常會出現一些不良現象。首先是山于分工不夠清晰而造成工作相互推諉、責任互相推卸的現象;另外是出現“自家打掃¨前雪”的現象,即雖然分工比較清晰但是各成員只顧完成自己的那部分任務而不愿意與他人協作。
1.5溝通意識問題
項目溝通管理包括確保及時、正確地產生、收集、存儲和最終處理所需項目信息的過程。它是人、思路和信息之間的關鍵紐帶,是成功所必須的。雖然整個項目是項目經理負責,但是在決定這個業務單元山某個或者某兩個人完成后,項目經理只能起管理上的控制、建議和指導的角色,不能對具體的內容進行過多的干預在軟件企業中,項目經理大多是技術骨干,而項目組成員也都是“高科技人員”,都具有“從專業或學術出發、工作自主性大、自我欣賞、以自我為中心”等共同的特點。因此妨礙溝通因素主要是“感覺和態度問題”,也就是溝通意識和習慣的問題。在系統的實施階段或軟件開發的試運行階段,項目成員基本上是持續在客戶方進行工作,這種情況非常容易忽視溝通。如果沒有足夠的溝通意識和溝通制度、溝通工具,就有可能造成信息不暢,從而加大項目失敗的風險。
1.6項目風險管理意識問題
項目風險管理是指為了最好地達到項目的目標,識別、分配、應對項目生命周期內風險的科學與藝術。風險管理對選擇項目、確定項目范圍和制定現實的進度計劃和成本估算有積極的影響,并有助于項目千系人了解項目的本質,使團隊成員參與確定優勢和劣勢。目前項目風險管理意識的問題主要有兩種情況。第一是項目經理沒有充分分析可能的風險,對付風險的策略考慮比較簡單,在做項目規劃時常常沒有做專門的風險管理it~’l文檔,而是合并在項目計劃書中。第二是項目經理沒有充分意識到風險管理的重要性。對計劃書中風險管理的章節簡單應付了事,隨便列出幾個風險,隨便地寫一些簡單的對策,對后面的風險防范起不了什么指導作用。
1.7項目收尾問題
項目經驗總結是項目經理和項目組人員在項目完成后就取得的教訓寫的報告,是項目收尾的一個重要組成部分。總結在本項目中哪些方法和事情使項目進行得更好、哪些對項目制造了麻煩、以后應在項目中避免什么情況。哪些事情應在后面的項目中堅持等等。項目經理在項目結束時有些是因為項目人員已經不足或不全,或是因為有新的項目要接沒有時問,總體對項目經驗總結的重視程度不夠。有些是項目經驗總結一再拖延,有些是交上來的報告質量較低,敷衍了事。
2加強軟件項目管理的建議及措施
2、制定相符的項目計劃
制定計劃的精髓不在于寫出一份好看的文檔,而在于運用您的智慧去應對各種問題和面臨風險并盡可能做出前瞻性的思考。計劃是用來指導工作的,制定項目計劃必須把握項目it~,l的粒度,粒度越細則控制力度越大,但項目管理的成本越高,反之則控制力度越小。兇此必須按照特定的項目量體裁衣,該詳細就詳細,該簡略的就簡略,制定相符的項目計劃。許多組織都有項目計劃制定的指導原則。例如,美國國防部的2l67標準“軟件開發計劃”用于指導那些為國防部開發軟件的開發商制定軟件開發計劃。電氣和電子工程師協會(IEEE)的1058.1標準描述了“軟件項目管理計劃”的主要內容。表l給出了“1EEFYI,T:,準軟件管理計劃”的格式。遵循那些標準和方針有利于項41汁劃的制定和執行一旦it~,l被負責任地完成,他就可以給閂己一個和管理層或客戶交流和協商的基礎,幫助其在項目過程中防范各種題的出現,保證項H的按時完成.
2.2使用w BS(WorkBreakdownStructure)和資源負荷直方圖,合理分配任務
項目經理應使用工作分解結構WBS將項目工作范圍進行分解,為了避免有些雖然工作分解結構WBS沒汁合理,但項目任務無法有效、合理地分配給相關成員,可采用資源負荷直方圖把工作任務合理分配并達到“負載均衡”。另外.技術骨r在擔任項目經理之前,最好能系統地學習項目管理知識,特別是其中的人力資源管理、溝通管理,并且在實際工作中不斷提高角已的管理素質,豐富項目管理的經驗,提高項目管理的意識。
2.3項目組成員應互相協作、互相配合
項41經理通過使用WBS將工作范尉進行分解.并將工作責任分配給團隊成員,同時應強調不同分工、不同環節的`成員應 當相互協作,共同完成任務。雖然項目的進行有不同階段的劃分,但各階段還是相互聯系的。上一階段工作的結束不能只交付階段性成果,往往要通過多次溝通才能更為清晰地披下一階段成員所接受,其有效性、合理性也要被下一階段的工作所檢查,通過檢驗有時也有必要對上一階段的工作結果進行相應的凋整。因此,項H組成員都應根據需要相互協作,相互配合,共同完成任務。
24加強溝通意識
項目溝通管理指出:“管理者要用70%的時問用十與人溝通,而項目經理需要花費90%或更多的時間來溝通”從溝通的效果和效率角度出發,一股應注意下面四種情況:首先是溝通之前對溝通的基本慨念和目標進行清晰的界定其次是不能凱溺十溝通本身,而必須時刻清楚溝通的目的;意到溝通是有成本的,溝通的時間就是成本,客戶在為這些成本買單第三是一些規則,包括時和回合的限制、耐心聽完對方的I舌,進行“集中”決策。最后是為了做好事件.必須事先進行明確,進行充分的授權。另外,項目經理及其項14組成員要對項14下系人進行分析,項目1:系人分析要記錄重要的I:系人的人名、組織、他們各在項目中的角色、每個I:系人的實際情況、他們各自的項目利益大小、以及各自對項目的影響程度,以及管理這些項14 r系人的有關建’義等。通過溝通協調.以驅動他們對項目的支持,減少其對項41的阻力,以確保項41獲得成功
2.5加強風險管理意識
項目經理必須通過學項41管理知,掌握項H風險管理的必備知,加強對項14汁劃中的風險管理汁劃的審核,提高項41組的管理意識。總結本行業項目中常見的風險及其對策作為風險管理汁劃中必要的『x【險內容,并切實評估相應對策的有效性和可行性。
2.6重視項目經驗總結
項41經理及管理人員應對項目經驗總結引起足夠重視。在制度上鼓勵和JJu強項目經驗總結工作,使得項41經驗總結及時并且具有指導意義而不是敷衍了事,為以后的項41人員更好地工作提供一個極好的資源和依據。
軟件項目工作經驗總結 3
1.1教學理念落后
受到傳統教育思想的影響,我國高校工程教學長期以來以教師為教學環節中的主體,教師在教學過程中強調知識傳授,忽略了對學生實踐動手能力、創新能力、團隊合作精神和相關人文素質的培養。傳統的“面向對象軟件工程”課程的教學也存在著上述問題。
1.2傳統項目驅動教學方法在實施中的不足
項目驅動教學方法是在具體項目引導下以學生為主體來實施相關教學內容的一種教學模式。當前國內很多高校在開展項目驅動教學時,往往會變成走形式主義,具體表現在:
①教師對于學生的工程意識培養不夠重視,對項目的選擇或者設計比較主觀(具體表現在所選擇的項目很難或很易),這要么會引起學生有畏懼情緒而產生厭學,要么會使學生很容易地實現該項目(這種情況是因為學生可通過網絡輕易完成項目),從而使得該課程項目失去原本意義;
②在實施過程中,由于組織不當,會使得學生團隊人數過多,搭配不合理,這樣使得有些團隊因配置了能力很強的學生而使得該項目能夠順利完成,同時另一些團隊由于聚集了能力偏弱且自覺性較差的學生而使得該項目最終流于形式,這反而會導致項目驅動教學未能達到應有的教學目標。傳統的“面向對象軟件工程”課程項目的實施過程中也存在著上述問題。
1.3CDIO工程教育模式在“面向對象軟件
工程”課程改革中起到的作用針對上述問題,CDIO工程教育模式摒棄了以教師、教材和課堂為中心的“舊三中心論”,弘揚了以學生、學習和學習效果為中心的“新三中心論”,更強調通過工程實踐環節引導學生掌握新知識和動手與創新能力,從而樹立起以產品為導向的工程價值觀,將IT企業工程師應該具備的核心素質作為整個教育活動的主線。在實施CDIO教學過程中,將更強調學生在教師的引導下進行主動學習和積極認知過程,以構建起與學生已有認知結構相聯系的知識體系。
2基于CDIO工程教育模式的教學方法
基于CDIO工程教育模式的項目驅動“面向對象軟件工程”課程教學方法(下簡稱CDIO教學法),以培養學生的基本工程能力和工程綜合素質為目標,將“面向對象軟件工程”知識體系中的相關知識點滲透到實踐的各個環節中,而這些環節和軟件工程生命周期完全一致,在各個環節中解決問題的方法則可以采用CDIO的構思、設計、實現和運行理念。我們參照CDIO能力大綱,提出通過“面向對象軟件工程”教學和課程項目實踐,培養學生如下方面能力:
①通過基于案例/項目驅動來學習,要求學生能夠深入理解“面向對象軟件工程”的知識體系和該課程的基礎理論并能在實際項目中加以靈活應用。“面向對象軟件工程”的知識體系為學生理解和應用其基礎理論解決分析、設計、實現和運行中的實際問題打下基礎并提供有效工具;而“面向對象軟件工程”理論基礎為學生針對實際問題進行發明創造提供動力,為學生發現問題、分析問題和解決問題提供理論支持。
②通過“面向對象軟件工程”課程中項目的驅動,要求學生創建項目團隊,通過課程項目實踐各個環節(包括需求分析、設計和實現等環節及在此環節中的各項活動、溝通與協調、文檔撰寫),培養學生的良好職業素養,以及團隊合作、系統思維、工程實踐、項目管理和文檔寫作的能力。
③通過“面向對象軟件工程”理論學習和課程實踐,培養學生的創新意識和能力,以開發出具有鮮明個性的軟件作品。
3CDIO教學法在“面向對象軟件工程”理論及其課程項目教學設計中的應用
3.1總體設計
目前,“面向對象軟件工程”課程教學安排共計54學時,我們將理論教學內容與課程項目實踐教學內容結合起來進行設計。在整個教學周期內,按照軟件生命周期并結合CDIO、案例與項目驅動的教學法,設計理論課程案例教學過程中的相關活動,配合對應的課程項目實施活動加以有效組織與實踐,在整個教學環節結合項目開發活動的進展與深入,要求學生記錄自己團隊活動中的相關內容,按照我們事先制定的規范撰寫并維護項目文檔。具體解決方案是:第一,正式課程教學的1~6周,設計項目描述和需求獲取與分析、系統設計中的具體活動,這些活動包括分別標識實體對象、邊界對象和控制對象;將用例映射成對象;建立對象之間的交互;標識關聯、聚集和屬性;對單一對象狀態依賴行為的建模;對對象之間的繼承關系建模;對本階段的分析對象模型進行評審;基于分析對象模型標識出設計目標,進行子系統分解和標識;將子系統映射到系統構件元素上;標識并存儲持久性數據;設計訪問控制策略;設計全局控制流;標識服務;標識邊界條件;對系統設計進行評審。第二,7~14周,設計對象設計與實現中的活動,這些活動包括學習軟件復用和設計模式,并在詳細設計中加以應用;對對象之間的接口進行說明,涉及標識遺漏的屬性和操作、說明接口類型、簽名與可見性,說明接口中相關方法的前置條件、后置條件和不變式等。第三,15~16周,設計測試階段中的活動。第四,17周,進行相關的總結活動,包括項目文檔的靜態檢查和驗收,以及課程項目的動態演示與現場回答問題。
3.2設計課程項目
在設計課程項目中,將考慮提供給學生一個貫穿整個學期的課程教學項目描述,為此我們將選擇開發一個基于Web的應用系統。這類系統的實例很多,可以由教師設定或者由學生自選,如教師可根據教學中的需要設定一類基于Web的師生交流系統,以方便實現教師和學生之間關于做項目時的溝通。學生也可以根據個人興趣選擇網游軟件開發,或者選擇基于Web的電子商務網站系統等。總之,相關項目的設計需要教師事先準備好項目描述或問題定義。為了開發這類基于Web的應用系統,教師需要指定項目使用的環境和工具,主要包括兩類:一類是開發環境與工具、數據庫管理系統、界面開發工具等,另一類是項目管理工具。這一階段設計的活動屬于CDIO中的構思階段。
3.3設計理論課程教學過程
首先,在理論課程教學內容設計中,我們主要依據的是第3版的SWEBOK標準(20xx),在CDIO工程教育模式的指導下,完成相關知識體系教學設計。在SWEBOK20xx版中的17個知識點中(其中2個為候補知識點),我們選擇了其中10個知識點,并將這些知識點融合到“面向對象軟件工程”的理論課程教學中。這些知識點可有效地體現著CDIO的工程教育理念,如軟件需求體現了CDIO的構思,軟件設計體現了CDIO的設計,軟件構造和軟件測試體現了CDIO的實現,軟件維護體現了CDIO的運作等。其次,在此基礎上設計理論教學過程。一方面,以案例/項目驅動教學方法為基礎,“面向對象軟件工程”課程中相關知識體系及理論學習,要求學生在學習和思考中掌握“面向對象軟件工程”的相關知識、術語、理論和技術基礎,并通過團隊方式共同學習、討論和完成作業,并以團隊形式參加全體同學的各種討論活動;另一方面,要求學生圍繞著項目描述或者待解決的問題描述,完成團隊組建、工具選擇、項目計劃制定,并開始執行需求工程中的需求獲取和需求分析活動,以及在此基礎上的系統設計活動,這些階段的工作結論需要學生加以記錄,特別是需求獲取與分析的結論和總體設計結論更要以文檔形式加以記錄。第三,結合案例/項目驅動教學,進一步完成“面向對象軟件工程”理論課程。具體做法是一方面引入小型案例,另一方面引入面向應用領域的實際項目,并在項目描述、需求獲取和分析活動、系統設計和對象設計中,將該項目的具體情景或者可行的系統設計解決方案引入課堂,在課堂上組織學生參與討論、分析這些基于場景的案例,將需求階段和系統設計階段中涉及的重點知識、術語、過程與步驟等重點和難點融入到案例中來講解和學習,以便于學生真正理解相關的理論教學內容。這一階段的活動設計對應著CDIO中的`構思階段。
3.4基于項目驅動的課程實驗教學設計
解決軟件項目中的問題或實現軟件項目中的任務,要求學生以團隊方式進行活動,并在整個活動中的各個階段貫徹CDIO工程教育的理念,即讓學生能夠對軟件項目中的任務完成進行構思,獲取與軟件項目相對應的軟件系統的功能性需求、非功能性需求和系統約束,并以文檔方式進行描述;接著,通過設計手段來完成項目任務,用系統來對應將來要完成的任務,并在該系統設計中落實項目的各項要求,這需要通過對系統的總體設計、詳細設計等環節來達到,并將設計結論記錄在軟件設計文檔中;在前面構思和設計的基礎上,選擇合適的程序設計語言、數據庫管理系統等基礎設施,用編程的方式實現該系統,并完成相應的測試任務,注意在實現過程中,同樣要將相關結論以文檔的形式加以記錄,以備維護之需;在系統實現后,通過部署和運行等方式,讓該軟件系統(可以看成是本項目的解決方案)呈現出價值。在這一完整過程中,讓學生通過項目驅動下的團隊活動過程,體驗到軟件產品從構思、設計、實現到運行(包括維護)所經歷的全生命周期過程。這一階段的活動設計對應著CDIO中的設計、實現階段。
3.5項目總結與項目驗收過程教學設計
項目總結過程的教學設計是以團隊為單位進行自我總結并撰寫項目總結報告,以個人為單位撰寫學習心得,教師主要驗收和檢查相應的項目總結報告和學生學習心得。項目驗收過程的核心是開展兩階段驗收活動,即在學期的15~18周中,選擇第15周進行一次中期檢查,第18周再進行一次期終項目驗收。全體主講教師和輔導教師組成一個答辯小組(一般為4人),他們事先要做好各項準備工作,包括現場點名以確認學生的有效身份并結合點名宣布學生團隊的答辯順序,保證答辯的有效性和合理性;由答辯小組組長宣布評分標準細節和學生是否能夠通過本次驗收活動的標準。
4、實踐活動
在“面向對象軟件工程”課程教學活動中,共有45位學生(組成了15個團隊)全程參與了我們的教學改革過程,現在僅就驗收答辯環節進行說明。整個答辯所耗時間共計7個多小時;答辯老師根據實際情況(最低底線是學生必須完成項目要求的最基本功能),充分肯定了學生到目前為止所完成的開發成果,同時建議相關學生利用即將到來的假期進一步完成或完善該應用軟件系統的開發,及時修改設計上的缺陷。在本次教改實驗過程中,我們充分認識到這一教學過程對教師也提出了更高的要求。教師不僅僅是需要在理論基礎教學上過硬,還需要具備軟件項目開發的經驗,這樣才能夠做到既能站在理論的高度指導學生分析和解決問題,同時也能給出實實在在的課程項目開發活動中的技術指導。
5、結語
軟件項目工作經驗總結 4
1、估算前的規劃
當我們的辦公室內堆滿了雜亂無章的文件時,恐怕無法知道對于我們真正有用的文件在哪里,當我們的軟件相目中收集了各種需求、意見、問題時,我們也很難從中估算出整個項目的規模、工作量以及成本。因此,在估算之前我們首先要對眾多信息進行整理、歸類分析,從而得到一個條理清晰的項目計劃,在這個計劃提供的框架內,才可能開始正確的估算。精心的規劃是任何一個軟件開發項目成功與否的關鍵,有了規劃就有如成竹在胸,之后無論風云變幻,都有應對入流的方法。當然只有正確的規劃,才能給軟件開發指引正確的方向。
軟件項目規劃的重點是對人員角色、任務進度、經費、設備資源、工作成果等等做出合適的安排,制定出一些計劃(包括高層的和細節的),使大家按照計劃行事,最終順利地達到預定的目標。
1.1、規劃的第一步:確定軟件范圍
確定軟件范圍,就是確定目標軟件的數據和控制、功能、性能、約束、接口以及可靠性。這項工作和需求分析是很類似的,如果之前已經達成需求分析規約,那么可以直接從《需求分析說明書》中把有用的部分拿來使用。如果還沒有開始需求分析,關于確定軟件范圍的方法方面,我們可以采用許多需求分析技術(如需求誘導),從客戶那里得到一個具體的軟件范圍。當然如果是一次全新的軟件邊界探索,就應當考慮軟件本身可行性問題,包括團隊是否具備在技術、財務、時間、資源上游可靠的保障,軟件本身在市場上是否有可靠的競爭優勢,等等。
獲得軟件范圍,最直接最可靠的來源就是用戶對軟件的需求描述。例如,在開發一個C/S架構的鐵路供電段數據上報系統中,客戶向我們提供了以下的目標軟件需求描述:
在供電站總部每天結束前要審核下屬節點操作員(30~40個)的供電安全數據報表,要求每個節點必須在下午5:30~6:00之間上傳數據。總部系統通過自動分析,整理出整個區內的安全形勢報表,并自動反饋到每個節點。各個節點之間通過調制解調器撥號(MODEM)用內部電話線相連,每個節點電腦主機配備一個MODEM。上傳數據為制式報表出了制式信息外,系統自動附加操作員姓名、上報時間、上報節點名稱。信息一旦上傳,節點端就不可以對已提交信息進行修改、刪除,只能閱讀、查詢。節點間數據互相隔離,只有總部才具備對各個節點數據的管理權限,但是對于歸檔數據(一旦審核完畢的數據,就進行歸檔)總部不具備刪改的權限。系統設置數據庫管理員,獨立于審核權限,其職責是對歷史數據的清理維護。
通過上面的描述,我們通過提煉和簡化,得到軟件的一下功能:
節點數據錄入、查詢、上傳
總部數據匯總、查詢、反饋
總部與節點的互聯項目管理培訓
總部數據庫存儲
節點數據的本地存儲項目管理論壇
在本例中,軟件的性能是潛在的。客戶雖然沒有明確提出,但是由于數據本身的重要性,要求系統在數據上傳、反饋、存儲過程中安全可靠。客戶要求使用MODEM進行撥號連接,那么鑒于MODEM連接過程中可能會出現,由于撥號斷開而道導致的數據丟失,在節點本地存放一份數據副本是有必要的。由于系統要求每天上傳數據,總部數據庫應當是7X24小時不間斷服務的,再加上目前總部只有該系統運行接受數據任務,各節點數據量并不大,那么在建議用戶選擇服務器時,應當考慮性能穩定可靠,但并不一定要購買大容量磁盤陣列和高性能雙CPU主機。由于每天上傳數據接近下班時間,那么總部匯總數據應當是自動進行的,一旦分析發現重大問題,可以通過與外部網絡的設置,向值班人員發送手機訊息、E-MAIL或其他警示。由于不同人員對于上報數據的權限不同,對于系統用戶實行分級管理。不同級別的用戶,具有對數據的不同管理權力,從而保證在軟件使用過程中不發生混亂。
那么現在一個較為清晰的軟件模型已經構造完畢,接下來我們需要進入計劃的第二步:確定工作所需資源。
1.2、規劃的第二步:確定工作所需資源
軟件工作所需資源包括:工作環境(軟硬件環境、辦公室環境)、可復用軟件資源(構件、中間件)、人力資源(包括不同各種角色的人員:分析師、設計師、測試師、程序員、項目經理……)。這三種資源的組成比例,可以看作一個金字塔的模式,最上面是人力資源、其次是可復用軟件資源、最下面是工作環境。最上面的是組成比例最小的,最下面的是組成比例最大的部分。
■人力資源
一個項目到底需要多少種職務的人員構成、多少數量的人員總量,再能成為最有創造力的團隊呢?這恐怕是最讓項目經理頭疼的事情了。任何一個軟件工程,都必須在確定軟件的工作量之后,才能清楚地知道究竟需要多少人力才能以最小成本和最高效率完成任務。在這之前,不能盲目地進行人力擴充,而且絕對不能為了給公司抬高門面,盲目招收高學歷。
■可復用軟件資源
這是一個容易在計劃階段被忽視的重要資源,很多人總是進入編碼階段才發現可復用資源的價值和存在。經過長期的項目積累或是購買,公司的軟件資源庫中或許已經積累了大量的可復用資源,但在當前任務中,只能選擇有價值的資源。根據不同的應用、時間、來源,可復用軟件資源被分為以下幾種:
可直接使用的構件:已有的,能夠從第三方廠商獲得或已經在以前的項目中開發過的軟件。這些構件已經經過驗證及確認且可以直接用在當前的項目中。
具有完全經驗的構件:已有的為以前類似于當前要開發的項目建立的規約、設計、代碼、或測試數據。當前軟件項目組的成員在這些構件所代表的應用領域中具有豐富的經驗。因此,對于這類構件進行所需的修改其風險相對較小。
具有部分經驗的構件:已有的為以前與當前要開發的項目相關的項目建立的規約、設計、代碼、或測試數據,但需做實質上的修改。當前軟件項目組的成員在這些構件所代表的應用領域中僅有有限的經驗,因此,對于這類構件進行所需的修改會有相當程度的風險。
新構件:軟件項目組為滿足當前項目的特定需要而必須專門開發的軟件構件。
在采用構件的時候,應當以低成本、低風險為使用前提。如果任何一個漂亮的構件的應用,可能會帶來潛在出錯的風險或者必須經過復雜修改或者效率低下時,我們都應當毫不猶豫地把它拋棄。我們只采用那些能夠滿足項目的需要且可直接使用的構件,或者具有完全經驗的構件,或者經過稍微修改便可使用的構件。項目經理博客
■環境資源
“工欲善其事,必先利其器”,要得到高效的開發過程,就必須向工作人員提供良好的軟硬件環境,包括開發工具、開發設備、工作環境、管理制度。一般管理人員都會購買可以滿足需要的軟件開發工具和硬件平臺,但是工作環境和管理制度往往被忽視。項目管理者聯盟
站在人件的角度看,向工作人員提供更輕松自在、安靜舒適的辦公環境的公司員工往往比整天在狹小隔間中工作的公司員工,產生更高的工作效率。而那些擁有靈活人性化的管理制度的公司,比整天加班的公司更能留住高技術的人才。所以如何在有限資金中,規劃一個合理的環境是很重要的事情。轉
到此為止,估算前的項目計劃已經完成,我們已經形成一個工程開發框架。這是一個有界限的框架,雖然還不夠精確,但足以進行估算的工作。
2、估算的對象
目前為止,一個較為準確的軟件項目估算的定義是:在給定公差范圍內,對于姚開發的軟件規模的預測,以及對開發軟件所需的工作量、成本和日歷事件的預測。這個概念指出了一個事實,即估算是一種大約的估計,是將誤差限定在一定范圍內的估計。
估算主要包括以下幾個重要內容:
規模估算
軟件估算首先要將整個工程的規模估算出來,才能進行下面的其他估算。規模,就是一個工程可量化的結果,是用具體數字來體現項目的描述。規模估算的信息來源是清晰、有界限的.用戶需求。
工作量估算
這是對開發軟件所需的工作時間的估算,它和進度估算一起決定了開發團隊的規模和構建。通常以人時、人天、人月、人年的單位來衡量,這些不同單位之間可以進行合理的轉換。
進度估算
進度時項目自始至終之間的一個時間段。進度以不同階段的里程碑作為標志。進度估算是針對以階段為單位的估算,而不是對每一個細小任務都加以估算,對任務的適當分解很重要,分解得越細反而會不準確。因為任何一個軟件工程,在各個方面都有與生俱來的不確定性。
成本估算
包括人力、物質、有形的、無形的支出成本估算,其中以人力成本為主要部分。比較容易被忽視的使學習成本、軟件培訓成本、人員變動風險成本、開發延期成本等,一些潛在成本消耗。
3、估算的策略
在軟件估算的眾多方法中,存在著“自頂向下”和“自底向上”兩種不同的策略,兩種策略的出發點不同,適應于不同的場合使用。項目管理培訓
3.1、自頂向下的策略
這是一種站在客戶的角度來看問題的策略。它總是以客戶的要求為最高目標,任何估算結果都必須符合這個目標。其工作方法是,由項目經理為主的一個核心小組根據客戶的要求,確定一個時間期限,然后根據這個期限,將任務分解,將開發工作進行對號入座,以獲得一個估算結果。項目管理者聯盟文章
當然由于這完全是從客戶要求出發的策略,而由于軟件工程是一個綜合項目,幾乎沒有哪個項目能完全保質保量按照預定工期完工,那么這樣一個策略就缺少了許多客觀性。但是由于這樣完成的估算比較容易被客戶、甚至被項目經理所接受,在許多公司我們看到這樣一個并不科學的策略仍然被堅定地執行著。項目管理培訓
3.2、自底向上的策略
與自頂向下的策略完全相反,自底向上的策略是一種從技術、人性的角度出發看問題的策略。在這樣一個策略指引下,將項目充分討論得到一個合理的任務分解。在將每個任務的難易程度,每個任務依照項目成員的特點、興趣特長進行分配,并要求進行估算。最后將估算加起來就是項目的估算值。
顯然自底向上的這種策略具有較為客觀的特點,但是它的缺點就是這樣一來項目工期就和客戶的要求不一致了。而且由于其帶來的不確定性,許多項目經理也不會采用這種方法。項目經理圈子
4、估算的方法項目管理者聯盟
顯然估算是建立在客觀實際上,對未來盡可能合理的一種預測。那么估算本身的不確定性,決定了它不可能是百分之百準確無誤的。在項目剛開始時,人們對產品需求、技術、市場預期、人員素質等因素的了解還遠遠不夠,在這種情況下人們很難作出準確的估計。但是依據某種方法進行估計顯然比瞎猜好得多。項目管理者聯盟文章
估算方法有很多,大致分為基于分解的技術和基于經驗模型兩大類。基于分解的技術的方法包括功能點估算法、LOC估算法、MARKII等;基于經驗模型的方法包括IBM模型、普特南模型、COCOMO模型等。
4.1、FP功能點估算法項目管理論壇
功能點估算法是一種在需求分析階段基于系統功能的一種規模估計方法。通過研究初始應用需求來確定各種輸入、輸出、計算和數據庫需求的數量和特性。這種方法的計算公式是:功能點=信息處理規模x技術復雜度。信息處理規模包括各種輸入、輸出、查詢、內部邏輯文件數、外部接口文件數等等;技術復雜度包括性能復雜度、配置項目復雜度、數據通信復雜度、分布式處理復雜度、在線更新復雜度等等。項目管理論壇
4.2、LOC估算法
這是一種從技術的角度來估算的方法總稱,其中又包含許多方法。這類方法以代碼(LOC)作為軟件工作量的估算單位,在早期的系統開發中較為廣泛使用。基于LOC的估算,又有點也有缺點。優點在于方便計算、容易監控、能反映程序員的思維能力;缺點在于代碼行數的含糊不清,不能正確反映一項工作的難易程度以及代碼的效率。因此在傳統的LOC方法進行了許多改進。其中不斷被使用,且不斷演化的方法包括以下:
PERT功能點估算法:PERT對各個項目活動的完成時間按三種不同情況估計:一個產品的期望規模,一個最低可能估計,一個最高可能估計。用這三個估計用來得到一個產品期望規模和標準偏差的Pert統計估計,Pert估計可得到代碼行的期望值和標準偏差SD。項目管理論壇
類比估算法:類比法適合評估一些與歷史項目在應用領域、環境和復雜度的相似的項目,通過新項目與歷史項目的比較得到規模估計。類比法估計結果的精確度取決于歷史項目數據的完整性和準確度,因此,用好類比法的前提條件之一是組織建立起較好的項目后評價與分析機制,對歷史項目的數據分析是可信賴的。
Delphi估算法:Delphi法是一種專家評估技術,在沒有歷史數據的情況下,這種方式適用于評定過去與將來,新技術與特定程序之間的差別。對于需要預測和深度分析的領域,依賴于專家的技術指導,可以獲得較為客觀的估算。通過專家們的互相討論,還可以博取眾長
系統分解:將系統分成若干個易于用LOC估算的部分,將其各個估算結果累加就是LOC的總規模。其中關鍵是建立起SBS(系統分解結構),它描述了系統的不同組件。SBS還被使用在其他重要的地方,如系統設計、系統分析等。在進行分解的時候,可以采用自由討論的形式,可以獲得更合理的SBS構成。項目經理圈子
4.3、IBM模型估算法
該模型是Watson和Felix在1977年的,是基于IBM聯合系統分布負責的60個項目的總結而得到的模型。該模型是一個靜態模型,而參考數據只有60多個項目,因此有很大的局限性。
4.4、COCOMO估算法轉自項目管理者聯盟
Boehm在其經典著作“軟件工程經濟學”(softwareengineeringconomics)中,介紹了一種軟件估算模型的層次體系,稱為COCOMO(構造性成本模型,COnstructiveCOstMOdel),它代表了軟件估算的一個綜合經驗模型。項目經理博客
COCOMO模型是適用于三種類型的軟件項目:(1)組織模式——較小的、簡單的軟件項目,有良好應用經驗的小型項目組,針對一組不是很嚴格的需求開展工作(如,為一個熱傳輸系統開發的熱分析程序);(2)半分離模式——一個中等的軟件項目(在規模和復雜性上),具有不同經驗水平的項目組必須滿足嚴格的及不嚴格的需求(如,一個事務處理系統,對于終端硬件和數據庫軟件有確定需求);(3)嵌入模式——必須在一組嚴格的硬件、軟件及操作約束下開發的軟件項目(如,飛機的航空控制系統)。
4.5、軟件方程式估算法項目管理論壇
軟件方程式是一個多變量模型,它假設在軟件開發項目的整個生命周期中的一個特定的工作量分布。該模型是從4000多個當代的軟件項目中收集的生產率數據中導出的公式。初期的方程式較為復雜,通過,Putnam和Myers的努力又提出一組簡化的方程式。當然這種方法也是基于長期的參考數據的積累而得到的。
4.6、WBS估算法w
這是一種基于WBS(工作任務分解)的方法,即先把項目任務進行合理的細分,分到可以確認的程度,如某種材料,某種設備,某一活動單元等。然后估算每個WBS要素的費用。采用這一方法的前提條件或先決步驟是:項目管理者聯盟
對項目需求作出一個完整的限定。
制定完成任務所必需的邏輯步驟。
編制WBS表。
項目需求的完整限定應包括工作報告書、規格書以及總進度表。工作報告書是指實施項目所需的各項工作的敘述性說明,它應確認必須達到的目標。如果有資金等限制,該信息也應包括在內。規格書是對工時、設備以及材料標價的根據。它應該能使項目人員和用戶了解工時、設備以及材料估價的依據。總進度表應明確項目實施的主要階段和分界點,其中應包括長期定貨、原型試驗、設計評審會議以及其他任何關鍵的決策點。如果可能,用來指導成本估算的總進度表應含有項目開始和結束的日歷時間。
除了以上介紹的幾種方法外,還有一些其他的方法:類比估算、推測估算、Standard-component估算法、普特南估算法等。當然不同的方法適用于不同的具體環境,有些方法雖然很好但并不一定適合當前的任務。只有量體裁衣,具體問題具體分析,才能得到盡量合理的估算。
5、估算的戒律項目管理者聯盟
記住:應該滿足于事物的本性所能容許的精確度,當只能近似于真理時,不要去尋求絕對的準確??——亞里斯多德
對于任何一個項目經理,都知道要慎重估算,但是我們仍然會看到人力資源的浪費和財力資源的匱乏,在許多項目中存在。對于寶貴的資源,我們不是用得太多,就是根本不夠用。因此,有以下前人總結出來的一些經驗以供借鑒。
不要追求完美:就像沒有人能預測出未來,如果還沒有完成,就不要企圖完美的結果。更何況估算的太精確,反而會失去靈活機動的空間。
不要為滿足預算而估算:如果這個項目的預算根本不能完成100%的任務,那么就不要讓你的團隊委曲求全。正確地反映客觀現狀,不僅可以爭取應得的權利,而且是完成任務的前提。
不要隨意削減估算結果:有很多老板喜歡把項目經理遞交的估算,不假思索地砍掉一部分。這是一種不負責任的做法,如果要削減一定要有理由。
客觀地估算,不貪多不偷減:就像老板不能隨便削減你的估算一樣,你也同樣不能在估算的時候,貪多或是偷減。貪多必然導致會浪費,偷減必然導致不足。這兩個結果恐怕都不是一個合格的項目經理的作為。
客觀利用過去的經驗:對于以往估算的經驗,當然是寶貴的財富,但是如果財富用錯了地方就會變成垃圾。在使用經驗時,要注意現在和參考經驗之間的差異。不要忘記,隨著時間的推移,計算機領域技術的更新,許多觀念都在發生著改變。項目管理培訓
軟件項目工作經驗總結 5
軟件項目管理這門課程是我們軟件工程專業學生的一門重要的課程,這門課程的開設必有其重要性。軟件項目管理的提出是在20世紀70年代中期的美國。由于開發項目不能按時提交、超出預算、質量達不到用戶的要求等原因,70%的項目出現問題。于是,軟件開發者開始逐漸重視軟件開發中的各項管理。軟件項目管理和其他項目管理相比有相當的特殊性。首先,軟件是純知識產品,其開發進度和質量很難估計和度量,生產效率也難以預測和保證。其次,軟件系統的復雜性也導致了開發過程中各種風險的難以預見和控制。因此,項目管理對軟件生產具有決定性的意義。
只有相信團隊合作才可能把項目做到最好,從整個項目的過程來看,團隊合作中需要溝通、分工、協作和監督。只有做好這四項才算是一個好的合作團隊。首先,團隊合作最基本的技能就是溝通。溝通的目的就是讓別人了解你的想法,因為每個人考慮問題的時候總會有各種各樣的偏差,我們只有溝通很好的溝通來綜合所有人的好的想法,以減少走彎路,而讓事情進行的`更順利。因此我們也開了幾次會議來互相了解溝通,當然最重要的是與項目經理的溝通。會議中他很認真負責地跟我溝通,我在溝通中用詞不當或犯什么錯誤時,他都會指出來,并改正我的說法,因此單從與他的溝通中就學到了不少以后工作時將會用到的實在的知識。我們項目每人都是按照他給我們的計劃提交相應的文件給他,但質量是參差不齊的,他都會進行審核,然后給出建議,讓我們修改優化后,他才會通過。
我在此次課程中負責的部分是質量保證計劃書,這是從未了解過的內容。從課程和書本上的知識不足以讓我完成質量保證計劃書,于是又從網上找了很多模板和每一小項是在說些什么內容來完成我們組的質量保證計劃書。在這個過程中我學到了很多。我也感受到軟件項目管理是一門非常需要學習的課程。它對軟件工程項目的作用是至關重要的。現在,作為學生的我所做的項目雖然都是一些小的項目,但是在小組共同開發的時候還是需要用到項目的管理。如:人員的分配,時間、進度的計劃,溝通計劃,項目執行變更管理,以及質量管理控制等多種管理。我相信在今后的實習及工作當中,能更好的體驗和感受到項目管理的精髓,對軟件項目管理有更深入的了解。我也希望,學校的老師能夠在今后的教學當中重視軟件項目管理課程,多讓學生了解實例,去感受、體會軟件項目管理所遇到的問題和解決方案,理解軟件項目管理的精髓。
軟件項目工作經驗總結 6
一個項目之所以能成功,能讓客戶滿意,領導放心的原因可能大多都差不多,大多都是老生長談的那幾條。但是一個項目失敗的原因卻各有各的不同。下面再根據自己的體會寫一些項目總結,一為了總結不足,積累經驗,二為了以后項目中避免犯同樣的錯誤。
一、要和客戶有足夠有效的溝通和客戶的溝通要貫穿整個項目開發的始終,從立項調研,需求獲取到最后的驗收測試,后期維護。
1.要盡量多的主動跟客戶溝通
客戶一般工作都很忙,所以要通過多種方式和客戶保持溝通,電子郵件,電話,座談,調查,會議等。最初的需求盡量保證有幾次所有與項目相關的部門和人員都能參加的討論會,把他們的各自的工作都描述一下,盡量不要遺漏,都羅列出來,因為這是原始需求。這往往不容易做到,因為政府部門很難抽出時間把各部門人員集中在一起來做這些事情的,但是我們必須得這樣要求他們,要求他們把這個看成一項工作來抓,因為前期工作做不充分,后面的開發會不會很成功。在對某個功能或者需求不能確定的情況下,最好能整理成列表文檔發給客戶,讓客戶以電子版的形式重新描述一下發過來,盡量不要經常打電話騷擾客戶,要集中把要了解東西發給客戶,以便他們集中精力來處理你問的問題。
2.要盡量保證有效的溝通
每次溝通要有一定的目的性,把溝通交流的結果用文檔的形式保存下來;需求制訂出來要得到客戶的確認,在經過幾次反復之后會得到一個相對比較穩定的需求,雖然客戶的需求不可能一直不變,這也是很多人搞項目頭疼的地方,但是我認為客戶的需求實際上是很少改變的,改變的是你對客戶需求的理解。對客戶的每一個要求都要重視,尤其是客戶后來提到的一些改動建議,要讓他們以書面的形式發過來,必要的時候要求負責人蓋章簽字,我們不能為了下面的下面的一個小辦事員隨便打個電話就對程序做出大的改動。再改動比較大的情況下,我們可以要求客戶對合同的變更追加費用,前提是把需求作為合同的附件加進去,防治最后驗收的時候造成爭執。
3.和客戶溝通要找準對象
一般企業或者政府都有專門負責信息的人員,而且最好要求客戶那邊找一個人專門負責這個項目。這樣找對方了解需求的時候就不會出現不知道找誰的情況,客戶那邊有專人負責會帶來很多好處,這個項目就是因為客戶那邊負責這個項目的人員經常更換而為我們項目的開發造成了很多的不變。
二、提高開發效率和保證項目質量
政府的項目一般都是開始的時候不著急,你催他們準備資料他們也不著急,但是一旦他們把資料準備全了,都交給你了就著急了,要求對方在很短的時間內保證質量的把項目交付。所以如何提高開發效率和保證項目質量是確保項目成功的關鍵。
1.保證良好充分的測試
當然軟件測試的范疇很大,但是為了趕進度我們往往不能不保證進行所有的軟件測試。軟件的測試也是遍布整個項目開發周期的,我了解了一下tdd,tdd的思想很好,很適合開發中小型的'項目,實施起來也很方便,但是不能純粹的用敏捷開發的理論,必要的文檔還是需要的。我認為代碼模塊的單元測試,開發最后階段的集成測試和部署后的整體功能測試和用戶驗收測試是必不可少的。項目進度再緊張也要進行單元測試,只要保證單元測試能通過,以后代碼可以慢慢重構。集成測試保證項目各個模塊能良好的協作共同完成復雜的任務,這點不能保證的話,展示給客戶的最終功能就不能保證。而功能測試和用戶驗收測試是純粹的黑盒測試,自己內部人員先對照原始客戶的需求進行功能測試,列出bug列表,經過幾次反復修改后給客戶一個可以進行驗收測試的系統。
2.保證相對必要的文檔以及保證文檔的可用性
每個模塊的文檔要獨立起來,要實現的目標,測試的結果,模塊所用的數據庫的結構,存儲過程,設計思路,調用的接口等這些是必須的。我也不建議面面俱到的文檔,但必要的需求文檔,模塊文檔,測試文檔是必須的,我們的項目小的不足以讓我們去學習龐大的rup什么的。
3.迭代開發
剛開始可以根據客戶的需求弄出一個藍圖來,交給客戶看,以便讓客戶能盡量早的知道最終的開發出來的系統是什么樣子的,這個藍圖要盡量直觀,一般在需求整理完畢后一周就能出來,這也是指導以后開發工作的東西,要完整的包含所有的域模型,便于開發人員對問題域的理解。
然后把優先級最高的一系列功能完整后出一個demo版給客戶,要讓客戶盡量早的發現正在制作的項目和用戶想要的結果的之間的偏離和差距,告訴你后以便你盡早的調整,別等你的正式版出來后用戶發現這個功能你做的不對,你就傻了,那時候要改動的地方就太多了。然后再弄完善一下給用戶個beta版,這時候就已經接近最終版本了,可能還有一些小bug。最后把小bug完善修復一下給客戶正式版1.0讓客戶驗收。至于二期項目以后再說,先把一期項目的余款結了再說,對吧。
4.制訂開發規范
開發規范訂的太死會限制程序員,每個開發人員都會有一些習慣,但是為了協作,制訂一個相對通用的規范是有必要的。包括文檔的規范,數據庫設計規范,編碼規范以及各種命名規則。盡量用一些業界通用的規范,網上都有,我csdn的博客上也整理了一些,msdn的類庫開發人員指南里面也有一些。盡管某些規范很有爭議,我感覺你也得選擇其中一種來做為你的項目開發規范。
5.建立開發基礎
保證機器和軟件的可用,盡量大的內存,盡量快的處理器,操作系統,開發工具都要到位,該想到的就得想到,還要給開發人員一個相對安靜舒適的環境,最好能很方便的喝到冰箱里的可樂,而且能在累的時候有綠色的植物看。再一個就是建立一個開發基礎結構,這個也頗有爭議,幾乎每個公司都有自己的系統類庫,開發框架以及配套的代碼生成工具,這都很好,在開始可以對員工做適當的培訓,讓他們都能體驗自底向上設計的好處,都能用的上這個架構,你可以在架構中要求開發人員以指定的方式實現某些通用的任務,比如說日志記錄和錯誤處理等,而不是讓他們使用自己習慣的方式去處理問題,因為.net的靈活性讓實現一個任務有很多中方案和手段。
小節:雖然這個帖子沒有討論具體技術,而且都是一些空話套話,并且這些空話套話可能別人也都說的不帶說了,但我感覺還是有必要自己總結一下的。
軟件項目工作經驗總結 7
時光荏苒,20xx年已經接近尾聲,回首過去的xx年,內心不禁感慨萬千,雖沒有轟轟烈烈的戰果,但也算經歷了一段不平凡的考驗和磨礪
一、20xx年的主要工作情況
在這xx年,我們項目部在上級部門的指導下,圍繞公司的年度目標,認真完成項目的整體部署和工作計劃,以公司的發展戰略為指導,加強項目管理,提升工程質量和施工管理水平。
在施工管理過程中,嚴格按照各項工作標準,嚴格執行各種規章制度,在管理中認真貫徹“安全第一,預防為主”的方針,確保項目部施工人員的生命和財產安全。
1、認真執行各項制度。嚴格執行規范要求,做好工作。加強對工序質量的檢查和監督,保證質量。
2、認真完成各項工作計劃,提供管理信息。
3、認真做好各項工作記錄。
4、做好各項工作總結。
二、工作思路的回顧與總結
5、認真執行上級領導的'有關文件,及時完成領導交待的各項工作任務和臨時指令,確保項目工作有序進行。
6、認真完成工程施工組織設計中的各項工作。
7、認真執行上級部門下達的各項工作任務,保證項目各項工作有條不紊地開展并有效地實施。
8、積極配合項目經理做好工程的各項管理工作,確保工程項目順利完成。
三、存在的問題及改進措施
9、工作中還是欠缺技能,對現場的技術管理知識了解得很淺。
10、工作中的細心性和責任心還有待加強。
針對以上問題,以后我會認真吸取經驗,努力學習和提高,加強自己的技術水平和管理能力,提高工作效率,做到事前準備、事中檢查、事后總結,積極主動地解決問題。在今后的工作中,我要努力做到:
11、加強學習,拓寬知識面。努力學習專業知識和相關法律常識。加強對工程的理解,提高自己的業務水平。
12、本著實事求是的原則,做到上情下達、下情上報,真正做好領導的助手。
13、加強與同事之間的協調,積極工作,發揚團隊精神,加強各成員的交流,努力打造一個高效率的工作團隊。
14、進一步發揮工程技術管理的作用。
回顧了20xx年,工程項目部全體員工在項目管理過程中付出了辛勤的汗水,取得了優異的成績,這是我們項目部全體員工的共同努力所取得的,但是也存在很多的不足。在此,我要感謝領導們對我們項目部的信任和培養,感謝各部門對我們項目部工作的理解指導,感謝全體員工不辭勞苦,無怨無悔的付出。
最后祝大家在新的xx年里,身體健康,工作順利;祝愿我們公司的明天更加輝煌燦爛、更加美好,更加輝煌!
軟件項目工作經驗總結 8
一、個人工作詳細說明
本次軟件項目設計的題目是場地預約系統,它是基于B/S模式實現的用于體育城場地管理預約的Web應用軟件。為用戶提供并接受用戶提出的需求信息,同時通過數據庫管理系統存儲數據,給場地的管理帶來很大的方便。本項目的實現分為前臺與后臺。其中前臺,用戶可以瀏覽場地所提供的可預訂場地的信息,同時可以對需要的場地進行預訂;后臺主要是針對管理員,管理員可以通過后臺對場地的相應信息進行增添修改等操作。
我基本參與了本項目的全部實現過程,涉及項目的需求分析,概要設計,詳細設計,代碼編寫,調試與運行。在需求分析階段和小組其他成員認真分析討論了本項目各方面的需求,主要是功能方面的需求,基本確定了本場地預約系統應該具有的基本功能。概要設計階段通過討論分析確定了所需表結構。詳細設計階段參與部分代碼的編寫,其中包括頁面與數據庫交互的實現,還有相應jsp頁面代碼的實現幾布局的調整,修改。
在數據庫設計實現階段,通過和我們組其他成員的共同討論,確定了場地信息、用戶信息等表結構的詳細信息,并實現了其數據庫的建立和相應表的具體信息的設計實現。同時針對個別表結構完成了相應代碼的編寫與實現。
在后臺,實現了用戶的信息的瀏覽查看,修改及刪除等功能,同時完成了足球場等場地信息的瀏覽、增添、修改、刪除等功能。
前臺參與了主界面的設計與實現,通過查詢數據庫得到主界面顯示所需場地的相關信息,通過這樣,用戶可以很清楚的獲知所有可預訂場地的信息,其主界面上的所有關于場地的數據都是動態從數據庫獲取的,這樣當場地增添或刪除時通過修改數據庫可以很方便的實現界面呈現給用戶的場地信息,能夠很好的使實際情況跟提供給用戶的信息保持同布,非常利于場地信息的管理和發布。
二、個人工作體會西安石油大學
時間過得真快,不知不覺中近一個月的`課程設計就要結束了。本次課程設計我們組做的題目是場地預約系統,先前選題的時候以為它實現起來應該比較簡單,在通過后邊的具體分析之后才發現它并不是我所想象的那樣簡單,其中涉及許多問題我當時并沒有想清楚。
經過我們小組的共同努力,最終基本上完成了場地預約系統的實現。雖然做的不是很完美,不是特別有創意,但這是我們共同努力的結果,當我們看著自己親自完成的項目覺得很欣慰。
通過這次課程我對前邊多學的知識有了進一步的認識與掌握,使我進一步認識到課本所學知識與實際應用是不一樣的,在實際應用中需要你去針對具體的問題去靈活的變通處理,而并不總是和課本上的知識一樣。同時,我深感只有通過具體項目的實踐,才能更好的掌握所學知識,并進一步的融會貫通。
這次課程設計使我深刻認識到了一個項目的實現最重要的還是需求分析而不是代碼的實現。在此次場地預約管理系統的實現過程中,我們就是因為期初對本系統的需求分析工作沒有做到位致使表結構的建立存在不少問題,進而導致后邊在代碼的實現過程中又重新回來修改數據庫的表結構。這樣就不得不對已經實現的代碼進行修改,這個過程將會是一個相當讓人頭疼的過程。一個系統的實現關鍵的不是代碼的編寫,而是設計,只有設計合理了,在后邊代碼實現的過程中才不會遇到問題,才不會像我們這次那樣需要反復的修改。
本次課程設計使我再次認識到了團隊協作的重要性,一個人的能力畢竟是有限的,而大家的力量無窮的,有時候一個很小的問題,自己怎么也看不出來,叫別人來幫著看一下可能馬上就能得到解決。團隊成員之間的互相合作可以使問題得到更好的解決,并且在其過程中能夠進一步的相互學習到更多的知識。當然,通過本次我也深知道自己相關專業知識掌握的還很不夠,在代碼的實現過程也存在諸多問題,對很多的語句語法了解不是很到位,不能很好地運用,需要進一步的學習與掌握。
總的來說,本次課程設計使我對軟件開發有了進一步的認識,學到了很多知識。這將對我以后的工作學習產生重要的意義!
軟件項目工作經驗總結 9
20xx年10月份
1、公司產品的進一步熟悉:
城管機器人:特點、功能
數字城管:9+X系統的具體內容
綜合執法:能給客戶帶來的效益
城管大腦:主要賣點
2、項目流程各個環節的熟悉:側重于軟件項目的.整個流程。
3、具體項目的深度參與:從前期的需求調研到招投標,項目中標后的移交工作,整個環節的參與。
4、政府軟件項目的設計方案、招標文件、投標文件、方案宣講等文件的重要知識點的學習了解。
5、對樓宇弱電這個行業有了更深刻的認識,對弱電這個圈子有了更深的了解。
6、工作期間積極參加的各種會展活動和會議,我對行業前沿技術和發展方向有了更深的了解,同時了解到其他公司的一些優秀產品設計,提交的一些觀點和意見已在公司新發布產品中體現。
7、作為技術負責人,成功促成了公司與融創、復地、龍湖、恒大等公司的戰略合作。
8、自我評價與未來期望
9、自認為我是一個執行力和學習能力都很強的人,善于解決工作中遇到的實際問題,在工作中學習,舉一反三。注重最終結果,但也不會忽略過程。
10、中國的未來充滿機遇,特別是AI、智能、自動駕駛、物聯網和信息安防產業,它們各有不同但又彼此緊密聯系。我很愿意在行業中繼續成長和發展,腳踏實地,挑戰自我,在實現公司價值的同時實現自我價值的提升。
軟件項目工作經驗總結 10
一個企業的管理,大公司有大公司的方式,小公司也有小公司的方式,如果把別人的經驗生搬硬套到自己身上,可能會適得其反。同樣,管理一個軟件項目也一樣,大項目和小項目的方式不完全一樣。但從另一個角度來看,項目的大與小并沒有本質的區別,很多方法是共通的。本文的目的是從作者的經驗來談談小項目開發的管理。
一、小項目的特點
大家知道,“軟件危機”的出現起源于一些大型項目的不斷延遲甚至失敗。小項目相比之下,具有以下特點:
1、項目功能相對較少
2、開發人員較少
3、開發周期較短
另外,在現實中,有很多小項目是由一些中小公司進行開發的,這些公司往往人員流動性較大,這也是不容忽視的一個現實.
二、小項目開發中常犯的錯誤
小項目看起來比較簡單,比較容易成功,因而人們往往忽視了小項目的管理,其實這是一種誤解,從本人的經驗看來,小項目開發中容易犯以下的一些錯誤:
1、開發之前沒有認真地進行項目可行性和工作量的估計。 往往由于項目較小,便很草率地制定一個開發日程表,沒有認真地估計項目難度,結果實際完成時間與估計完成時間往往有較大差別。
2、沒有真正的設計過程
開發人員少,意味著不同人員的程序之間交互、接口相對少一些。開發周期短意味著往往是同樣的幾個人從頭到尾負責一個項目。這兩者都讓人容易犯些錯誤。往往是幾個人碰一下頭,討論一下最基本的數據結構、函數接口便分頭去做自己的工作了,沒有一份較正式的文檔。
這種做法潛在的危險之一是有的人可能會對討論出的'接口、結構理解有偏差(應該承認人是會犯錯誤的)。一個誤解可能造成以后的返工。 另一個潛在的危險是由于討論時忽略了某些情況,等大家都按當時的分工完成屬于自己的工作后,才發現各個模塊組合起來卻形不成一個完整的系統。其根源在于沒有一個負責協調的人員不斷監控整個開發過程。
第三個潛在的危險是一旦有人中途退出開發隊伍,其他人加入時,新來的人難以理解以前別人做好的代碼,索性自己從頭來。另外,沒有文檔的程序,日后維護和版本升級都比較困難。
3、不經過單元測試而直接進入系統測試
造成這一現象的原因是每個模塊相對比較簡單,但是為了測試一個模塊需要建立一些測試環境。例如,為了測試一個函數是否正確,應該用一些測試數據去調用該函數,需要編寫一些測試數據。但很多開發人員嫌麻煩,覺得反正其他模塊也很快出來了,直接用真正的數據來運行幾次就行了。
殊不知,一旦直接進入系統測試,發現運行結果不正確后需要一步步查找。由于模塊間的調用關系,可能查了很久才發現是某個模塊的問題。這種方法一來效率比較低,大量的時間用在了將一個錯誤定位在模塊上了。另外由于這種測試不完全,真正運行系統,當調用某模塊時,可能大部分時候都是正常數據,極少出現邊界情況,可能某些邊界情況容易被忽視,很久之后才被發現。但是如果對每個模塊進行單元測試時都進行一下邊界測試,就會很容易消除一些隱患。真可謂欲速則不達也。
軟件項目工作經驗總結 11
合理的開發模式,一句話形容就是“麻雀雖小,五臟俱全”,即使是小型項目的開發,仍然應該遵循軟件開發的一般規律,必須的步驟不能省略。但是小項目有它自身的一些特點,實行起來可以相對靈活些。
以下我從幾個方面描述一下我認為比較合理的模式.
1.需求獲取
在進入正式開發之前,必須先從用戶處獲取準確的需求。在這上面花費相當時間是很必要的。
軟件項目可以大致分為專用軟件和通用軟件兩大類。
對于專用軟件,例如給某單位開發一套該單位專用的系統,一般用戶對于軟件要完成哪些功能已經有了一個比較清楚的輪廓,而且往往在開發合同中已經大致地規定了。
但是,開發合同上規定的只是一個大概的框架,在進入開發之前必須與用戶進行比較具體的交流和討論,了解清楚用戶心目中的產品究竟是什么樣子。這個步驟如果沒有好好做,往往到了開發工作的后期才發現開發人員的理解和用戶的要求有一些誤解,那么必然造成時間上的浪費。
對于通用軟件,在開發之前應該做一定的市場調查工作,一方面是從經濟效益考慮,調查產品的潛在市場有多大,另一方面是從技術的角度,必須了解清楚潛在用戶對軟件的各種技術上的要求,例如,用戶現有硬件配置如何,軟件配置如何,使用什么網絡,使用什么數據庫等等,根據調查的'統計結果決定即將開發的軟件的一些技術指標。
為了比較好地與用戶進行交流,使用一些工具是很有好處的。 為了討論用戶界面,可以用VB,delphi等做一個原型,根據原型有針對性地與用戶討論需求。(原型開發不僅僅可以用于準確獲取用戶的需求,開發出來的原型本身可以作為下一步開發的基礎,增量式地完成開發)
為了討論軟件運行的流程,可以采用UML的UseCase圖。
2.需求分析
在了解用戶的需求之后,將需求用一種模型來表示,就是需求分析,目前比較流行的分析方法是面向對象的方法,通過分析用戶需求,用類、類之間的各種關系來表示整個系統。
這部分涉及到具體的方法,在此不詳細討論,但是原則上是提取類->類之間關系,可能需要不斷修改而形成一份分析文檔。
我想強調幾個問題。
一是要分清問題域與系統責任。系統責任是指所要開發的軟件應該完成的功能,而問題域是包含所有相關的部分。例如你要開發一個程控機計費程序,程控機已經是現成,輸出的數據格式也已經是固定的,你的程序僅僅需要從程控機中讀取相應的信息,那么,程控機在你的系統里只是一個外部的東西,把它作為一個類也許就是不必要的,僅僅需要一個類來完成讀數據的操作。又如,你需要在一個已經存在的數據庫上開發一些應用,數據庫的格式已經固定,并且已經有一個后臺程序在運行,你需要開發一個新的前臺程序,這時,服務器程序對你來說就是一個外部的東西。但是,象這種外部的內容必須在分析文檔中有一些說明,作為系統的外在約束。
二是需求獲取與需求分析的關系。
用什么方法來完成需求的獲取,在很大程度上影響了需求分析的做法。
例如當初采用UseCase來表示用戶需求,那么從各種序列圖中選出相互交互的各個實體,就是一個個類。
三是分析與設計過程的銜接。
分析過程的內容是用類的結構來表示目標系統,并不設計具體實現,如采用什么編程語言,在什么操作系統平臺上運行等等。這些具體實現是在設計階段來完成的。面向對象方法的優點是分析、設計、編碼過程表示法統一,能比較好的銜接。但是,是把分析和設計階段分開,采用瀑布式開發,還是采用其他方式,要看具體的情況。
對于需求潛在變化不大的項目,可以采用瀑布模型,有一個很明顯的設計階段,這樣做的好處是有一份比較完整的分析文檔,這樣以后如果需要采用不同的編程語言、或者采用其他的平臺時,便可以以這份分析文檔作為開發的基礎。
對于需求變化頻繁的項目,可能采用少量分析;少量設計少量編碼測試的方式更合適,而且隨時可能要返回到前面某個一階段去進行修改。但是這意味著可能沒有一份完整的分析文檔。
現在很多CASE工具并不區分分析和設計的階段。但是,這并不意味著開發就可以對分析和設計不加區分,CASE工具如同一支筆,如何用好還得還人。
3.設計過程
設計階段的工作包括:
對分析模型必要的修改。可能需要對某些類結構進行一些修改,這些修改的原因可能是編程環境的要求,或者為了重用以前的某些工作。
定義界面部分、數據訪問(數據庫)部分。
由于目前很多編程語言都可以可視化地設計界面,所以界面部分工作往往留到了編碼階段來完成。于是設計階段的工作量并不大。
4.編碼
進入編碼工作之后,可能會發現前面分析或設計階段的某些錯誤,這時應返回到前面的階段進行必要的修改。
5.測試
如前所述,即使是小項目,也應該嚴格地進行測試。
軟件項目工作經驗總結 12
自2月份開始,我一直在跟進xx銀行w-xxnd1s2.0項目的測試工作,至此為止已近6個月時間,從公司內部系統測試、驗收測試,再到uat測試,以及投產前的系統壓力測試等等。從開始到項目即將結束,一步步走過來。本次項目中,我作為測試環節的主力人員之一,僅對此項目中測試工作進行總結。
一、項目測試進度控制。
項目的測試進度主要是按照項目計劃進行的,完全按照項目組計劃要求完成測試任務、提交測試類相關文檔,包括測試案例的.完善、制定測試計劃、執行測試、缺陷跟蹤以及bug回歸測試等。協調項目的內部測試工作,本此項目中測試小組一共組織了四輪次系統全面測試工作,認真配合項目工作,共同保證項目質量。項目測試的問題跟蹤及處理采用每日進行修改問題回歸測試工作,每日同步更新問題跟蹤單的模式,按照規劃時間完成系統更新測試。
二、項目組內部成員關系處理。
在項目工作的這幾個月里大家相處融洽,項目組內部共同探討解決問題的方法,向各模塊負責人學習模塊功能處理方式,向業務人員了解系統中涉及的業務知識點,兩者結合起來進行模塊功能測試。鑒于之前轄內對公交易系統和中行對公項目的經驗,也向項目組提出了一些完善性意見。
三、協調用戶測試方面。
用戶驗收測試是項目測試工作的重要組成部分之一,是項目驗收階段的最終把關階段,業務人員結合日常業務處理情況對系統進行的嘗試性使用過程。本次項目客戶測試方面也是我個人覺得不夠安全感一個主要方面,客戶測試介入力度太小,盡管我們已經很多次電話催促業務人員測試,每次聯系相關業務人員進行測試,他們來到項目組開發現場測試,也僅僅一兩個小時時間,簡單的進行驗證操作即可。xx銀行利用兩批系統培訓的時間安排了兩次分行集中測試,也算給項目進行了一次全面的測試,從中也暴露出不少系統存在的問題,目前項目組均已解決。
四、測試成效方面。
中信x-funds2.0系統測試中,共記錄問題及客戶新增需求825個,其中bug數量512個、系統完善類問題225個,新增需求類問題88個。組織了四輪次內部系統全面測試工作,兼顧日常系統更新測試工作,最大限度的進行了內部質量把關。配合外包公司一同進行系統壓力測試及穩定性測試,測試結果符合客戶要求。現中信x-funds2.0系統臨近投產實施工作,測試組還將繼續配合配合項目投產工作及投產后的補丁更新測試工作。
【軟件項目工作經驗總結】相關文章:
軟件項目失敗經驗總結06-07
軟件銷售經驗總結11-29
軟件銷售經驗總結03-09
軟件項目工作總結06-11
軟件項目工作總結07-02
軟件項目工作總結05-26
監理項目經驗總結04-26
軟件老手帶新人經驗總結08-05
軟件老手帶新人的經驗總結08-05