3. Process
Learning Goals
- Process(ํ๋ก์ธ์ค)์ ์ค์์ฑ ์ธ์
- Progress(์งํ ์ํฉ) ์ธก์ ์ ์ด๋ ค์ ์ดํด
- Risks(์ํ) ์๋ณ ๋ฐ ๊ด๋ฆฌ
- Planning(๊ณํ) ๋ฐ progress(์งํ ์ํฉ) ์ธก์ ์ ์ํ milestones(๋ง์ผ์คํค) ์ฌ์ฉ
- Backlogs(๋ฐฑ๋ก๊ทธ) ๋ฐ user stories(์ฌ์ฉ์ ์คํ ๋ฆฌ) ์ดํด
Software Process
"์ํํธ์จ์ด ์์คํ ์ production(์์ฐ)์ผ๋ก ์ด์ด์ง๋ ์ผ๋ จ์ ๊ด๋ จ๋ activities(ํ๋)"
Ian Sommerville, Software Engineering 10th edition, Pearson, 2016
How to Develop Software?
- ์์ฑํด์ผ ํ ์ํํธ์จ์ด ๋ ผ์
- ์ฝ๋ ์์ฑ
- bugs(๋ฒ๊ทธ) ์๋ณ์ ์ํ ์ฝ๋ test(ํ ์คํธ)
- ๋ฒ๊ทธ ์์ธ ํ์ ์ ์ํ Debug(๋๋ฒ๊ทธ)
- ๋ฒ๊ทธ ์์
- ์๋ฃ๋์ง ์์ผ๋ฉด 1๋จ๊ณ๋ก ๋ณต๊ท
Example of Process Decisions
- ๋ชจ๋ requirements(์๊ตฌ์ฌํญ) ์์ฑ
- ๋ชจ๋ ์๊ตฌ์ฌํญ ๋ณ๊ฒฝ์ ๋ํ approval(์น์ธ) ์๊ตฌ
- ๋ชจ๋ ๋ณ๊ฒฝ ์ฌํญ์ version control(๋ฒ์ ๊ด๋ฆฌ) ์ฌ์ฉ
- ๋ณด๊ณ ๋ ๋ชจ๋ bugs(๋ฒ๊ทธ) ์ถ์
- ์๊ตฌ์ฌํญ ๋ฐ ์ฝ๋ review(๊ฒํ )
- ๊ฐ๋ฐ์ ๋ ์์ tasks(์์ )๋ก ๋ถํ ํ๊ณ schedule(์ผ์ )์ ์ก๊ณ monitor(๋ชจ๋ํฐ๋ง)ํจ
- Quality assurance(ํ์ง ๋ณด์ฆ) ๊ณํ ๋ฐ ์ํ
- ์ผ์ผ status(์ํ) ํ์ ์งํ
- ๊ฐ๋ฐ์์ operation(์ด์) ๊ฐ ์ฝ๋ ํธ์๋ฅผ ์ํด Docker containers(์ปจํ ์ด๋) ์ฌ์ฉ
Example of Process Issues
- Change Control(๋ณ๊ฒฝ ์ ์ด):
- ๊ณ ๊ฐ ๋๋ ๊ด๋ฆฌ์๊ฐ ์ ์ํ ๋ณ๊ฒฝ ์ฌํญ์ ๋ํ ํ๋ก์ ํธ ์ค๋ฐ์ informal(๋น๊ณต์์ ) ํฉ์
- Project scope(ํ๋ก์ ํธ ๋ฒ์) 25-50% ํ์ฅ
- Quality Assurance(ํ์ง ๋ณด์ฆ):
- ์๊ตฌ์ฌํญ ๋ฐ design(์ค๊ณ) ๋ฌธ์ ์ ๋ฆ์ ํ์ง
- Test-debug-reimplement(ํ ์คํธ-๋๋ฒ๊ทธ-์ฌ๊ตฌํ) cycle(์ฃผ๊ธฐ)์ด ์๋ก์ด features(๊ธฐ๋ฅ) ๊ฐ๋ฐ์ ์ ํํจ
- ์๋ ค์ง defects(๊ฒฐํจ)์ด ์๋ ์ํ๋ก Release(๋ฐฐํฌ)
- Defect Tracking(๊ฒฐํจ ์ถ์ ): Bug reports(๋ฒ๊ทธ ๋ณด๊ณ ์)๊ฐ ๋น๊ณต์์ ์ผ๋ก ์์ง๋๊ณ ์ํ
- System Integration(์์คํ
ํตํฉ):
- ํ๋ก์ ํธ ๋งจ ๋ง์ง๋ง์ ๋ ๋ฆฝ์ ์ผ๋ก ๊ฐ๋ฐ๋ components(๊ตฌ์ฑ ์์)์ Integration(ํตํฉ)
- Interfaces(์ธํฐํ์ด์ค) ๋ถ์ผ์น
- Source Code Control(์์ค ์ฝ๋ ์ ์ด): ์ค์๋ก ๋ฎ์ด์ด ๋ณ๊ฒฝ ์ฌํญ, ์์ ์์ค
- Scheduling(์ค์ผ์ค๋ง): ํ๋ก์ ํธ๊ฐ ์ง์ฐ๋ ๋, ๊ฐ๋ฐ์๋ค์ ๋งค์ฃผ ์๋ก์ด estimates(์ถ์ ์น)๋ฅผ ์์ฒญ๋ฐ์
Hypothesis(๊ฐ์ค)
- Process(ํ๋ก์ธ์ค)๋ flexibility(์ ์ฐ์ฑ)์ efficiency(ํจ์จ์ฑ)๋ฅผ ์ฆ๊ฐ์ํด
- ๋์ค์ ๋ ํฐ returns(์์ต)์ ์ํ upfront investment(์ ํ ํฌ์)
Process Models
- Ad-hoc
- Waterfall(ํญํฌ์)
- Spiral(๋์ ํ)
- Agile(์ ์์ผ)
Estimating Effort
Task: Estimate Time
- A: Blue Marble ๋ณด๋๊ฒ์์ ๊ฐ๋จํ ์น ๋ฒ์
- Team(ํ): ๋ณธ์ธ
- B: ์ํ ์ค๋งํธํฐ ์ฑ
- Team(ํ): ๋ณธ์ธ๊ณผ 4๋ช ์ ๊ฐ๋ฐ์ ํ, 1๋ช ์ iPhone ์ฑ ๊ฒฝํ, 1๋ช ์ security(๋ณด์) ๋ฐฐ๊ฒฝ
- 8์๊ฐ ๊ทผ๋ฌด์ผ ๊ธฐ์ค์ผ๋ก ์ถ์ (์ 20 ๊ทผ๋ฌด์ผ, ์ฐ 220 ๊ทผ๋ฌด์ผ)
Revise Time Estimation
- ์ถ์ ์ ๊ธฐ๋ฐ์ด ๋ ๋งํ comparable experience(๋น๊ต ๊ฐ๋ฅํ ๊ฒฝํ)์ด ์๋๊ฐ?
- ๊ฐ task(์์ )์ ์ผ๋ง๋งํผ์ design(์ค๊ณ)์ด ํ์ํ๊ฐ?
- ์์ ์ ์ฝ 5๊ฐ์ ๋ ์์ ์์ ์ผ๋ก ๋๋๊ณ ์ถ์
- ํ์์ ์ ์ฒด estimate(์ถ์ ์น) ์์
Constructive Cost Model(COCOMO)
- Project history(ํ๋ก์ ํธ ์ด๋ ฅ)์ ๊ธฐ๋ฐํ regression formula(ํ๊ท ๊ณต์)
- ์ ์ฌํ ํ๋ก์ ํธ ๊ฒฝํ ํ์
- ๊ฒฝํ์ documentation(๋ฌธ์ํ) ์ฅ๋ ค
Study: Variability and Reproducibility in Software Engineering
- ๋ ธ๋ฅด์จ์ด Simula Research Lab์ ์ฐ๊ตฌ
- ์น ์ ๋ณด ์์คํ ์ ์ํ System Requirements Specification(์์คํ ์๊ตฌ์ฌํญ ๋ช ์ธ์) ์์ฑ(11ํ์ด์ง)
- 35๊ฐ ํ์ฌ๋ก๋ถํฐ bids(์ ์ฐฐ)์ ๋ฐ์๊ณ , 14๊ฐ๋ schedule(์ผ์ ) ํฌํจ
- ๋์ผํ ์์คํ ์ ๊ตฌ์ถํ๊ธฐ ์ํด 4๊ฐ ํ์ฌ์ ๊ณ์ฝ
Bids and Time Estimations
- ์ ์ฐฐ์์ price(๊ฐ๊ฒฉ)๊ณผ planned time(๊ณํ๋ ์๊ฐ) ๋๋ methods(๋ฐฉ๋ฒ) ๊ฐ์ ๊ด๊ณ ์์
Risk and Uncertainty
Risk Management
- Project manager(ํ๋ก์ ํธ ๊ด๋ฆฌ์)์ ํต์ฌ ๊ณผ์
- Risks(์ํ) ์กฐ๊ธฐ ์๋ณ ๋ฐ ํ๊ฐ
- ํ์์ mitigation strategies(์ํ ์ ๋ต) ๊ณํ
- Risk analysis(์ํ ๋ถ์) ๊ฒฐ๊ณผ๋ฅผ project plan(ํ๋ก์ ํธ ๊ณํ)์ ๋ฌธ์ํ
- Project risks(ํ๋ก์ ํธ ์ํ): scheduling(์ผ์ ) ๋ฐ resources(์์)
- ์: staff illness/turnover(์ง์ ์ง๋ณ/์ด์ง)
- Product risks(์ ํ ์ํ): ์ ํ์ quality(ํ์ง) ๋ฐ functionality(๊ธฐ๋ฅ์ฑ)
- ์: ์ฌ์ฉ๋ component(๊ตฌ์ฑ ์์)๊ฐ ๋๋ฌด ๋๋ฆผ
- Business risks(๋น์ฆ๋์ค ์ํ):
- ์: ๊ฒฝ์์ฌ๊ฐ ์ ์ฌ ์ ํ ์ถ์
Uncertainty
- Steve McConnell. 1996. Rapid Development
Sources of Uncertainty
- Unpredictable operating environment(์์ธก ๋ถ๊ฐ๋ฅํ ์ด์ ํ๊ฒฝ)
- Cybersecurity threats(์ฌ์ด๋ฒ ๋ณด์ ์ํ), device drivers(์ฅ์น ๋๋ผ์ด๋ฒ)
- Unanticipated usage scenarios(์์์น ๋ชปํ ์ฌ์ฉ ์๋๋ฆฌ์ค)
- models(๋ชจ๋ธ)์ ์ ํ๋ predictive power(์์ธก ๋ฅ๋ ฅ)
- Halting(์ค๋จ), abstract interpretation(์ถ์ ํด์), testing(ํ ์คํธ)
- ์ธ๊ฐ์ Bounded rationality(์ ํ๋ ํฉ๋ฆฌ์ฑ)
- Designers(์ค๊ณ์), developers(๊ฐ๋ฐ์)
- Customers(๊ณ ๊ฐ), users(์ฌ์ฉ์)
Accepting and Coping with Risks
- ๊ฐ์น ์ฆ๋๋ฅผ ์ํด ์ ํ์ ์ผ๋ก innovate(ํ์ )
- capability(์ญ๋) ๋ฐ competitiveness(๊ฒฝ์๋ ฅ) ํฅ์
- ํ์ํ ๊ณณ์ ์ํ ์ง์ค
- Precedent(์ ๋ก)์ convention(๊ดํ)(๊ฒฝํ)์ ์์กด
- iteration(๋ฐ๋ณต) ๋ฐ feedback(ํผ๋๋ฐฑ) ์ฌ์ฉ
- Prototypes(ํ๋กํ ํ์ ), spiral development(๋์ ํ ๊ฐ๋ฐ), sprints(์คํ๋ฆฐํธ)
Managing Risks
- ์ํ ์กฐ๊ธฐ ํด๊ฒฐ
- Prototyping(ํ๋กํ ํ์ดํ), spiral development(๋์ ํ ๊ฐ๋ฐ)
- mitigation strategies(์ํ ์ ๋ต) ์๋ณ
Example: Bank Software
- vendor(๊ณต๊ธ์
์ฒด) ๋ฐ open-source(์คํ์์ค) components(๊ตฌ์ฑ ์์) ๊ธฐ๋ฐ ๊ตฌ์ถ
- OS, DB, app server, tooling, backups, information management, โฆ
- ์ ๋ขฐํ ์ ์๋ vendors(๊ณต๊ธ์ ์ฒด) ๋ฐ integrators(ํตํฉ์ ์ฒด) ๊ณ ์
- Business differentiators(๋น์ฆ๋์ค ์ฐจ๋ณํ ์์)์ ๋ด๋ถ risk-taking(์ํ ๊ฐ์) ์ง์ค
- Web-site features(์น์ฌ์ดํธ ๊ธฐ๋ฅ), internal queries(๋ด๋ถ ์ฟผ๋ฆฌ), decision algorithms(์์ฌ ๊ฒฐ์ ์๊ณ ๋ฆฌ์ฆ)
- expertise(์ ๋ฌธ ์ง์) ์ ๊ทผ, ๋น์ฉ ์ ๊ฐ, flexibility(์ ์ฐ์ฑ) ํ๋ณด๋ฅผ ์ํ Outsource(์์์์ฑ)
- Black-box testing(๋ธ๋๋ฐ์ค ํ ์คํธ)
- Overall system architecture(์ ๋ฐ์ ์ธ ์์คํ ์ํคํ ์ฒ)
- Internal engineering practices and tools(๋ด๋ถ ์์ง๋์ด๋ง ๊ดํ ๋ฐ ๋๊ตฌ)
Risk Analysis
- likelihood(๊ฐ๋ฅ์ฑ)์ consequences(๊ฒฐ๊ณผ) ์ถ์
- ์๋ จ๋ project lead(ํ๋ก์ ํธ ๋ฆฌ๋) ํ์
- ๋๋ต์ ์ธ estimations(์ถ์ ์น)๋ก ์ถฉ๋ถ
- very low(<10%), low(<25%), ...
- catastrophic(์น๋ช ์ ), severe(์ฌ๊ฐ), acceptable(์์ฉ ๊ฐ๋ฅ), negligible(๋ฌด์ ๊ฐ๋ฅ)
- ์์ 10๊ฐ ์ํ์ ์ง์ค
Risk Planning
- Risk avoidance(์ํ ํํผ)
- Risk minimization(์ํ ์ต์ํ)
- Emergency plans(๋น์ ๊ณํ)
Strategies to Help Manage Risk
- (ํ 1)
- Risk(์ํ): Organizational financial problems(์กฐ์ง์ ์ฌ์ ๋ฌธ์ )
- Strategy(์ ๋ต): senior management(๊ณ ์ ๊ฒฝ์์ง)์๊ฒ ํ๋ก์ ํธ๊ฐ ๋น์ฆ๋์ค ๋ชฉํ์ ๋งค์ฐ ์ค์ํ ๊ธฐ์ฌ๋ฅผ ํ๊ณ ์์์ ๋ณด์ฌ์ฃผ๊ณ ํ๋ก์ ํธ ์์ฐ ์ญ๊ฐ์ด ๋น์ฉ ํจ์จ์ ์ด์ง ์์ ์ด์ ๋ฅผ ์ ์ํ๋ ๋ธ๋ฆฌํ ๋ฌธ์ ์ค๋น
- Risk(์ํ): Recruitment problems(์ฑ์ฉ ๋ฌธ์ )
- Strategy(์ ๋ต): customer(๊ณ ๊ฐ)์๊ฒ ์ ์ฌ์ ์ด๋ ค์๊ณผ ์ง์ฐ ๊ฐ๋ฅ์ฑ์ ์๋ฆผ; buying-in components(๊ตฌ์ฑ ์์ ๊ตฌ๋งค) ์กฐ์ฌ
- Risk(์ํ): Staff illness(์ง์ ์ง๋ณ)
- Strategy(์ ๋ต): ์์ ์ค๋ณต์ฑ์ ๋์ฌ ์ฌ๋๋ค์ด ์๋ก์ ์ ๋ฌด๋ฅผ ์ดํดํ ์ ์๋๋ก team(ํ) ์ฌ๊ตฌ์ฑ
- Risk(์ํ): Defective components(๊ฒฐํจ ์๋ ๊ตฌ์ฑ ์์)
- Strategy(์ ๋ต): ์ ์ฌ์ ์ผ๋ก ๊ฒฐํจ์ด ์๋ ๊ตฌ์ฑ ์์๋ฅผ ์ ๋ขฐ์ฑ์ด ์๋ ค์ง bought-in components(๊ตฌ๋งค ๊ตฌ์ฑ ์์)๋ก ๊ต์ฒด
- Risk(์ํ): Requirements changes(์๊ตฌ์ฌํญ ๋ณ๊ฒฝ)
- Strategy(์ ๋ต): ์๊ตฌ์ฌํญ ๋ณ๊ฒฝ impact(์ํฅ)์ ํ๊ฐํ๊ธฐ ์ํ traceability(์ถ์ ์ฑ) ์ ๋ณด ๋์ถ; design(์ค๊ณ)์์ information hiding(์ ๋ณด ์๋) ์ต๋ํ
- (ํ 2)
- Risk(์ํ): Organizational restructuring(์กฐ์ง ๊ฐํธ)
- Strategy(์ ๋ต): senior management(๊ณ ์ ๊ฒฝ์์ง)์๊ฒ ํ๋ก์ ํธ๊ฐ ๋น์ฆ๋์ค ๋ชฉํ์ ๋งค์ฐ ์ค์ํ ๊ธฐ์ฌ๋ฅผ ํ๊ณ ์์์ ๋ณด์ฌ์ฃผ๋ ๋ธ๋ฆฌํ ๋ฌธ์ ์ค๋น
- Risk(์ํ): Database performance(๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฑ๋ฅ)
- Strategy(์ ๋ต): higher-performance(๊ณ ์ฑ๋ฅ) ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ตฌ๋งค ๊ฐ๋ฅ์ฑ ์กฐ์ฌ
- Risk(์ํ): Underestimated development time(๊ณผ์ํ๊ฐ๋ ๊ฐ๋ฐ ์๊ฐ)
- Strategy(์ ๋ต): buying-in components(๊ตฌ์ฑ ์์ ๊ตฌ๋งค) ์กฐ์ฌ; program generator(ํ๋ก๊ทธ๋จ ์์ฑ๊ธฐ) ์ฌ์ฉ ์กฐ์ฌ
Planning(๊ณํ)
(Software) Projects
- ์ผํ์ฑ ๋
ธ๋ ฅ(One-time endeavor); ๋ค์๊ณผ ๊ด๋ จํ์ฌ ๊ณ ์ ํจ
- Goals(๋ชฉํ)
- Time, financial, personal, and other constraints(์๊ฐ, ์ฌ์ , ์ธ๋ ฅ ๋ฐ ๊ธฐํ ์ ์ฝ ์กฐ๊ฑด)
- Differences to other endeavors(๋ค๋ฅธ ๋ ธ๋ ฅ๊ณผ์ ์ฐจ์ด์ )
- Project-specific organization(ํ๋ก์ ํธ๋ณ ์กฐ์ง)
- ์ ์๋๊ณ ์ ํ๋ ์๊ฐ(๋ช ํํ ์์๊ณผ ๋)
- ๋ช ํํ goals(๋ชฉํ)
- Constraints(์ ์ฝ ์กฐ๊ฑด): budget(์์ฐ), resources(์์), ...
- management(๊ด๋ฆฌ) ํ์
- high risk(๋์ ์ํ)
- coordination of experts(์ ๋ฌธ๊ฐ ์กฐ์ )
- ์ํํธ์จ์ด ๊ฐ๋ฐ์ ํญ์ projects(ํ๋ก์ ํธ)๋ก ์งํ๋จ
- ์๋กญ๊ณ /๋ ํนํ ๋ชฉํ, innovative technology(ํ์ ์ ์ธ ๊ธฐ์ )
- Intangible result(๋ฌดํ์ ๊ฒฐ๊ณผ), progress(์งํ ์ํฉ) ์ธก์ ์ด๋ ค์
- ์ํํธ์จ์ด ํ๋ก์ ํธ๋ ์ฐ์ ํ๋ก์ ํธ๋ณด๋ค ๋ ์์ฃผ ์คํจํ๋ ๊ฒฝํฅ
Measuring Progress?
"์ฑ์ด ๊ฑฐ์ ์์ฑ๋์์ต๋๋ค. frontend(ํ๋ก ํธ์๋)๋ ๊ฑฐ์ ๋ค ๊ตฌํ๋์์ต๋๋ค. backend(๋ฐฑ์๋)๋ ์๋ฒ๋ฅผ ๊ณ์ ๋ค์ด์ํค๋ ๊ทธ ๋น์ด ๋จน์ ๋ฒ๊ทธ ํ๋๋ง ๋นผ๊ณ ์์ ํ ๋๋ฌ์ต๋๋ค. ๊ทธ ๋น์ด ๋จน์ ๋ฒ๊ทธ ํ๋๋ง ์ฐพ์ผ๋ฉด ๋๋๋ฐ, ์๋ง ์คํ๋ฉด ๋ ๊ฒ๋๋ค. ๋ค์ ์ฃผ์ release(๋ฐฐํฌ)ํ ์ค๋น๊ฐ ๋ ๊ฒ์ ๋๋ค."
- Developer judgment(๊ฐ๋ฐ์ ํ๋จ): x% ์๋ฃ
- Lines of code(์ฝ๋ ๋ผ์ธ ์)?
- Functionality(๊ธฐ๋ฅ์ฑ)?
- Quality(ํ์ง)?
Milestones and Deliverables(๋ง์ผ์คํค ๋ฐ ์ธ๋๋ฌผ)
- (ํนํ ์ํํธ์จ์ด์) ์งํ ์ํฉ์ observable(๊ด์ฐฐ ๊ฐ๋ฅ)ํ๊ฒ ๋ง๋ค๊ธฐ
- Milestone(๋ง์ผ์คํค):(ํ์) ์์
์ ๋ช
ํํ end point(์ข
๋ฃ์ )
- Project manager(ํ๋ก์ ํธ ๊ด๋ฆฌ์)์ฉ
- Reports(๋ณด๊ณ ์), prototypes(ํ๋กํ ํ์ ), completed subprojects(์๋ฃ๋ ํ์ ํ๋ก์ ํธ)
- "80% done"("80% ์๋ฃ")์ ์ ์ ํ milestone(๋ง์ผ์คํค)์ด ์๋
- Deliverable(์ธ๋๋ฌผ): ๊ณ ๊ฐ์ ์ํ ๊ฒฐ๊ณผ
- milestone(๋ง์ผ์คํค)๊ณผ ์ ์ฌํ์ง๋ง ๊ณ ๊ฐ์ฉ
- Reports(๋ณด๊ณ ์), prototypes(ํ๋กํ ํ์ ), completed subsystems(์๋ฃ๋ ํ์ ์์คํ )
Project Planning
- [๋ค์ด์ด๊ทธ๋จ ํ๋ฆ]
- Identify constraints(์ ์ฝ ์กฐ๊ฑด ์๋ณ)
- Estimate project parameters(ํ๋ก์ ํธ ๋งค๊ฐ๋ณ์ ์ถ์ )
- Define milestones(๋ง์ผ์คํค ์ ์)
- Create schedule(์ผ์ ์์ฑ)
- Check progress(์งํ ์ํฉ ํ์ธ)
- Reestimate project parameter(ํ๋ก์ ํธ ๋งค๊ฐ๋ณ์ ์ฌ์ถ์ )
- Refine schedule(์ผ์ ๊ตฌ์ฒดํ)
- Activities begin(ํ๋ ์์)
- Renegotiate constraints(์ ์ฝ ์กฐ๊ฑด ์ฌํ์)
- Technical review(๊ธฐ์ ๊ฒํ )
- Done?(์๋ฃ?) / Problem?(๋ฌธ์ ?) / Abort?(์ค๋จ?)
- Customer(๊ณ ๊ฐ) -> New feature requests(์๋ก์ด ๊ธฐ๋ฅ ์์ฒญ)
- Budget(์์ฐ), Personal(์ธ๋ ฅ), Deadlines(๋ง๊ฐ์ผ)
Project Manager Tasks(ํ๋ก์ ํธ ๊ด๋ฆฌ์ ๊ณผ์ )
- ํ๋ก์ ํธ๋ฅผ ์ธก์ ๊ฐ๋ฅํ outcomes(๊ฒฐ๊ณผ๋ฌผ)์ด ์๋ work packages(์์ ํจํค์ง)๋ก ๋ถํ (๊ฐ 1-10์ฃผ)
- ์๊ฐ ๋ฐ ์์ ์ถ์
- ์์ ์์ฑ ๋ฐ parallelism(๋ณ๋ ฌ์ฑ) ๊ฒฐ์
- ์์๋๊ฑฐ๋ ์์์น ๋ชปํ ๋ฌธ์ ์ ๋ํ buffers(๋ฒํผ) ๊ณํ
- ์ฌ์ฉ ๊ฐ๋ฅํ ์ํํธ์จ์ด(์: Microsoft Project, GanttProject, Kplato ๋ฑ)
- ์ถ์ ์ ์ํ ๊ฒฝํ ํ์
Replanning
- ๋ถ์ ํํ ์๊ฐ ์์ธก์ ์ ์
- -> Update schedule(์ผ์ ์ ๋ฐ์ดํธ)
- [ํ: Task(์์ ), Planned(๊ณํ), Actual(์ค์ ), Difficulty/Risk(๋์ด๋/์ํ), Responsibility(์ฑ ์์), Completed(์๋ฃ์จ)]
Reasons for Missed Deadlines(๋ง๊ฐ์ผ์ ๋์น๋ ์ด์ )
- ๋ถ์ถฉ๋ถํ staff(์ธ๋ ฅ)(์ง๋ณ, ์ด์ง, ...)
- ๋ถ์ถฉ๋ถํ qualification(์๊ฒฉ)
- ์์์น ๋ชปํ ์ด๋ ค์
- ๋นํ์ค์ ์ธ time estimations(์๊ฐ ์ถ์ )
- ์์์น ๋ชปํ dependencies(์์กด์ฑ)
- ๋ณ๊ฒฝ๋๋ requirements(์๊ตฌ์ฌํญ), ์ถ๊ฐ requirements(์๊ตฌ์ฌํญ)
- ํนํ ํ์ ํ๋ก์ ํธ์์
- ๊ธฐ์ ํ์ต ์๊ฐ ๊ณผ์ํ๊ฐ
- ๋ถ๊ท ๋ฑํ ์์ ๋ถ๋ฐฐ
Recognize Scheduling Issues Early(์ค์ผ์ค๋ง ๋ฌธ์ ์กฐ๊ธฐ ์ธ์)
- Monitoring(๋ชจ๋ํฐ๋ง) ๋ฐ formal reporting(๊ณต์ ๋ณด๊ณ ) ํ์
- ๋๊ฐ, ์ธ์ , ๋ฌด์์ ํ๋ฆฝ
- ๊ณํ/์ค์ ๋ฐ์ดํฐ ๋น๊ต
- Measurable milestones(์ธก์ ๊ฐ๋ฅํ ๋ง์ผ์คํค)
- ์ค๋๋ ์ผ์ ์ ์๋ฏธ ์๋ management mechanism(๊ด๋ฆฌ ๋ฉ์ปค๋์ฆ)์ด ์๋
Almost Done Problem("๊ฑฐ์ ์๋ฃ" ๋ฌธ์ )
- ๋ง์ง๋ง 10%์ ์์ ์ด ์๊ฐ์ 40% ์์(๋๋ 20/80)
- ์งํ ์ํฉ์ ์ธก์ ๊ฐ๋ฅํ๊ฒ ๋ง๋ฆ
- ๊ฐ๋ฐ์ ์ถ์ ์ ์ ์ ์ผ๋ก ์์กดํ๋ ๊ฒ ๋ฐฉ์ง
Milestone Trend Analysis(๋ง์ผ์คํค ์ถ์ธ ๋ถ์)
- Actual time(์ค์ ์๊ฐ)
- Estimated completion time(์์ ์๋ฃ ์๊ฐ)
- Changing trends(๋ณํํ๋ ์ถ์ธ) -> unreliable early estimations(์ ๋ขฐํ ์ ์๋ ์ด๊ธฐ ์ถ์ )
- Zig-zag pattern(์ง๊ทธ์ฌ๊ทธ ํจํด) -> unreliable estimations(์ ๋ขฐํ ์ ์๋ ์ถ์ )
- Quickly rising(๋น ๋ฅด๊ฒ ์์น) -> estimations too optimistic(๋๋ฌด ๋๊ด์ ์ธ ์ถ์ )
Mitigation Strategies(์ํ ์ ๋ต)
- Additional personal(์ถ๊ฐ ์ธ๋ ฅ)
- ํนํ ํน์ ์์ ์ ์ํ experts(์ ๋ฌธ๊ฐ)
- ์ผ์์ ์ธ ๊ทผ๋ฌด ์๊ฐ ์ฆ๊ฐ(์ด๊ณผ ๊ทผ๋ฌด, ํด๊ฐ ๋๊ฒฐ)
- short-term solution(๋จ๊ธฐ์ ํด๊ฒฐ์ฑ )์ผ ๋ฟ
- Tooling(๋๊ตฌ), methods(๋ฐฉ๋ฒ), processes(ํ๋ก์ธ์ค) ๊ฐ์
- Buy(๊ตฌ๋งค), contract(๊ณ์ฝ), offshore(์์์์ฑ)
- ๊ธฐ๋ฅ ์ฌํ์ / ์ถ์
- Set priorities(์ฐ์ ์์ ์ค์ ), incremental deployment(์ฆ๋ถ ๋ฐฐํฌ)
- Move deadline(๋ง๊ฐ์ผ ์ฐ๊ธฐ)
- ํผํ ๊ฒ: testing(ํ ์คํธ)/quality assurance(ํ์ง ๋ณด์ฆ) ์ถ์
Team Productivity
- Brook's law(๋ธ๋ฃฉ์ ๋ฒ์น): ์ง์ฐ๋๋ ์ํํธ์จ์ด ํ๋ก์ ํธ์ ์ธ๋ ฅ์ ์ถ๊ฐํ๋ฉด ๋์ฑ ์ง์ฐ๋จ.
(Brief) Introduction to Scrum
Elements of Scrum
- Products(์ฐ์ถ๋ฌผ):
- Product Backlog(์ ํ ๋ฐฑ๋ก๊ทธ)
- Sprint Backlog(์คํ๋ฆฐํธ ๋ฐฑ๋ก๊ทธ)
- Process(ํ๋ก์ธ์ค):
- Sprint Planning Meeting(์คํ๋ฆฐํธ ๊ณํ ํ์)
- Daily Scrum Meeting(์ผ์ผ ์คํฌ๋ผ ํ์)
- Sprint Retrospective(์คํ๋ฆฐํธ ํ๊ณ )
- Sprint Review Meeting(์คํ๋ฆฐํธ ๊ฒํ ํ์)
Product Backlog / Sprint Backlog
- Product backlog(์ ํ ๋ฐฑ๋ก๊ทธ)๋ ์ ํ์ ์ํ ๋ชจ๋ features(๊ธฐ๋ฅ)
- sprint backlog(์คํ๋ฆฐํธ ๋ฐฑ๋ก๊ทธ)๋ ํด๋น sprint(์คํ๋ฆฐํธ)์์ ์์
ํ ๋ชจ๋ ๊ธฐ๋ฅ. ์ด๋ ๊ฐ๋ณ tasks(์์
)๋ก ๋ถํ ๋์ด์ผ ํจ:
- Fine-grained(์ธ๋ถํ๋จ)
- Estimated(์ถ์ ๋จ)
- ๊ฐ๋ณ ํ์์๊ฒ Assigned(ํ ๋น๋จ)
- Acceptance criteria(์ธ์ ๊ธฐ์ค)์ด ์ ์๋์ด์ผ ํจ
- User Stories(์ฌ์ฉ์ ์คํ ๋ฆฌ)๊ฐ ์์ฃผ ์ฌ์ฉ๋จ
Scrum Meetings
- Sprint Planning Meeting
- ์ ์ฒด ํ์ด ํด๋น sprint(์คํ๋ฆฐํธ)์์ ๋ค๋ฃฐ ๋ด์ฉ์ ํจ๊ป ๊ฒฐ์
- Daily Scrum Meeting
- ๊ฐ๋จํ ํ์๋ก ๋ค์ ์ฌํญ ํ์ธ:
- ๋ฌด์์ ํ๋๊ฐ? ๋ค์์ ๋ฌด์์ ํ ๊ฒ์ธ๊ฐ? ๋ฌด์์ ๋งํ๊ฑฐ๋ ๋์์ด ํ์ํ๊ฐ?
- Sprint Retrospective
- sprint process(์คํ๋ฆฐํธ ํ๋ก์ธ์ค) ๊ฒํ
- Sprint Review Meeting
- Product(์ ํ) ๊ฒํ
User Stories
The Card(์นด๋)
"As a [role], I want [function], so that [value]" -> "[์ญํ ]๋ก์, [๊ฐ์น]๋ฅผ ์ํด [๊ธฐ๋ฅ]์ ์ํ๋ค"
- 3x5 ์นด๋์ ๋ง์์ผ ํจ
The Conversation
- ํ๋ก์ ํธ์ ์ฐธ์ฌํ๋ ๋ชจ๋ ์ฌ๋๊ณผ client(๊ณ ๊ฐ) ๊ฐ์ ์ด๋ฆฐ ๋ํ
- ํ์์ Epic Stories(์ํฝ ์คํ ๋ฆฌ) ๋ถํ
The Confirmation
- ์์ ์ด ์๋ฃ๋์์ ๋๋ฅผ ๋ณด์ฌ์ฃผ๋ confirmation criterion(ํ์ธ ๊ธฐ์ค)
- ์๋ํ๋๊ฑฐ๋ ์๋์ผ ์ ์์
