發表文章

CMMI-DEV簡介

圖片
CMMI-DEV是基於CMMI發展出來的開發專用規範指引,以下將分別介紹何謂CMMI、CMMI的目的,一直談到CMMI-DEV有哪些成熟度等級等等。 CMMI 指的是能力成熟度整合模式(Capability Maturity Model Integration : CMMI),是美國國防部委託卡內基美隆大學軟體工程學院 (Software Engineer Institute : SEI)所發展的,目前有以下版本問市 v1.1: 2002年問世,為CMMI的第一個版本 v1.2: 2006年問世 v1.3: 2010年問世,為最後一版免費版本,並包含DEV/SVC/ACQ等三個版本 v2.0: 2018年問世,但開始要收費了,所以我也拿不到相關細節,也因此大家大都還是以v1.3為主要參考內容 CMMI分為三個分部 CMMI-DEV: 軟體開發指引 CMMI-SVC: 服務提供引 CMMI-ACQ: 採購指引 大家主要說的CMMI還是以CMMI-DEV為主,以下也以CMMI-DEV v1.3為主要介紹內容,參考文件則為資策會翻譯的CMMI-DEV v1.3中文版,英文版的CMMI-DEV v1.3下載網頁在  https://resources.sei.cmu.edu/library/asset-view.cfm?assetID=9661  ,中文版則可以由  http://www.tisa.org.tw/uploads/file/CMMI-DEV_1-3_-Chinese-v7.pdf  直接下載。 CMMI-DEV分為五個成熟等級(ML:Maturity Level),其實還有一個能力等級(Capability Level),但一般還是以ML為主,因為CL只定義0-3,並未完全涵蓋所有等級,不過在PA定義中又與CL相關,不過這邊先介紹ML ML1 Initial 初始級:只要你有寫程式就是ML1,他代表你開發軟體,但完全放棄流程 ML2 Managed 管理級:開發有依照流程進行,會進行監督與管控 ML3 Defined 調適級:在ML2基礎上,進一步建立與改善組織標準流程,ML3簡單來說就是ML2更嚴謹的定義 ML4 Quantitatively Managed 量化管理級:將管理量化讓績效可以持續改進 ML5

軟體開發評估流程簡介

圖片
首先,軟體開發有兩種,一種是產品,一種是客製化。 產品是比較容易預估人力的,而且都是天價人天,但這邊說的容易只是一個比較值,還是有難度的,但變數跟客製化比起來會少上許多,主要的評估流程如下 可能有人會有不同想法,但應該不會有太大的差異才對,這裡面的重點包括 產品定義的確認 團隊的確認,包括開發與測試 時程的確認 行銷的確認 這裡面最重要的有人可能認為是開發團隊的成本評估,但這裡面要強調開發、測試與行銷的平衡,不應該只注重在開發的成本評估,畢竟這是個產品,所有人都會期待他不需要客製化就可以快速上線,而且品質穩定。 接下來是本文的重點─客製化成本,客製化成本評估流程可以參考下圖 這裡面有個重點是需求到底是甚麼,這個問題是很難有好的方案的,因為客戶永遠都會覺得你做的不是我要的,但客戶也說不出,這時候就需要進行需求發展,需求發展的過程會遇到很多溝通問題,絕大多數的心力會花在說服客戶你的方案才是他真正要的,或者說服客戶他要的東西是不可能做出來的,這是整個軟體開發評估最重要的流程,足以影響開發成敗,也可以預防客戶事後大幅修改系統範疇,因為客製化軟體是根據客戶量身訂製的,所以除非你很了解客戶真正要的,不然很難符合客戶的需求,當然,你也可以透過說服客戶使用產品來符合客戶的需求,但這一般是在客戶有預算問題的時候才會這樣處理。 以上簡單介紹軟體開發評估流程,請大家參考。 ※ 如果您想得到更多相關資訊,歡迎訂閱我的Udemy新課程”軟體工程兩三事”,Udemy隨時都有優惠,價格很便宜,如果暫時調回原價,可以用以下連結取得超優惠價格,但一般來說網站上的價格應該都會比這個低 https://www.udemy.com/softengine/?couponCode=SEBILL2019500 原文出處:  軟體開發評估流程簡介

[課程] 軟體工程兩三事

圖片
這是我最新的Udemy課程,會針對軟體工程的概念做個基本的介紹,並將一些實務上會碰到的問題一一說明,點選下圖可以前往課程首頁 目前共有七個章節,未來會再視狀況增加章節,目前七個章節分別描述 軟體開發會遇到的問題 需求分析與發展 系統分析與設計 專案管理 專案驗收 專案管理基礎 CMMI-DEV 對於這些領域的基本概念有興趣的朋友可以前往訂閱。 Udemy大都有一些很便宜的優惠價格,但初期可以用以下連結來訂閱,價格會便宜一些 https://www.udemy.com/softengine/?couponCode=SEBILL2019500 當然,如果有看到更好的價格就可以用更低的價格購買了。 相關資訊也可以參考本站文章: CMMI-DEV簡介 、 軟體開發評估流程簡介 與 軟體開發人天成本的計算方法 等。 文章出處: 軟體工程兩三事

[課程] Linux概論─以CentOS 7為例

圖片
這是我在網路上的第一個課程,算是Linux入門課程,主要是很快說明一下Linux CentOS的基本概念 網址在  https://www.udemy.com/linuxcentos-7/ 目前學生大約70名,因為Udemy的促銷價格並不貴,所以大家有興趣可以聽聽看,如果暫時沒有優惠價格,可以輸入優惠碼BILLCENTOS或者透過以下網址前往訂閱 https://www.udemy.com/linuxcentos-7/?couponCode=CENTOS7BILL 目前正在準備下一個課程,主要是講一些軟體功能的概念,從需求分析講到系統分析設計,然後繼續講到專案管理與驗收議題,敬請期待。 同時也歡迎參觀本站與 Linux 相關的文章。 文章出處: Linux入門

甚麼是RWD

圖片
RWD是指Responsive Web Design,翻譯成響應式網頁設計,他的意思就是會根據畫面的條件呈現不同結果,例如在電腦上是一個樣子,在手機上是一個樣子,在平版上又是一個樣子,那該怎麼做這樣的設計,目前主要都是透過CSS技術來達成,在CSS語法中指定螢幕寬度來決定要用甚麼方式呈現,一般大都會分為 PC:寬度在768px以上一般都會被當成PC 平板:一般是指寬度在768px以內的螢幕 手機:一般是指寬度在360px以內的狀況,不過大都會讓手機和平板設計一樣,所以分介一般式在768px 所以我們會在CSS中針對寬度作設定,下面是個範例 @media only screen and (max-width: 768px) { display: block; } @media only screen and (max-width: 480px) { display: flex; } @media only screen and (max-width: 320px) { display: inline-flex; } 上面這一段就是分別對不同的寬度作不同的dispay風格作設定,不過這只是個小範例,如果你沒用過CSS,看不懂是正常的,只是讓你知道程式設計師平常條畫面時大概是在幹嘛,而且真正的CSS調整不會是單純這樣的格式,比較可能像下面這個樣子,他的目的是把一張底圖放進某個區塊 @media screen and (max-width: 768px) #banner_toolbar .logo { height: 0; width: 0vw; background: url(/logo-phone.svg); background-repeat: no-repeat; background-position: center; background-size: 100%; object-fit: contain; } 我要在那邊一個一個解析度設定真的很麻煩,那有簡單一點的方法嗎?當然有,大家比較常用的是Twitter Bootstrap,他提供一個網格系統,他把電腦平板和手機都分成12格,這樣我可以自己決定這邊要幾格那邊要幾個,不用自己去記憶那些解析度,他將畫面分成四種 xs: <768px sm: >=768px md

ISO 9001:2015

圖片
我們常常在說ISO,但你真的知道ISO是指甚麼嗎?其實ISO是一個組織名稱,他代表  International Organization for Standardization,主要是用來做一些國際標準的定義,那我們常常在說你的公司有沒有做ISO,指的又是甚麼,其實這邊指的是ISO 9000這一組標準,其中包括 ISO 9000:ISO 9000的主要詞彙與定義指引 ISO 9001:ISO 9000的主要要求 ISO 9004:ISO 9000績效改善指引 ISO 19001:ISO 9000環境審核指南 因此我們在說的ISO應該是指ISO 9001,尤其公司有研發性質的就會以ISO 9001為主要要求規範,ISO 9000有幾個版本,第一個版本為1987版,接下來為1994→2000 →2008,最新版本為2015,以下大致介紹ISO 9001:2015的精隨。 下圖是ISO很重要的一個概念,所有ISO的的流程都叫做Process,他的重點是要讓某些輸入資訊轉化(transform)為有用的資訊,而不是GIGO(Garbage In Garbage Out),也就是說進入時是垃圾沒關係,但出來之後要變成有用的資訊,如果輸出的資訊是沒用的,那這個Process就是個失敗的流程。 那公司有那些資訊是需要做轉化的呢?每個公司因為性質不同而有不同的結果,例如研發團隊的客行性評估就是一個Process,在這樣的過程中,我們會收集相關的輸入資訊,包括各單位意見、市場分析等等資訊,經過可行性評估的過程,可能包括評估報告的撰寫、開會與會簽等等,最後輸出成可行性評估報告,便可以用來決定是否進行這個專案計畫,這就是ISO文件要定義的資訊,這並不代表ISO要寫一大堆報告,他只是要各個公司是著找出對自己最有用的流程,有些傳產公司的ISO也許只有一張A4文件就夠了,但研發團隊的文件可能就會很多,因為他有很多研發要遵守的流程。 ISO有幾個很重要的工作要做,包括 找出公司的核心價值並且獲得領導者的認可 找出要進行ISO的範圍,也許不是整個公司都做ISO,但建議ISO還是以全公司配合為佳 成立ISO委員會開始相關規畫工作 找出公司的必要流程並撰寫成ISO工作指導書 進行教育訓練,讓所有參與ISO的人了解相關流程 執行並不

軟體開發人天成本的計算方法

圖片
之前有幫人規畫過形象網站,他們的目的是要有一個屬於自己的網站來做產品行銷,因為官網代表著公司的形象,也是進行網路行銷的入門磚,但是當我告訴他一個有些許客製化的形象網站可能會落在三到五萬,對方的反應是,怎麼這麼高,我問他的預算在哪,他也講不出來,我猜他可能覺得一個網站大概只要三到五千吧,這篇文章主要是想讓大家知道軟體開發的人力成本是如何計算的,但這並不是唯一個算法,只是一種大家比較常用來計算的方法。 人天評估的問題另有專文說明,這邊想要解釋的是為什麼一個人天經常會被估成8,000台幣,這有兩個參考理論,第一個是以月薪為假設,我們假設一個還不錯的開發工程師一個月月薪是45,000,那一個月上班22天,他每一天的成本大約會是2,000,如果把公司的開銷都放進去的話,經常會乘以2,也就是4,000元的成本,假設公司獲利20%,大概就是5,000元左右,那3,000的差距為何會存在,因為他是用來配合幾個可能成本 被殺價 需求被一改再改 客戶不配合驗收 因此8,000是一個比較好的起點,但有很多地方已經把價格殺到5,000-6,000,其實根本沒空間了。 另外一個參考資料是採用比較有公信力的一些建立,尤其是資策會公布的『資訊委外服務人員計價參考要點』,可以到以下連結下載 http://admin.must.edu.tw/upfiles/ADUpload/c23_downmul1330722846.pdf 或者政府提供的『資訊服務委外經費估算原則』,連結如下 https://www.dgbas.gov.tw/public/Data/88712263090V1BWDI.pdf 這兩個規範都是將軟體系統分成第一類、第二類與第三類,他的區分主要是系統的規模以及需要的人月,而一般的系統會是第一類和第二類為主,所以他的建議是一個開發工程師的月成本大約是15萬台幣,除以22天,大約是7,000元,基於上面說到的殺價需求,一般大概也會加到8,000元整,因此,這是一個比較有理論基礎的算法。 如果你發現有人跟你說,我一天只要2,000,這時候你就要考慮一下是否要採用這個廠商,因為根據上面的算法,一個月薪45,000的工程師,一天的成本大概就要4,000,而且公司完全不賺錢,假設今天公司用22,000找了一個工程師來寫程式,公司都不賺錢也要2,00