節(jié)選自《DevOps Handbook》11章 Enable and Practice Continuous Integration。有趣的統(tǒng)計數(shù)字衬廷,正如精益管理對制造業(yè)的判斷一樣摇予,軟件開發(fā)中也存在著巨大的浪費。雖然這個案例還牽扯到硬件測試吗跋,但復(fù)雜的純軟件系統(tǒng)恐怕也好不到哪里去侧戴。
補記:后來看《精益企業(yè)》宁昭,發(fā)現(xiàn)也講了這個例子,并且講得更加仔細酗宋。
公司:HP's LaserJet Firmware division, which builds the firmware that runs all their scanners, printers, and multifunction devices.
They were only completing two firmware releases per year, with the majority of their time spent porting code to support new products.
Gruver estimated that only 5% of their time was spent creating new features - the rest of the time was spent on nonproductive work associated with their technical debt, such as managing multiple code branches and manual testing, as shown below:
- 20% on detailed planning (Their poor throughput and high lead times were misattributed to faulty estimation, and so, hoping to get a better answer, they were asked to estimate the work in greater detail.)
- 25% spent porting code, all maintained on separate code branches
- 10% spent integrating their code between developer branches
- 15% spent completing manual testing
Gruver的解決方案:
- Continuous integration and trunk-based development
- Significant investment in test automation
- Creation of a hardware simulator so tests could be run on a virtual platform
- The reproduction of test failures on developer workstations
- A new architecture to support running all printers off a common build and release