์ข์ ์ ์ ์คํ ๋ฆฌ๋ฅผ ์์ฑํ๊ธฐ ์ํด์๋ ์ข์ ์ ์ ์คํ ๋ฆฌ์ ํน์ฑ์ด ๋ฌด์์ธ์ง ์์์ผ ํ๋ค. ์ ์ ์คํ ๋ฆฌ๋ฅผ ์์ฑ์๋ "Hard core Rules" ๊ฐ ์๊ธฐ ๋๋ฌธ์ด๋ค.
์ข์ ์ ์ ์คํ ๋ฆฌ๋ ์๋ 6๊ฐ์ง ํน์ฑ์ ๋ง์กฑํ๋ค๋ผ๊ณ ํ๋ค.
- (I)ndependent - ๋ ๋ฆฝ์ ์ด๋ค
- (N)egotiable โ ํ์ ๊ฐ๋ฅํ๋ค
- (V)aluable โ ์ฌ์ฉ์ ๋ฐ ๊ณ ๊ฐ์๊ฒ ๊ฐ์น๊ฐ ์๋ค
- (E)stimable โ ์ถ์ ๊ฐ๋ฅํ๋ค
- (S)mall - ์๋ค
- (T)estable โ ํ ์คํธ ๊ฐ๋ฅํ๋ค
์ฐธ๊ณ ,
์ ์ ์คํ ๋ฆฌ - Facts!!
- ์ ์ ์คํ ๋ฆฌ๋ "Specific task(ํน์ ์์ )" ๊ฐ ์๋๋ฉฐ ์ ํ์ ๋ชจ๋ ๋ ๋ฆฝ์ ์ธ ๊ธฐ๋ฅ์ ๋ํ ๊ฐ๋จํ ์ค๋ช ์ด๋ค.
- ์ ์ ์คํ ๋ฆฌ๋ ๊ฐ๋ฐ์์๊ฒ ๊ธฐ๋ฅ์ด ์ด๋ป๊ฒ ์๋ํ๋์ง ์๋ ค์ฃผ์ง ์๋๋ค.
- ์ ์์ผ ๊ฐ๋ฐ์ ๊ฐ๋ฐ ์ค์ ๋ณ๊ฒฝ์ ํ์ํ๋ฏ๋ก ๊ฐ๋ฐ์ "Final word" ๊ฐ ์๋๋ค.
- ์ ์ ์คํ ๋ฆฌ๋ ๋ ๋ฆฝ์ ์ผ ํ์๊ฐ ์์ผ๋ฉฐ ํ ์คํ๋ฆฐํธ์์ ์คํ ๊ฐ๋ฅํ ๊ฒฝ์ฐ 2 ๊ฐ ์ด์์ ๊ธฐ๋ฅ์ ์กฐํฉํ ์ ์๋ค.
- ์ ์ ์คํ ๋ฆฌ๋ฅผ ์์ฑํ๊ธฐ ์ํ ํน์ "Format(ํ์)" ์ด๋ "Rules(๊ท์น)" ์ด ์๋ค.
- ์ ์ ์คํ ๋ฆฌ๊ฐ ๊ณ ๊ฐ๊ณผ ๊ณต์ ๋์ง ์๋ ๊ฒฝ์ฐ๊ฐ ์๋ค.
์ ์ ์คํ ๋ฆฌ - Check List
- ๊ฐ๋ฅํ ํ ์งง์์ผ ํ๋ค.
- ๋จ์ํ๊ณ "Customer(๊ณ ๊ฐ)" ๋๋ "End user(์ต์ข ์ฌ์ฉ์)" ๊ฐ ์ฝ๊ฒ ์ดํดํ ์ ํ๋ค.
- ์ ์ ์คํ ๋ฆฌ๋ "User(์ฌ์ฉ์)" ๊ด์ ์์ ์์ฑ๋์ด์ผ ํ๋ค.
- ์ ์ ์คํ ๋ฆฌ์ "Value benefit(๊ฐ์น ์ด์ )" ์ด ๋ช ํํด์ผ ํ๋ค.
- ์ ์ ์คํ ๋ฆฌ๊ฐ ํฐ ๊ฒฝ์ฐ ๊ธฐ๋ฅ์ ๋ถ๋ฆฌ์์ผ์ผ ํ๋ค.
- ํญ์ "Acceptance criteria(์ธ์ ๊ธฐ์ค)" ๋ฅผ ๋ฐ๋ผ์ผ ํ๋ค.
์ํํธ์จ์ด ์๊ตฌ ๊ณตํ, Requirement Engineering
์๊ตฌ ๊ณตํ์ ์ํํธ์จ์ด ๊ณตํ์์ ์๊ตฌ์ฌํญ ๋ถ๋ถ์ด ํ์๋ ํ๋ฌธ์ผ๋ก Wiki ์์ ํ์ธํ ์ ์๋ค. ์ํค ๋ฐฑ๊ณผ ๋ฐ๋ก๊ฐ๊ธฐ ์๊ตฌ์ฌํญ์ ์ฌ์ฉ์ ์๊ตฌ์ฌํญ๊ณผ ์์คํ ์๊ตฌ์ฌํญ์ผ๋ก ๊ตฌ๋ถํ ์ ์์ผ๋ฉฐ ๋น ๊ฐ
odaily.tistory.com
Independent - ๋ ๋ฆฝ์ ์ด๋ค
์คํ ๋ฆฌ๋ ๋ ๋ฆฝ์ ์ธ ๊ฒฝ์ฐ ์์ ํ๊ธฐ ๊ฐ์ฅ ์ฝ๋ค. ์ฆ, ๊ฐ๋ ์ด ๊ฒน์น์ง ์๋๋ก ํ๊ณ ์ด๋ค ์์๋ก๋ ์ผ์ ์ ์ก๊ณ ๊ตฌํํ ์ ์๊ธฐ๋ฅผ ๋ฐ๋๋ค. ํญ์ ์ด๊ฒ์ ๋ฌ์ฑํ ์๋ ์๋ค. ๋๋๋ก ์ฐ๋ฆฌ๋ "์ฒซ ๋ฒ์งธ ๋ณด๊ณ ์์ ๋ํด 3 ์ , ๋๋จธ์ง ๊ฐ๊ฐ์ ๋ํด 1 ์ "๊ณผ ๊ฐ์ ๋ง์ ํ ์ ์๋ค.
์ ์ ์คํ ๋ฆฌ ๊ฐ์ ์์กด์ฑ์ ์ ๊ฑฐํ์ฌ ๋ ๋ฆฝ์ฑ์ ์ ์งํ๋ค.
๋ ๋ฆฝ์ ์ธ ์คํ ๋ฆฌ๋ ํ๋ก์ ํธ์ ๋น์ฆ๋์ค ๋ฐ ๊ธฐ์ ์ธก๋ฉด ๋ชจ๋์ ๋์์ด ๋๋ค๊ณ ํ๋ค.
- ์ฌ์ ์ ๊ด์ : ๊ธฐ์ ์ ์ข ์๋์ง ์๊ณ ์ฌ์ ๋ชฉํ์ ์ด์ ์ ๋ง์ถ ์ ์์.
- ๊ธฐ์ ์ ๊ด์ : MVP(์ต์ ๊ฐ์น ์ ํ)์ ๊ตฌํ ์คํ ๋ฐ ์ข ์์ ์ต์ํํ๋ ์ค๊ณ ๊ฐ๋ฅ
- ์์กด์ฑ ์ข ๋ฅ : Overlap Dependency, Order Dependency, Containment Dependency
Overlap Dependency : ์ค๋ณต ์์กด์ฑ ์ ๊ฑฐ |
๊ธฐ์กด ์คํ ๋ฆฌ => โUser sends and receives messagesโ and โUser sends and replies to messages.โ ์์กด์ฑ ์ ๊ฑฐ ์คํ ๋ฆฌ => User sends [new] message => User receives message => User replies to message |
Order Dependency : ์ฃผ๋ฌธ(์์) ์์กด์ฑ์ ๋ฌธ์ |
โthis story must be implemented before that one.โ ์ฐ์ ์์ ๊ฒฐ์ ๋ฐ ๊ณํ ์๋ฆฝ์ ๋ฌธ์ ๋ฅผ ๋ฐ์์ํฌ ์ ์๊ธฐ ๋๋ฌธ์ ๊ตฌํ์ ์ ๋ฏธ๋ฆฌ ์ฒดํฌํด์ผ ํ๋ค. ์ => ์ฌ์ฉ์๊ฐ ์ด๋ฉ์ผ์ ๋ณด๋ด๊ธฐ ์ ์ ๊ณ์ ์ด ํ์ํ ์ ์์ต๋๋ค. => ๋ฐ๋ผ์ ๋จผ์ ๊ณ์ ๊ด๋ฆฌ ์คํ ๋ฆฌ๋ฅผ ๊ตฌํํด์ผํ๋ค๊ณ ์๊ฐํ ์ ์์ต๋๋ค. ("๊ด๋ฆฌ์๊ฐ ๊ณ์ ์์ฑ" ๊ณผ ๊ฐ์ ์คํ ๋ฆฌ) ํด๊ฒฐ => ์ด๊ธฐ ๊ณ์ ์ ์ ๊ณตํ ์ ์์ต๋๋ค. ("ํ๋ ์ฝ๋ฉ" or "์ด๊ธฐ ๊ณ์ ์ ๊ณต") |
Containment Dependency : ํฌํจ์ ์ํ ์์กด์ฑ ๋ฌธ์ |
์ ์ ์คํ ๋ฆฌ๊ฐ ์ปค์ง๋ฉด ์ํฝ์ผ๋ก ๋ถ๋ฅํ๊ณ ํ์์ ์ ์ ์คํ ๋ฆฌ๊ฐ ์ฌ๋ฌ๊ฐ ์์ฑ๋ ์ ์๋ค. ์ด ๊ฒฝ์ฐ ์คํ ๋ฆฌ๊ฐ ๋ง์์ง๋ฉด์ ํ ์คํ๋ฆฐํธ ์ฃผ๊ธฐ(Iteration) ์์์ ๊ฐ๋ฐ์ด ์ด๋ ค์ธ ์ ์๋ค. ๋ฐ๋ก, ํ๋์์ ํ์๋๋ ๊ณ์ธต๊ตฌ์กฐ๊ฐ ๋ณต์กํ๊ณ ๋ง์ ์๋ก ์ฐ์ ์์ ์ค์ ๋ฐ ์ผ์ ์๋ฆฝ์ด ์ด๋ ต๋ค. ์ด ๊ฒฝ์ฐ ์คํ ๋ฆฌ๋ฅผ ๋ค๋ฅธ ๊ธฐ์ค์ ์ํด ๋ถ๋ฆฌํ์ฌ ์์กด์ฑ์ ๊ฐ๋ ์คํ ๋ฆฌ๋ผ๋ฆฌ ํฉ์น๋ ์์ ์ ํจ์ผ๋ก์จ ํด๊ฒฐํ ์ ์๋ค. ์๋ ๊ฐ๋ ์ผ๋ก ์ฌ ์กฐํฉํ๊ธฐ๋ฅผ ๊ถ์ฅํ๋ค. - Affinity diagram - pivot |
Negotiable - ํ์๊ฐ๋ฅํ๋ค
์ข์ ์คํ ๋ฆฌ๋ ํ์ ๊ฐ๋ฅํ๋ค. ๊ธฐ๋ฅ์ ๋ํ ๋ช ์์ ์ธ ๊ณ์ฝ("contract")์ด ์๋๋ค. ์คํ๋ ค ์ธ๋ถ ์ฌํญ์ ๊ฐ๋ฐ ์ค์ ๊ณ ๊ฐ๊ณผ ๊ฐ๋ฐํ์ด ๊ณต๋์ผ๋ก ์์ฑํ๋ค. ์ข์ ์คํ ๋ฆฌ๋ ์ธ๋ถ ์ฌํญ์ด ์๋ ๋ณธ์ง์ ํฌ์ฐฉํ๋ค. ์๊ฐ์ด ์ง๋จ์ ๋ฐ๋ผ ์นด๋๋ ๋ฉ๋ชจ(์ฃผ์), ํ ์คํธ ์์ด๋์ด ๋ฑ์ ์ป์ ์ ์์ง๋ง ์คํ ๋ฆฌ์ ์ฐ์ ์์๋ฅผ ์ง์ ํ๊ฑฐ๋ ์์ฝํ๋ ๋ฐ ์ด๋ฌํ ์ ๋ณด๊ฐ ํ์ํ์ง ์๋ค.
์ฃผ์ ํฌ์ธํธ
- The importance of collaboration (ํ์
์ ์ค์์ฑ)
- Evolutionary design (ํ์ ์ ์ธ ์ค๊ณ)
- Response to change (ํผ๋๋ฐฑ)
"Card" ๋ ์คํ ๋ฆฌ์ ๋ํ ์งง์ ์ค๋ช
์ผ ๋ฟ์ด๋ค.
- ์ธ๋ถ์ฌํญ์ "Converation(๋ํ)" ๋จ๊ณ์์ ์์ฑํ๋ค.
- ๊ณ ๊ฐ๊ณผ ๊ฐ๋ฐํ์ ๋ํ๋ฅผ ํตํด ๊ธฐ๋ฅ์ ๋ํด ํ์ํ ์ ์๋ค.
"Card" ์ ๋๋ฌด ์์ธํ ์คํ ๋ฆฌ ๋ด์ฉ์ ๊ณ ๊ฐ๊ณผ์ ๋ํ๋ฅผ ์ ํํ ์ ์๋ค.
- ํ ๋ฌธ์ฅ์ ํ ๊ฐ์ง ๋ด์ฉ์ผ๋ก๋ง ์์ฑํด์ผ ํ๋ค. ('and', 'or' ๋ฅผ ์ฌ์ฉํ์ง ์๋๋ค)
- ์คํ ๋ฆฌ์ ๊ธธ์ด๋ฅผ ์ ์ ํ๊ฒ ์กฐ์ ํด์ผ ํ๋ค. (์งง๊ฒ)
"Card" ๋ ์์ฑ๋ ์๊ตฌ์ฌํญ์ด ์๋๋ค.
- ๋ํ๋ฅผ ์ด๋์ด๋ด๊ธฐ ์ํ ๋จ์์ ์ญํ ์ ํ๋ค.
- ๋ํ๋ฅผ ํตํด ์์ฃผ ์ค์ํ ์ธ๋ถ์ฌํญ์ ์ฃผ์์ผ๋ก ์ถ๊ฐํ๋ค. (Conversation ์์ฑ)
Collaboraion : ๊ฐ๋ฐ์์ ํ์ ์ ํ์์ ์ด๋ค. |
๋
ธ๋ฒจ์ ์์์ ์ธ Ronald Coase, ๊ฐ์ธ๊ณผ ์ผํ๋ ๊ฒ์ ํ์ฌ์์ ์ผํ๋ ๊ฒ๋ณด๋ค ๋ง์ ๋น์ฉ์ด ๋ค์ด๊ฐ๋ค. => ํ์ฌ๋ ๋ ๋์ ์ ๋ขฐ๋ฅผ ๊ฐ์ง์ ์๋ ์์ญ์ ์ ๊ณตํ์ฌ ๋ ์ ์ ๋น์ฉ์ด ๋ฐ์ํ๋ค. ๊ฐ๋ฐํ์ ์๋ก๊ฐ์ ์ ๋ขฐ๋ฅผ ๋ฐํ์ผ๋ก ๋ ๋์ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ๋๋ฉฐ, "Negotiable" ์ ์ด๋ฌํ ์ ๋ขฐ๋ฅผ ๋ฐํ์ผ๋ก ํ๋ค. => work together. (ํจ๊ป ์ผํ๊ณ ) => share ideas. (์์ด๋์ด๋ฅผ ๊ณต์ ํ๋ฉฐ) => jointly own the result. (๊ฒฐ๊ณผ๋ฅผ ๊ณต๋์ผ๋ก ์์ ํ๋ค.) |
Evolutionary Design : ํ์์ ํตํด ๋ ๊ณ ๊ธํํ๋ก ๋ฐ์ ์ํค ์ ์๋ค. (from basic to advanced form) |
์์ ์์ค์ ์ ์ ์คํ ๋ฆฌ๋ ์์คํ
์ ์ฌ์ฉํ๋ ํ์์ ๊ด์ ์์ ๊ตฌํ(๊ฐ๋ฐ)๋ฐฉ์์ ๊ตฌ์ฒด์ ์ผ๋ก ์ ํํ์ง ์๊ณ ๊ธฐ๋ฅ์ ์ ์ํ๋ค. => specify what, not how. (๋ฐฉ๋ฒ์ด ์๋ ๊ธฐ๋ฅ์ ์ ์ํ๋ค.) ์์ - ์จ๋ผ์ธ ์์ ์ฃผ๋ฌธ ์์คํ Card (์์ ์์ค ์ ์ ์คํ ๋ฆฌ) => ์ฃผ๋ฌธ์ฒ๋ฆฌ ์์คํ ("Fulfillment")์ ์ฑ ๊ณผ ์์์ฆ์ ์ ์กํ๋ค. Conversation (ํ์์ ํตํด ์์ธ ์์ฑ) => ์ฃผ๋ฌธ์ฒ๋ฆฌ ๋ด๋น์๋ ๋ณด๋ผ ๋ด์ฉ์ ํ์ธํ๊ณ ์ ๋ฐ์์ ์ ํ์ ๊บผ๋ด ์์์ฆ์ ์ฐ๊ณ , ํฌ์ฅํ๊ณ , ํจํค์ง๋ฅผ ๋ฐฐ๋ฌํํธ๋ก ์ฎ๊ธด๋ค. => ์์คํ (์ฐฝ๊ณ )๋ ์ด์ก ํต๋ก ๋๋ ๊ณ ๊ฐ๋ณ๋ก ๋ถ๋ฅ๋ ํฌ์ฅํ ํ๋ชฉ์ ์์ฑํ๋ค. => ์ ์ A๋ "๋ฐฐ์ก ๋ฆฌ์คํธ"๋ฅผ ํ์ธํ๊ณ ์ฐฝ๊ณ ์์ ์์ฒญ๋ ํ๋ชฉ์ ๊ฐ์ ธ์จ๋ค. => ์ ์ B๋ ๋ผ๋ฒจ๊ณผ ์์์ฆ์ ์ธ์ํ๊ณ ํฌ์ฅํ๋ค์ ๋ฐ์กํ ์์น์ ์ฎ๊ฒจ๋๋ค. => ํ๋ชฉ์ ํฌ์ฅ๋์ด ์ง์ ๋ (์ค๋งํธ)์ ๋ฐ์ ๋ณด๊ด๋๋ค. => ์ ๋ฐ์ ํ๋ชฉ์ ๋ผ๋ฒจํ์ธ ๊ธฐ๊ณ๋ก ๋ณด๋ธ๋ค. => ๋ผ๋ฒจํ์ธ ๊ธฐ๊ณ๋ ๋ฐฐ์ก์ ์ฒด๊ฐ ํฝ์ ํ ์ ์๋๋ก ์์๋ฅผ ๋ถ๋ฅํ๋ ๋ถ๋ฅํํธ๋ก ๋ณด๋ธ๋ค. |
Response to change : ์์ ์์ค ์๊ตฌ์ฌํญ์ ์ด์ |
"Negotiable Story"(ํ์ ๊ฐ๋ฅํ ์คํ ๋ฆฌ)๋ ๋ชจํธํ ์ํฉ์์ ๋์์ด ๋๋ค. ์ด๊ธฐ์ ์์ ์์ค์ผ๋ก ์์ฑํ์ฌ ๋ํ๋ฅผ ํตํด ์ธ๋ถ ์ฌํญ์ ์์ฑํ ์ ์๋ค. ์์ ์์ค ์คํ ๋ฆฌ(์๊ตฌ์ฌํญ)์ผ๋ก ์์ํ๋ฉด ํ์์ ๋ฐ๋ผ ์ธ๋ถ์ฌํญ์ผ๋ก ํ์ฅํ ์ ์๊ณ , ๋ ๋ฐฐ์ฐ๊ธฐ ์ํด ์ฌ์ง๋ฅผ ๋จ๊ฒจ๋๋ฉด ๋ชจ๋ ์๊ตฌ์ฌํญ์ ๊ท ํ์ ๋ง์ถ์ ์๋ ์๋ฃจ์ ์ผ๋ก ๋ ์ฝ๊ฒ ๋ฐ์ ํ ์ ์๋ค. By starting with stories at a high level, expanding details as necessary, and leaving room to adjust as we learn more, we can more easily evolve to a solution that balances all our needs. |
์ค๋๋ ฅ ์๊ฒ ๋งํ๊ธฐ, 6ํ์์น๊ณผ Context ๊ทธ๋ฆฌ๊ณ ์ต๊ด
์ปค๋ฎค๋์ผ์ด์ ์ ์ํ๊ธฐ ์ํด์๋ ์ปจํ ์คํธ๊ฐ ์๋ ๋งํ๊ธฐ๊ฐ ์ค์ํ๋ค. ๋. ๋งฅ๋ฝ ์์ด ๋๋๋ฒ๋ ธ๋ค. (๋ญ๋ผ๋๊ฑฐ์ผ? ๋ผ๊ณ ์๊ฐํ ์ฌ๋๋ค์ด ์์ ๊ฒ์ด๋ค.) ์ ๋ฌธ์ฅ์ ๋ํด ์๋๋ฅผ ์ค๋์ํค๊ธฐ ์ํด์
odaily.tistory.com
ํจ๊ณผ์ ์ธ ์์ฌ์ํต ๋ฐฉ๋ฒ (PMP)
1. ์์ฌ์ํต ์ ํ 6๊ฐ์ง ๋ฐฉ๋ฒ 2. ์์ฌ์ํต ๋ฐฉ๋ฒ ์กฐํฉํ๊ธฐ 3. ํจ๊ณผ์ ์ธ ์์ฌ์ํต ๋ฐฉ๋ฒ 4. ์์ฌ์ํต ๊ณผ์ ์ ์คํด์ ์ค๋ฅ 5. PMP, ํ๋ก์ ํธ ๊ด๋ฆฌ ํ๋ก์ธ์ค ์์ฌ์ํต ์๋ น Communication Skills - ์ ๊ทน์ ์ด
odaily.tistory.com
Valuable โ ์ฌ์ฉ์์ ๊ณ ๊ฐ ํน์ ๊ตฌ๋งค์์๊ฒ ๊ฐ์น ์๋ค
์คํ ๋ฆฌ๋ ๊ฐ์น๊ฐ ์์ด์ผ ํ๋ค. ์ฐ๋ฆฌ๋ ๋๊ตฌ์๊ฒ๋ ๊ฐ์น๊ฐ ์์ด์ผ ํ๋ ๊ฒ์ด ์๋๋ผ ๊ณ ๊ฐ์๊ฒ ๊ฐ์น๊ฐ ์์ด์ผ ํ๋ค. ๊ฐ๋ฐ์๋(ํฉ๋ฒ์ ์ธ) ์ฐ๋ ค ์ฌํญ์ด ์์ ์ ์์ง๋ง ์ด๋ฌํ ์ฐ๋ ค๋ ๊ณ ๊ฐ์ด ์ด๋ฅผ ์ค์ํ๊ฒ ์ธ์ํ๊ฒ ๋ง๋๋ ๋ฐฉ์์ผ๋ก ๊ตฌ์ฑ๋๋ค.
์ด๊ฒ์ ์คํ ๋ฆฌ๋ฅผ ๋ถํ ํ ๋ ํนํ ๋ฌธ์ ๊ฐ ๋ ์ ์๋ค. ์ ์ฒด ์คํ ๋ฆฌ๋ฅผ ๋คํธ์ํฌ ๊ณ์ธต, ์ง์์ฑ ๊ณ์ธต, ๋ ผ๋ฆฌ ๊ณ์ธต ๋ฐ ํ๋ ์ ํ ์ด์ ๊ณ์ธต๊ณผ ๊ฐ์ ๋ค์ค ๊ณ์ธต์ ์ผ์ดํฌ๋ผ๊ณ ํ๋ค. ์คํ ๋ฆฌ๋ฅผ ๋๋๋ฉด ๊ทธ ์ผ์ดํฌ์ ์ผ๋ถ๋ง ์ ๊ณตํ๋ค. ์ฐ๋ฆฌ๋ ๊ณ ๊ฐ์๊ฒ ์ ์ฒด ์ผ์ดํฌ์ ๋ณธ์ง์ ์ ๊ณตํ๊ณ ์ถ์ผ๋ฉฐ ๊ฐ์ฅ ์ข์ ๋ฐฉ๋ฒ์ ๋ ์ด์ด๋ฅผ ์์ง์ผ๋ก ์๋ฅด๋ ๊ฒ์ด๋ค. ๊ฐ๋ฐ์๋ ์ข ์ข ํ ๋ฒ์ ํ๋์ ๋ ์ด์ด์์๋ง ์์ ํ๋ ค๋ ๊ฒฝํฅ์ด ์๋ค. ๊ทธ๋ฌ๋ ์ ์ฒด ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ณ์ธต์์ ํ๋ ์ ํ ์ด์ ๊ณ์ธต์ด ์๋ ๊ฒฝ์ฐ ๊ณ ๊ฐ์๊ฒ ๊ฑฐ์ ๊ฐ์น๊ฐ ์์ต๋๋ค.
"์ด ํ๋ก์ ํธ์ ๊ฐ์น๋ ๋ฌด์์ ๋๊น?"
- ๋ช ํํ๊ฒ ๋๋ตํ ์ ์์ด์ผ ํฉ๋๋ค.
- ๋ค์ํ ์ดํด๊ด๊ณ์๊ฐ ์ด๋ป๊ฒ ํํ์ ๋ฐ๊ณ ์๋์ง ์ ์ ์์ด์ผ ํ๋ค.
- ์ดํด๊ด๊ณ์ : ์ฌ์ฉ์, ๊ตฌ๋งค์, ๊ด๋ฆฌ์, ๊ฐ๋ฐ ์กฐ์ง, ์คํฐ์ ๋ฑ
๊ฐ๋ฐ์์๊ฒ๋ง ๊ฐ์น ์๋ ์คํ ๋ฆฌ๋ฅผ ํผํ๋ผ!
ex> ๋ฐ์ดํฐ ๊ด๋ฆฌ
- ๊ฐ๋ฐ์ ๊ด์ : ๋ชจ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฐ๊ฒฐ์ ์ปค๋ฅ์ ํ์ ํตํด ์ด๋ฃจ์ด์ ธ์ผ ํ๋ค.
- ๊ณ ๊ฐ ๊ด์ : ์ฌ์ฉ์ ๋ผ์ด์ ์ค 5๊ฐ๋ก 50๋ช ๊น์ง ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ฐ๊ฒฐํ์ฌ ์ฌ์ฉํ ์ ์์ด์ผ ํ๋ค.
ex> ๋ก๊ทธ ๊ด๋ฆฌ
- ๊ฐ๋ฐ์ ๊ด์ : ๋ชจ๋ ์๋ฌ ์ฒ๋ฆฌ ๋ฐ ๋ก๊ทธ ์์ฑ์ ๊ณตํต ํด๋์ค๋ฅผ ํตํด ์ด๋ฃจ์ด์ ธ์ผ ํ๋ค.
- ๊ณ ๊ฐ๊ด์ : ๋ชจ๋ ์๋ฌ๋ ์ฌ์ฉ์์๊ฒ ๋ณด์ฌ์ผ ํ๋ฉฐ, ์ผ๊ด๋ ํํ์ ๋ก๊ทธ๋ก ๊ธฐ๋ก๋์ด์ผ ํ๋ค.
๊ณ ๊ฐ์ด ์ง์ ์คํ ๋ฆฌ๋ฅผ ์์ฑํ๋ ๊ฒ์ด ๊ฐ์ฅ ์ข๋ค.
- ๊ณ ๊ฐ : ์ดํด๊ด๊ณ์ ๋ชจ๋.
- ์ธํฐ๋ทฐ ๋๋ VOC ๋ฅผ ํตํด ์๊ตฌ์ฌํญ์ ์์งํ ์ ์๋ค.
What is Value? : ๊ณ ๊ฐ์๊ฒ ํ์ํ ๊ฐ์น๋ฅผ ์๊ฐํ๋ค. |
IRACIS means: - Increase Revenue. (์์ต ์ฆ๋) => ์๋ก์ด ๊ธฐ๋ฅ์ ์ถ๊ฐํ๊ฑฐ๋ ๊ธฐ๋ฅ์ ๊ฐ์ ํ์ฌ ์ง๊ธ๋ณด๋ค ๋ ๋ง์ ๋น์ฉ์ ์ง๋ถํ๋๋ก ํจ. - Avoid Costs. (๋น์ฉ ์ ๊ฐ) => ์ฌ๋์ ๋์ฒด ๋๋ ์ค์ผ์ ์๋ ํ๋ก๊ทธ๋จ์ ๋์ . (ex> ์ฝ์ผํฐ ์ง์ ํ๋ก๊ทธ๋จ) - Improve Service. (์๋น์ค ๊ฐ์ ) => ๊ธฐ๋ฅ์ด๋ ํ์ง์ ๊ฐ์ ํ์ฌ ๊ณ ๊ฐ์ ์ดํ์ ๋ฐฉ์งํ๋ค. (ex> skype ํตํ ํ์ง ๊ฐ์ ) others: - Meet Regulations (๊ท์ ์ค์) => ์ ๋ถ ๊ธฐ๊ด์ ๊ท์ ๋ ํน์ ๋๋ฉ์ธ์ ๋ฒ๊ท(์ํฉ)์ ์ํด ๋ฐ๋์ ํ์ํ ๊ธฐ๋ฅ ๊ฐ๋ฐ ๋ฐ ๊ณ ๊ฐ์๊ฒ ๊ธฐ๋ฅ ์ ์ (ex> ๋น๋๋ฉด ์๋ฃจ์ ) - Build Reputation (ํํ ๊ตฌ์ถ) => ์์ฅ์์ ์ฐ๋ฆฌ์ ๊ฐ์น๋ฅผ ๋์ด๊ธฐ ์ํด ์ํ๋๋ ์์ (ex> ๋ฌด๋ฃ ๋ฒ์ ์ ๊ณต) - Create Options (์ต์ ์์ฑ) => ๋ ๋ง์ ์ ์ฐ์ฑ์ ์ ๊ณตํ๊ธฐ ์ํด ์ ๊ณต. (ex> ๊ณ ๊ฐ์ฌ ์์ฒญ DBMS ๋ก์ ๋ณ๊ฒฝ) - Generate Information (์ ๋ณด ์์ฑ) => ๊ณ ๊ฐ์ด ๋ ๋์ ๊ฒฐ์ ์ ํ ์ ์๋ ์ ๋ณด๋ฅผ ์ ๊ณต (ex> A-B ํ ์คํธ ๊ธฐ๋ฅ) - Build Team (ํ์ ๊ตฌ์ฑ) => ํ์ ๊ตฌ์ฑ์ด๋ ๋ฐ์ ์ ์ํด ํ์ํ ๊ธฐ๋ฅ ๋๋ฌธ์ ์ ํ๋ ์๋ ์์. |
Valuing External Impact : ์ธ๋ถ์ ๋ฏธ์น๋ ์ํฅ์ ํ์ธํ๋ค. |
์ํํธ์จ์ด๋ ํ์ค์ธ๊ณ์์ ๋ฌด์์ ๋ฌ์ฑํ๊ธฐ์ํด ๋ง๋ค์ด์ก๋ค. ์์คํ ํจ๊ณผ์ ์ด์ ์ ๋ง์ถ ์ ํต์ ๋ฐฉ์ ์คํ ๋ฆฌ - ์์คํ ์ด ์๋ฒฝํ ๊ธฐ์ ๋ก ๊ตฌํ๋๊ฒ ์ฒ๋ผ ์์คํ ๋์์ ์ค๋ช ํ๋ค. - ์์คํ ์ธ๋ถ์์ ๋ด๋ถ๋ก ์ด๋ํ๊ฑฐ๋ ๋ด๋ถ์์ ์ธ๋ถ๋ก ๋๊ฐ๋ ๊ฒ์ ๋ช ํํ ํ๋ค. ์์ฑ๋ ์คํ ๋ฆฌ๋ ์ ํ ์์ ์์ ์ฌ์ฉ์(๊ณ ๊ฐ)๊ฐ ๋ช ํํ ์ดํดํ ์ ์์ด์ผ ์ข์ ์ ํ์ ํ ์ ์๋ค. - ์ฐ๋ฆฌ๊ฐ ์ฌ์ฉํ๊ณ ์๋ ์๋ฃจ์ (๊ธฐ์ )์ ๋ํ "์คํ ๋ฆฌ" - ์์คํ ์ ์์ ๋๋ ์ฌ์ฉ์๊ฐ ์ํ๋ ๊ฒ์ ๋ํ "์คํ ๋ฆฌ" |
Value for Whom? : ๋๊ตฌ์๊ฒ ๊ฐ์น๋ฅผ ์ ๊ณตํ ๊ฒ์ธ๊ฐ? |
์ฐ๋ฆฌ๊ฐ ๊ฐ๋ฐํ ์ํํธ์จ์ด๋ก๋ถํฐ ์ป๋ ๊ฐ์น๋ ์ฌ๋๋ค๋ง๋ค ๋ค์ํ๋ค. ๊ฐ๋ฐํ์ ์ ๋ฌด ์ค ์ผ๋ถ๋ ๋ค์ํ ์ดํด ๊ด๊ณ์์ ์๊ตฌ ์ฌํญ์ ๊ท ํ์๊ฒ ์กฐ์ ํ๋ ๊ฒ์ ๋๋ค. - User => ์ค์ ๋ก ์ํํธ์จ์ด๋ฅผ ์ฌ์ฉํ๋ ์ฌ์ฉ์์ ์๊ตฌ์ฌํญ. => ์ํํธ์จ์ด๋ฅผ ์ฌ์ฉํ๋ ๊ฐ์ ์ฌ์ฉ์์ ์๊ตฌ์ฌํญ. => ์๋ก, ์ฝ ์ผํฐ์์ ์๋ด์์ ์ง์ ์ฌ์ฉ์์ด๊ณ ๊ณ ๊ฐ์ ๊ฐ์ ์ฌ์ฉ์์ด๋ค. - Purchasers => ๊ตฌ๋งค์์ ์๊ตฌ๊ฐ ์ฌ์ฉ์์ ์๊ตฌ์ ์์ ํ ์ผ์นํ์ง ์๋ ๊ฒฝ์ฐ๊ฐ ๋ง๋ค. => ์๋ก, ๋์ ํ ์ํํธ์จ์ด์ ๋ํ ๋ชจ๋ํฐ๋ง ๋๊ตฌ๋ ์์คํ ๊ด๋ฆฌ์๋ง ํ์ํ๋ค. - Development Organizations => ํ์ค ์ค์, ๊ธฐ๋ณธ ์ธ์ด ๋ฐ ์ํคํ ์ฒ ์ฌ์ฉ ๋ฑ์ ๋ฐ์๋๋ ์๊ตฌ ์ฌํญ์ด ์์ ์ ์๋ค. - Sponsors => ํฌ์ ์์ต์ ์ํ๋ค. |
PON (Problem/Opportunity, Needs) - ์ ํ ๊ด๋ฆฌ์
์ํํธ์จ์ด ์๊ตฌ ๊ณตํ, Requirement Engineering ์๊ตฌ ๊ณตํ์ ์ํํธ์จ์ด ๊ณตํ์์ ์๊ตฌ์ฌํญ ๋ถ๋ถ์ด ํ์๋ ํ๋ฌธ์ผ๋ก Wiki ์์ ํ์ธํ ์ ์๋ค. ์ํค ๋ฐฑ๊ณผ ๋ฐ๋ก๊ฐ๊ธฐ ์๊ตฌ์ฌํญ์ ์ฌ์ฉ์ ์๊ตฌ์ฌํญ๊ณผ ์์ค
odaily.tistory.com
Estimable โ ์ถ์ ๊ฐ๋ฅํ๋ค
์ข์ ์คํ ๋ฆฌ๋ ์ถ์ ํ ์ ์๋ค. ์ ํํ ์ถ์ ์ ํ์ํ์ง ์์ง๋ง ๊ณ ๊ฐ์ด ์คํ ๋ฆฌ ๊ตฌํ์ ์์๋ฅผ ๋งค๊ธฐ๊ณ ์ผ์ ์ ์ก๋ ๋ฐ ๋์์ด ๋ ๋งํผ ์ถฉ๋ถํ๋ค. ์ฐ๋ฆฌ๊ฐ ์ดํดํ์ง ๋ชปํ๋ ์คํ ๋ฆฌ๋ ์ถ์ ํ๊ธฐ๊ฐ ์ด๋ ต๊ธฐ ๋๋ฌธ์ ์ถ์ ๊ฐ๋ฅํ๋ค๋ ๊ฒ์ ๋ถ๋ถ์ ์ผ๋ก ํ์์ ๊ธฐ๋ฅ์ด๋ค. ๋ํ ํฌ๊ธฐ์ ํจ์์ด๊ธฐ๋ ํฉ๋๋ค. ๋ ํฐ ์คํ ๋ฆฌ๋ ์ถ์ ํ๊ธฐ๊ฐ ๋ ์ด๋ ต์ต๋๋ค. ๋ง์ง๋ง์ผ๋ก ์ด๋ ํ์ ๊ธฐ๋ฅ์ ๋๋ค. ์์ธกํ๊ธฐ ์ฌ์ด ๊ฒ์ ํ์ ๊ฒฝํ์ ๋ฐ๋ผ ๋ค๋ฆ ๋๋ค.
๋๋๋ก ํ์ ์ ์ ํ ์ถ์ ์ ๋ด๊ธฐ ์ํด ์ถฉ๋ถํ ์ ๋ณด๋ฅผ ์ ๊ณตํ๋ "SPIKE" ์ ์ํ๋ ๊ธฐ๋ฅ์ ์ค์ ๋ก ๊ตฌํํ ๋๋จธ์ง ์คํ ๋ฆฌ๋ก ๋๋์ด์ผ ํ ์ ์์ต๋๋ค.
๊ฐ๋ฐ์๋ค์ ๊ฐ ์คํ ๋ฆฌ์ ํฌ๊ธฐ ํน์ ์์ ์์ ์๊ฐ์ ์ถ์ ํ ์ ์์ด์ผ ํ๋ค.
- ์ถ์ ์ Agile ์๋ฆฌ์ฆ ์ฑ
1๊ถ ๋ถ๋์ ์ด๋ ต๊ณ ๊ณ ํต์ค๋ฌ์ด ์์
์ด๋ค.
- ๊ฐ๋จํ๊ฒ ์๋ ๋ฐฉ๋ฒ์ผ๋ก ์ถ์ ํด ๋ณผ ์ ์๋ค.
- counting stories : ์์ฑ๋ ์คํ ๋ฆฌ ์๋ก ์ถ์ ํ๋ค. (์ด์ ํ๊ท (์ํ) ๊ฐ ํ์)
- historical estimates : ๊ธฐ์กด ์์
์ด๋ ฅ์ ๊ธฐ๋ฐ์ผ๋ก ์ถ์ ํ๋ค. (์นธ๋ฐ WIP)
- rough order of magnitude estimates : ๋๋ต์ ์ธ ํฌ๊ธฐ๋ฅผ ์ฐ์ ํ์ฌ ์ถ์ ํ๋ค.
์ถ์ ์ด ์ฝ์ง ์์ ๊ฒฝ์ฐ ๋ฐ ํด๊ฒฐ์ฑ
โ ํด๋น ๋ถ์ผ(๋๋ฉ์ธ)์ ์ง์์ด ๋ถ์กฑ
=> ๊ณ ๊ฐ ์ธํฐ๋ทฐ๋ฅผ ํตํด ํด๊ฒฐ์ฑ
์ ๋ชจ์ํ๋ค.
โ๊ธฐ์ ์ ์ธ ์ง์์ด ๋ถ์กฑ (์งง์ Spike๋ฅผ ํตํด ๊ทน๋ณต)
=> ์ ๋ณด์์ง์ ์ํ ๋ฏผ์ฒฉํ ์คํ์ดํฌ
=> ์ค์ ์์
์ ์ํํ๋ ์คํ ๋ฆฌ
* Spike : ๊ฐ๋ฐ์ด๋ ์ค๊ณ์ ํ๋กํ ํ์
ํํ๋ก ๊ฐ๋จํ๊ฒ ๊ตฌํ ๋๋ ์๋ฎฌ๋ ์ด์
ํ๋ ๋ฐฉ๋ฒ
โ ์คํ ๋ฆฌ๊ฐ ๋๋ฌด ํฌ๋ค.
=> ์คํ ๋ฆฌ๋ฅผ ์์ ์คํ ๋ฆฌ๋ก ๋๋๋ค.
=> Epic ์ผ๋ก ๊ตฌ๋ถํ์ฌ ํฅํ ์คํ ๋ฆฌ๋ก ์ธ๋ถํํ๋ค.
์ถ์ ๊ด๋ จํ์ฌ ์ธ๊ธํ๊ธฐ
Why Is It Hard to Estimate? : ์ถ์ ์ด ์ด๋ ค์ด ์ด์ ๊ฐ ๋ฌด์์ธ๊ฐ? |
์ํํธ์จ์ด ๊ฐ๋ฐ์๋ ์๋ ค์ง์ง ์์ ์ฌํญ์ด ๋๋ฌด ๋ง๋ค. (so many unknowns) ์๋ ํญ๋ชฉ๋ค์ ํ๋ฃจ ๋๋ ์ผ์ฃผ์ผ ๋์ ๊ณํํ๊ณ ํ์์ ์ฐธ์ํ๊ณ ํ์ ์ ์ผ๋ก ์์ํ๋ค๊ณ ํด์ ์ด๋ ค์์ ๊ทน๋ณต ํ ์๋ ์๋ค. - The Domain => ๋๋ฉ์ธ์ ๋ชจ๋ฅด๋ ๊ฒฝ์ฐ ๊ณ ๊ฐ๊ณผ ์คํด๋ฅผํ๊ธฐ๊ฐ ๋ ์ฝ๊ณ ๋ ๋์ ์๋ฃจ์ ์ ๋ํ ๊น์ ํต์ฐฐ๋ ฅ์ ๊ฐ๊ธฐ๊ฐ ๋ ์ด๋ ค์ธ ์ ์๋ค. - Level of Innovation => ์ด์ ์ ํ ๋ฒ๋ ํด๋ณธ ์ ์ด ์๋ ์ผ์ ํด์ผํ๋ ๋ถ์ผ(domain)์์ ์ด์(operating)ํด์ผ ํ๋ค. - The Details of a Story => ์ฐ๋ฆฌ๋ ์ข ์ข ์์ ํ ์ดํด๋๊ธฐ ์ ์ ์ด์ผ๊ธฐ๋ฅผ ์ถ์ ํ๊ณ ์ถ์ดํ๋ค. => ์์ง ๋ช ํํ์ง ์๊ฑฐ๋ ์์ํ์ง ๋ชปํ ๋ณต์กํ ๋น์ฆ๋์ค ๊ท์น๊ณผ ์ ์ฝ์ ์ํฅ์ ์์ธกํด์ผ ํ ์ ์์ด์ผ ํ๋ค. - The Relationship to Other Stories => ์ผ๋ถ ์คํ ๋ฆฌ๋ ๊ตฌํ ๋ ๋ค๋ฅธ ์คํ ๋ฆฌ์ ๋ฐ๋ผ ๋ ์ฌ์ธ ์๋ ์๊ณ ์ด๋ ค์ธ ์๋ ์๋ค. - The Team => ๊ฐ์ ํ๋ก์ ํธ, ํ ์ฌ๋์ด๋ ์๊ฐ์ด ์ง๋จ์ ๋ฐ๋ผ ๋ณํ๋ค. => ์๋ก์ด ํ์์๋ ๋ ์ด๋ ต๋ค. - Technology => ๋๊ท๋ชจ ํ๋ก์ ํธ์์ ์ฌ์ฉํ ๊ธฐ์ ์ค ์ผ๋ถ๋ฅผ ์๊ณ ์์ ์ ์์ง๋ง ๋ชจ๋ ๊ฒ์ ๋ฏธ๋ฆฌ ์์ ์๋ค. => ๋ฐ๋ผ์ ์ถ์ ์น๋ ํ์ต ์๊ฐ์ ๊ณ ๋ คํด์ผํ๋ค. - The Approach to the Solution => ์ฐ๋ฆฌ๋ ๋ฌธ์ ๋ฅผ ์ด๋ป๊ฒ ํด๊ฒฐํ ๊ฒ์ธ์ง ์์ง ์์ง ๋ชปํ ์ ์๋ค. - The Relationship to Existing Code => ๊ธฐ์กด ์๋ฃจ์ ์ ์น์ ("habitable section")์์ ์์ ํ ๊ฒ์ธ์ง ์ฌ๋ถ๋ฅผ ์ ์ ์์ต๋๋ค. - The Rate of Change => ์ฐ๋ฆฌ๋ ๋จ์ง "์คํ ๋ฆฌ๊ฐ ๋ฌด์์ธ๊ฐ?" ๋ฅผ ์ถ์ ํด์ผ๋๋ฉฐ ๋ํ, "๋ง์ง๋ง์ผ๋ก ๋ฌด์์ด ๋ ๊น?" ๊น์ง ์ถ์ ํด์ผ ํ ์๋ ์๋ค. - Dysfunctional Games => ์ผ๋ถ ํ๊ฒฝ์์ ์ถ์ ์ ์ ์น์ ๊ถ๋ ฅ์ ์ํ ๋๊ตฌ๋ก ํ๊ฐ๋๋ค. (ํ, ๊ถ๋ ฅ์ ๋ฐ๋ผ ๊ฒฐ์ ) => ์์ ๋ ์ฝ์ , ์ผ์ ๊ด๋ฆฌ ๋ฐ ๊ธฐํ ๋ง์ ์ ์ฉ ๋ฑ - Overhead => ์ธ๋ถ ์์ธ์ด ์ถ์ ์ ์ํฅ์ ์ค๋ค. => ๋ฉํฐ ํ์คํน์ํ๊ฑฐ๋ ์ฌ์ด๋ ํ๋ก์ ํธ๋ฅผ ๋งก๊ฒ๋๋ฉด ์ผ์ด ๋ ์ค๋ ๊ฑธ๋ฆฐ๋ค. |
Simple Estimates: Count the Stories |
Don Wells ๋ ๋งค์ฐ ๊ฐ๋จํ ์ ๊ทผ ๋ฐฉ์์ ์ ์ํ๋ค. "๊ทธ๋ฅ ์ด์ผ๊ธฐ๋ฅผ ์ธ์ด๋ณด์ธ์." thought experiment 1. ์คํ ๋ฆฌ์ ์ค์ ํฌ๊ธฐ๋ฅผ ๋ํ๋ด๋ ์ซ์๋ฅผ ๊ฐ์ ธ์ด. 2. ๋ฌด์์ ์ํ ์ฑ์ทจํจ. 3. ์ํ์ ํ๊ท ์ ์คํ ๋ฆฌ ํฌ๊ธฐ๋ก ์ค์ . 4. ์ด๊ณ์ ๋ํ ์ถ์ ์น๋ ์คํ ๋ฆฌ ์์ ์ํ ํ๊ท ์ ๊ณฑํ ๊ฐ. ์ฃผ์. - ์๊ฐ์ด ์ง๋จ์ ๋ฐ๋ผ ๋ฅ๋ ฅ์น๋ ์ ์๋ ฅ์ด ํฅ์๋๋ค. (ํ๊ณ ๋ฅผ ํตํด ๊ฐ๊ฒฉ์ ์ขํ์ผ ํจ.) - ์ค์ ํฌ๊ธฐ๋ฅผ ๊ฐ์ง์ง ์๋ ์คํ ๋ฆฌ๋ ๋ฌด์ํจ (์์กด๋๊ฐ ๋์ ๊ฒฝ์ฐ) |
Historical Estimates (ala Kanban) |
work-in-progress (WIP) is the challenge ์นธ๋ฐ์ WIP ๊ฐ๋ ์ ๋ํด ๋จผ์ ์ดํด๋ฅผ ํด์ผ ํ๋ค. ๊ฐ๋ฐ ๊ธฐ๋ก์ ์ถ์ ํ๋ฉด์ ์๊ฐ์ ์ธก์ ํ๊ณ ํจํด์ ์ฐพ์๋ผ ์ ์์ด์ผ ํ๋ค. - ํ๊ท ์คํ ๋ฆฌ ์ ๋ฌ์ 10์ผ - ์คํ ๋ฆฌ 95% ์ ๋ฌํ๋๋ฐ 22์ผ ์ดํ ์์ => ๋ค์ ์คํ ๋ฆฌ ์ ๋ฌ์ ๊ฑธ๋ฆฌ๋ ์๊ฐ์ ์ถ์ ํ ์ ์๋ค. ์ด๊ฒ์ "์ผ๋ง๋ ํฐ๊ฐ?" ์์ ์ถ์ ์ง๋ฌธ์ "์ผ๋ง๋ ๋นจ๋ฆฌ๋ฐ์ ์ ์๋์?" ๋ก ๋ฐ๊ฟ ์ ์๋ค. WIP ๊ฐ ๋์ผ๋ฉด ๊ฐ๋ฐํ์ ํผํฌ๋จผ์ค๊ฐ ๋์ ๊ฒ์ด๋ฉฐ WIP ๊ฐ ๋ฎ์์ง๋ฉด ๊ฐ๋ฐํญ๋ชฉ์ ์ค์๋๊ฐ ๋์ ๊ฒ์ด๋ค. |
Rough Order of Magnitude |
๋๋ต์ ์ธ ์ถ์ ์น๋ ์๊ฐ ๋จ์(์๊ฐ, ์ผ, ์ฃผ, ์, ๋
)๋ฅผ ์ถ์ ํ๋ค. - ๋ฆฌ์คํฌ, ๊ฐ์น ๋ฐ ์ต์ ์ ํ์("Explore")ํ๋ค. - ๋๋ต์ ์ธ ๊ท๋ชจ๋ฅผ ์ถ์ ํ๋ค. - ๊ฐ์ฅ ์ค์ํ ์คํ ๋ฆฌ์ ์ ์ฉํ ๋ฒ์ ์ ์๊ฒ ๋ง๋๋ ๊ฒ์ ๋จผ์ ์ง์คํ๋ค. - ํด๋น ๋ฒ์ ์์ ์ดํด ๊ด๊ณ์ ๊ท ํ์ ๋ง์ถ๊ธฐ ์ํด ํ์ํ๋ค. (์ด๋ป๊ฒ ๊ทธ๋ฆฌ๊ณ ์ผ๋ง๋ ์งํํ ์ง ๊ฒฐ์ ) - ์ด ๊ณผ์ ์์ ๋ฐฐ์๋๊ฐ์ผ ํ๋ค. |
์คํฌ๋ผ์์์ ์ํํธ์จ์ด ํ์ง ๊ด๋ฆฌ
ํ ์คํธ ๋ถ์ผ ๊ณต๋ถ๋ฅผ ํ๊ฒ ๋๋ฉด ๋ฐ๋์ ๋ง๋๋ V-Model ์ ๋ํ ์๊ฐ์ด๋ค. ISTQB ๊ณต๋ถ๋ฅผ ํ๋ฉด์ ์ค๋ผ๋ฒ์ค์ ๋์จ ๋ด์ฉ๊ณผ ํ ์คํธ ์ค๋ฌด ๋ฑ.. ํ๋ก์ธ์ค ๋ฐ ์ ์ฑ ์ ์ธ์ ๋ ์ ์ฅํ ๋๋์ ๋ฐ๋๋ค. ๊ทธ๋ผ ์ค
odaily.tistory.com
Small Scalable โ ์์์ผ ํ๋ค
์ข์ ์คํ ๋ฆฌ๋ ์์ ๊ฒฝํฅ์ด ์๋ค. ์คํ ๋ฆฌ๋ ์ผ๋ฐ์ ์ผ๋ก ์ต๋ ๋ช ์ฃผ ๋ถ๋์ ์์ ์ ๋ํ๋ธ๋ค. (์ผ๋ถ ํ์์๋ ๋ฉฐ์น ์ ์์ ์ผ๋ก ์ ํํ๋ค.)
์ด ๊ท๋ชจ๋ณด๋ค ํฌ๋ฉด ์คํ ๋ฆฌ ๋ฒ์์ ๋ฌด์์ด ์๋์ง ์๊ธฐ๊ฐ ๋๋ฌด ์ด๋ ค์ ๋ณด์ ๋๋ค. "ํ ๋ฌ ์ด์ ๊ฑธ๋ฆด ๊ฒ์ด๋ค." ๋ผ๋ ๋ง์ ์ข ์ข "๋ฌด์์ด ์๋ฐ๋๋์ง ์ดํดํ ์ ์๊ธฐ ๋๋ฌธ์" ๋ฌต์์ ์ผ๋ก ์ถ๊ฐํ๋ค. ์์ ์ด์ผ๊ธฐ๋ ๋ ์ ํํ ์ถ์ ์น๋ฅผ ์ป๋ ๊ฒฝํฅ์ด ์๋ค.
์ฃผ์ ํฌ์ธํธ
- High-Level Stories: Themes and Activities
- Middle Level: The Headline
- Low Level: The Details
์ธ ๊ฐ์ง ๋ ๋ฒจ์ ํ์ธํ๋ ๊ฒ์ด ๋์์ด ๋๋ค.
- Theme โ High level : ์ฌ๋ฐ๋ฅธ ์ผ์ ๋ค๋ฃจ๊ณ ์์ต๋๊น?
- Headline โ Mid level : ์ฌ์ฉ์๊ฐ ๊ด์ฌ ์๋ ๊ธฐ๋ฅ์ ์ป๊ณ ์์ต๋๊น?
- Details โ Low level : ์๋ก์ด ๊ธฐ๋ฅ์ด ํ์ํฉ๋๊น, ์๋๋ฉด ์ด์ ๊ธฐ๋ฅ์ ๊ฐ์ ํ ์ ์์ต๋๊น?
์คํ ๋ฆฌ์ ์ ์ ํ ํฌ๊ธฐ๋ ๊ฐ๋ฐํ์ ์ญ๋์ด๋, ์ฌ์ฉํ๋ ๊ธฐ์ ์ ๋ฐ๋ผ ๊ฒฐ์ ๋๋ค.
โ ์คํ ๋ฆฌ์ ํ๋์ ํฌ๊ธฐ๋ 1์ผ ~ 2์ฃผ ๋ด์ธ๋ก ๊ฒฐ์ ํ๋ค.
- ํ์ง๋ง 5์ผ(1์ฃผ)์ ๋์ง ์๋ ๊ฒ์ด ์ข๋ค.
Epic ๋๋ Theme ์ฒ๋ผ ํฐ ์คํ ๋ฆฌ์ ๊ฒฝ์ฐ
โ ๋ณตํฉ์ ์ธ ์คํ ๋ฆฌ : ์์ ์คํ ๋ฆฌ๋ฅผ ์ฌ๋ฌ ๊ฐ ํฌํจ
- ์คํ ๋ฆฌ ๋๋๊ธฐ.
- ์คํ ๋ฆฌ ํฉ์น๊ธฐ.
โ ๋ณต์กํ ์คํ ๋ฆฌ
- ํฌ๋ฉด์๋, ๋๋๊ธฐ ์ฝ์ง ์๋ค.
- ์คํ ๋ฆฌ ์์ฒด์ ๋ํ ๋ถํ์ค์ฑ์ ๊ธฐ์ธํ๋ค.
- ๋ฌธ์ ๋ฅผ ์กฐ์ฌํ๋ ์คํ ๋ฆฌ์ ๊ธฐ๋ฅ์ ๊ฐ๋ฐํ๋ ์คํ ๋ฆฌ๋ก ๋๋๋ค.
- ๊ณ ๊ฐ์ด ์กฐ์ฌํ๋ ์คํ ๋ฆฌ์๋ ์ฐ์ ์์๋ฅผ ๊ฒฐ์ ํ ์ ์๋ค.
์ ์ ์ฌํญ
- ์คํ ๋ฆฌ๋ฅผ ๋ถ๋ฆฌํ์ฌ ๋ ๊ฐํ("intensifying") ์คํ ๋ฆฌ๋ก ๋ง๋ ๋ค.
- ํฐ ์คํ ๋ฆฌ๋ ๊น๋ค๋กญ๋ค. ("tricky")
- ํ๋์ ํค๋๋ผ์ธ์ ๋ค์ํ๊ฒ ๋ณํ์ด ๊ฐ๋ฅํ๋ค.
- ๊ธฐ์ ์ ์คํ ๋ฆฌ๋ ์์์ง ๋ชจ๋ฅด์ง๋ง ๊ทธ๊ฒ์ ์ ์ ์คํ ๋ฆฌ๊ฐ ์๋๋ค.
High-Level Stories: Themes and Activities |
์ฌ๊ธฐ์ ์ธ๊ธํ ๋ด์ฉ์ ๋๋ฌด ์ปค์ ์คํ ๋ฆฌ๊ฐ ์๋๋ผ ๋ค๋ฅด๊ฒ ๋ถ๋ฆฐ๋ค. โthemesโ (Kent Beck), โactivitiesโ (Jeff Patton) โepicsโ (SaFE) โkite levelโ (Alistair Cockburn) ์> - Reserving cars (์๋์ฐจ ์์ฝ) - Renting cars (์๋์ฐจ ๋์ฌ) - Returning cars (์๋์ฐจ ๋ฐ๋ฉ) |
Middle Level: The Headline |
์์คํ
์ธ๋ถ์์ ์์ํ์ฌ ์ดํด ๊ด๊ณ์๊ฐ ๊ด์ฌ์ ๊ฐ๋ ์์
์ ์ํํ๋ ์ฌ์ฉ์ ๋๋ ์์คํ
์์
์ ์ค๋ช
ํ ๋ ์ฌ์ฉํ๋ค. ํค๋ ๋ผ์ธ์ ํ ํ๋ฆฟ์ ๋ฐ๋ฅผ ํ์๋ ์์ง๋ง ๊ธฐ๋ณธ์ ์ผ๋ก Industrial Logic ์ด ์ ์ํ๋ ์์ ์ฌ์ฉํ๋ค. - Role(์ญํ ) => ์คํ ๋ฆฌ๋ฅผ ๋์("triggering")์ํค๋ํ๋ ์ฌ์ฉ์ ๋๋ ์์คํ - Action(ํ๋) => ๋ฌด์จ ์ผ์ด ์ผ์ด๋๋๊ฐ Context [optional] (์ปจํ ์คํธ) => ์ธ์ , ์ด๋์, ๊ทธ๋ฆฌ๊ณ (๋๋) ๋ฐฉ๋ฒ ์> ๊ณ ๊ฐ์ด ํ๋ชฉ์ ๊ตฌ๋งค ํ๋ค. ์> ๊ณ ๊ฐ์ด ์ง๋ถ ์นด๋๋ก ํญ๋ชฉ์ ๊ตฌ๋งค ํ๋ค. |
Low Level: The Details |
์ฐ๋ฆฌ๊ฐ ์์
ํด์ผ๋ ํญ๋ชฉ์ ๊ด๋ฆฌํ๋ค. - Middle level => ๊ณ ๊ฐ์ด ํ๋ชฉ์ ๊ตฌ๋งค ํ๋ค. - Low level => ์ค์ ์์ ์์๋ ๊ณ ๊ฐ์ด ์ ์์๊ฒ ํ๋ชฉ์ ์์ฒญํ ์ ์์ต๋๋ค. => ์ํผ๋ง์ผ์์ ๊ณ ๊ฐ์ ์์ ์ ๊ฑธ์ด ๋ค๋๊ณ ์ํ๋ ํ๋ชฉ์ ์นดํธ์ ๋ฃ์ ๋ค์ ์์ ์์ ๊ณ์ฐ๋์์ ์ ์๊ณผ ๊ณ์ฐํ ์ ์์ต๋๋ค. => Amazon.com์์ ์ํ์ ๊ตฌ๋งคํ๋ฉด ์ ์ฉ ์นด๋๊ฐ ๋ฑ๋ก๋์ด ์๊ณ Amazon์ ์ฒดํฌ ์์ํ๋ ๋์ ๊ต์ฐจ ํ๋งค ๋ฐ ์ํฅ ํ๋งค๋ฅผ ์๋ํฉ๋๋ค. ํ๋์ ํค๋๋ผ์ธ("A single Headline)์ผ๋ก ๋ค์ํ ๋ณํ์ด ๊ฐ๋ฅํ๋ค. ์ด๊ฒ์ด ์คํ ๋ฆฌ์ ํ์ฅ์ฑ์ด๋ค. ("That is scalability in stories.") |
ํ์ฅ ๊ฐ๋ฅํ ์คํ ๋ฆฌ์ ์ด์ |
- ์งํ ์ฌํญ์ ๊ฐ์ํ๋ฅผ ๋๋๋ค. - ๋น ๋ฅด๊ฒ ์ ์ฉํ ๋๊ตฌ๋ฅผ ์ ๊ณตํ๋ค. ("utility") - ๋ ๊ฐ์น์๋ ๊ฒฐ๊ณผ๋ฅผ ์ป๋๋ฐ ๋์๋๋ ํผ๋๋ฐฑ์ ์ ๊ณตํ๋ค. - ์์ฅ("market") ๋ฐ ๊ธฐ์ ์ ๋ฆฌ์คํฌ๋ฅผ ์ค์ด๋๋ฐ ๋์์ ์ค๋ค. |
๋๊ตฌ๋ ๋ฐ๋ผํ๊ธฐ ์ฌ์ด ์๊ตฌ์ฌํญ ์์ฑ Tip, ํ ํ๋ฆฟ
SRS (Software Requirements Specification) ์๊ตฌ์ฌํญ ๋ฌธ์์ ๋ํ ํ ํ๋ฆฟ์ IEEE ํ์ค ๋ฌธ์๊ฐ ์์ง๋ง ์ค๋ฌด์์ ์ฌ์ฉํ๊ธฐ๋ ๋ฒ๊ฑฐ๋กญ๊ณ ๊ฐ๋ ์ฑ์ด ๋จ์ด์ง๋ค. ๊ทธ๋์ ํ์ฌ๋ณ, ์ฌ๋๋ณ๋ก ๋ค์ํ ์๊ตฌ์ฌํญ ์ ์
odaily.tistory.com
Testable โ ํ ์คํธ ๊ฐ๋ฅํด์ผ ํ๋ค
ํ ์คํธ ๊ฐ๋ฅํ ์คํ ๋ฆฌ๋ ์ ๋ ฅ์ด ์ฃผ์ด์ง๋ฉด ์์๋๋ ์์คํ ๋์ ๋๋ ์ถ๋ ฅ์ ๋์ํ ์ ์๋ ์คํ ๋ฆฌ์ด๋ค.
์ข์ ์คํ ๋ฆฌ๋ ํ ์คํธํ ์ ์๋ค. "๋ด๊ฐ ์ํ๋ ๊ฒ์ ์ถฉ๋ถํ ์ดํดํ์ฌ ํ ์คํธ(์ผ์ด์ค or ๋ช ์ธ)๋ฅผ ์์ฑํ ์ ์๋ค."
์ฌ๋ฌ ํ์ด ์คํ ๋ฆฌ๋ฅผ ๊ตฌํํ๊ธฐ ์ ์ ๊ณ ๊ฐ ํ ์คํธ๋ฅผ ์๊ตฌํจ์ผ๋ก์จ ํ์ ์์ฐ์ฑ์ด ๋ ๋๋ค๋ผ๋ ๋ณด๊ณ ๋ ์๋ค.
"ํ ์คํธ ๊ฐ๋ฅ์ฑ" ์ ํญ์ ์ข์ ์๊ตฌ ์ฌํญ์ ํน์ง์ด๋ค. ์ค์ ๋ก ํ ์คํธ๋ฅผ ์ผ์ฐ ์์ฑํ๋ฉด์ด ๋ชฉํ๊ฐ ์ถฉ์กฑ๋์๋์ง ์ ์ ์๋ค.
ํ์ ๋น ๊ธฐ๋ฅ์ ์๊ตฌ ์ฌํญ (์ : ์ฑ๋ฅ ๋ฐ ์ฌ์ฉ์ฑ)์ ํ ์คํธํด์ผ ํ๋ ๊ฒ์ผ๋ก ์ทจ๊ธํ ์ ์๋ค. ์ด๋ฌํ ํ ์คํธ๋ฅผ ์ด์ํ๋ ๋ฐฉ๋ฒ์ ํ์ ํ๋ฉด ํ์ด ์ง์ ํ ์๊ตฌ ์ฌํญ์ ํ์ ํ๋ ๋ฐ ๋์์ด ๋๋ค.
ํ ์คํธ๊ฐ ํ๋ ์คํ ๋ฆฌ
- ์ ๋ ๋ฐ์ํ์ง ์๋๋ค๋ ๊ฒ์ ์
์ฆ์ด ๋ถ๊ฐ๋ฅํ๋ค
โ ์> ์ด๋ค ํ๋ฉด๋ ์ฌ์ฉ์๋ฅผ ์ค๋ ๊ธฐ๋ค๋ฆฌ๊ฒ ํด์๋ ์ ๋๋ค
=> ์ ํ๋ฉด์ 95%์ ๊ฒฝ์ฐ 2์ด ์์ ๋ํ๋์ผ ํ๋ค.
Testable Trigger Words |
์๋ ์ธ๊ธ๋ ๋จ์ด๊ฐ ํฌํจ๋ ๊ฒฝ์ฐ ํ
์คํธ ๊ฐ๋ฅํ์ง ์์ ์ ์๋ค. Just (๊ทธ๋ฅ, ๋จ์ง) => ์์ฃผ ์์ ๋จ์ด์ด์ง๋ง ์ค์ ๋ก ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์ง ์๊ณ ์ฐ๋ ค์ ์ค์์ฑ์ ์ต์ํํ๊ธฐ ์ํด ์ข ์ข ํ์ ์์ง์์ผ๋ก ์ฌ์ฉ๋๋ค. => Just check each of these against all the others Appropriate, right, suitable (์ ์ ํจ) =>๋ฌผ๋ก ๋น์ ์ ์ ์ ํ ์ผ์ ์ํ๋ค. => ๊ทธ๋ฌ๋ "์ ์ ํ" ์ด ์ค์ ๋ก ์๋ฏธํ๋ ๋ฐ๋ฅผ ์ ์ํ์ง๋ ์๋๋ค. Best, worst (์ต๊ณ , ์ต์ ) => "Best" ๋ผ๊ณ ๋งํ์ง๋ง "Best" ๋ฅผ ์ ์ํ์ง ์๋๋ค. Most, least, shortest, longest (๊ฐ์ฅ, ์ต์, ๊ฐ์ฅ ์งง์, ๊ฐ์ฅ ๊ธด) => ๊ฐ์ฅ ์ํ๋ ๊ฒ์ด ๋ฌด์์ธ์ง, ์๋๋ฉด ๊ฐ์ฅ ์ ๊ฒ ์ํ๋ ๊ฒ์ด ๋ฌด์์ธ์ง ๋ช ํํ๋ค๋ฉด ๋์์ด๋์ง๋ง => ์ด๋ฌํ ๋จ์ด๋ ๊ณ์ฐ ๋น์ฉ์ด ๋ง์ด ๋๋ ์ ํ์ ์จ๊ธธ ์๋ ์์ต๋๋ค. All combinations, all permutations (๋ชจ๋ ์กฐํฉ, ๋ชจ๋ ์์ด) => ์ด ๋จ์ด๋ ์ ์ ์๋์์ง๋ง ๊ณ์ฐ์ ์ผ๋ก ์คํ ๋ถ๊ฐ๋ฅํ ๊ฒ์ ๋ํ๋ผ ์ ์๋ค. Any of, don't care (๋ชจ๋, ์๊ด ์ ํจ) => ์ด๋ฌํ ๋ฌธ๊ตฌ๋ ์ข ์ข ๋น-๊ฒฐ์ ์ ("non-deterministic") ์์ ์์ ์ฌ์ฉ๋๋ค. => ํฉ๋ฒ์ ์ด์ง๋ง ์ด๋ฌํ ์๋ฅผ ์ฌ์ฉํ์ฌ ํ ์คํธ ์ฌ๋ก๋ฅผ ์ง์ ํ๋ ๊ฒ์ ๊น๋ค๋ก์ธ ์ ์๋ค. => Will you list all possible solutions? (๊ฐ๋ฅํ ๋ชจ๋ ์๋ฃจ์ ์ ๋์ด ํ์๊ฒ ์ต๋๊น?) Fun, easy to use, people, like (์ฌ๋ฏธ ์์, ์ฌ์ฉํ๊ธฐ ์ฌ์, ์ฌ๋, ์ข์์) => ์ด๋ค์ ๋น ๊ธฐ๋ฅ์ ์์ฑ์์ ์ผ๋ฐ์ ์ด๊ฑฐ๋ ์ฐ๊ตฌ ํ๋ก์ ํธ๋ฅผ ์จ๊ธธ ์ ์๋ค. Iโll know it when I see it (๋ด๊ฐ ๋ณผ ๋ ์๊ฒ ๋ ๊ฑฐ์ผ) => ํ ๋ฒ์์ด ๋ฌธ์ ๋ฅผ ์ ๋๋ก ํด๊ฒฐํ ๊ธฐํ๊ฐ ์๋ค. |
several challenges with tests |
ํด๊ฒฐํด์ผ ํ ๋ฌธ์ => Magic (๋ง๋ฒ) => Intentional Fuzziness (์๋์ ์ธ ํ๋ฆฟํจ) ์์์ผ ํ ๊ณผ์ => Computational Infeasibility (๊ณ์ฐ ๋ถ๊ฐ๋ฅ์ฑ) => Non-Determinism (๋น-๊ฒฐ์ ๋ก ) ์ฐ์ฐํ ๋ฐ์๋ค์ด์ง ์์ ์ํ => Subjectivity (์ฃผ๊ด์ฑ) => Research Projects (์ฐ๊ตฌ ํ๋ก์ ํธ) |
ํํ์ ํ ์คํ (exploratory testing), ์ ์์ผ ์ํํธ์จ์ด ๊ฐ๋ฐ
์ํํธ์จ์ด ๊ฐ๋ฐ์ ์ ์ข ์ฌ๋ฅผ ํ๋ฉด ์์น ์์๋ ๋ฃ๊ฒ ๋๋ ๊ฐ๋ฐ ๋ฐฉ๋ฒ๋ก , ์์ ์ ๊ฒ์ํ๋ฉด ์ธ์ฌ์ดํธ์์ ๋์จ Agile ์๋ฆฌ์ฆ๊ฐ ๊ฐ์ฅ ๊ตฌ๋ฏธ ๋น๊ธฐ๊ฒ ์๊ฒผ๋ค. ์ค๋์ ๋ค์ ์ ์์ผ์ ์ฒ์ ์ ํ๋ ์ด์ฌ์ผ
odaily.tistory.com
์ํํธ์จ์ด ํ์ง ํ๋ ์ดํด (QC, QA, QI, QM)
"ํ์ง ๊ฒฝ์๋ ฅ" SW๊ฐ๋ฐ ํ์ฌ์์ ๋ณผ ์์๋ ๋ฌธ๊ตฌ์ด๋ค. ๊ทธ๋ฌ๋ ๋๊ธฐ์ , ์ค๊ฒฌ๊ธฐ์ ์ ์ ์ธํ๊ณ ์ค์๊ธฐ์ ์์ ํ์ง์กฐ์ง์ ๊ฐ์ถ๋ ๊ฒฝ์ฐ๋ ํ์น ์๋ค. ๋น์ฅ ๊ฐ๋ฐ์ ์ง์คํ ์ธ๋ ฅ๋ ๋ถ์กฑํ๊ธฐ ๋๋ฌธ์ ๋น์ฉ
odaily.tistory.com
์ถ์ฒ : xp123
๋๊ธ
์ผ์์ ๊ณต์ ํฉ๋๋ค๋์
๊ธ์ด ์ข์๋ค๋ฉด ์์์ ๋ณด๋ด์ฃผ์ธ์!
์ด ๊ธ์ด ๋์์ด ๋๋ค๋ฉด, ์์ ๋๊ธ์ ์จ๋ณด์ธ์. ๋ธ๋ก๊ฑฐ์๊ฒ ์ง๊ธ๋๋ ์์๊ธ์ ์๋ก์ด ์ฐฝ์์ ํฐ ํ์ด ๋ฉ๋๋ค.
์์ ๋๊ธ์ ๋ง 14์ธ ์ด์ ์นด์นด์ค๊ณ์ ์ด์ฉ์๋ผ๋ฉด ๋๊ตฌ๋ ํธํ๊ฒ ์์ฑ, ๊ฒฐ์ ํ ์ ์์ต๋๋ค.
๊ธ ๋ณธ๋ฌธ, ๋๊ธ ๋ชฉ๋ก ๋ฑ์ ํตํด ์์ํ ํฌ๊ณผ ์์ ๋๊ธ, ์์๊ธ์ ๊ฐ์กฐํด ๋ณด์ฌ์ค๋๋ค.
์์๊ธ์ ์ฑ์์๋ ์ธ์ฑ๊ฒฐ์ , ์น์์๋ ์นด์นด์คํ์ด ๋ฐ ์ ์ฉ์นด๋๋ก ๊ฒฐ์ ํ ์ ์์ต๋๋ค.