์ ํ๋ฐฐ๋ผ๋ฆฌ ์๋ก ์ธ๋ฏธ๋๋ฅผ ํ ๋ ์์ ๋ด์ฃผ๊ณ ๊ฒ์ฌํ๋ ์์ ๋จ์ ์ ์ธ ๊ฒ ๋ง๊ณ ์ข ๋ ์ ๊ทน์ ์ธ ๊ณต๋ถ๊ฐ ๋ ์ ์๋ ๋ฐฉ๋ฒ์ ์๊ฐํฉ๋๋ค. ์์ฃผ ์งง์ ์๊ฐ ์์ ๋ง์ ์์ ํ์ต(์ฌ๊ธฐ์ ํ์ต์ ํ๋ค๊ณ ํ๋ ๊ฒ์ ๋ญ๊ฐ ํ ์ ์๋ ๋ฅ๋ ฅ์ด ์๊ฒผ๋ค๋ ๊ฒ)์ ํ ์ ์์ต๋๋ค.
PairProgramming์ด๋ ExtremeProgramming์ด๋ผ๊ณ ํ๋ ์๋ก์ด ์ํํธ์จ์ด ๊ฐ๋ฐ ๋ฐฉ๋ฒ๋ก ์ ํ๊ฐ์ง ๊ธฐ๋ฒ์ผ๋ก, ๋๋ช
์ด ํ ์ปดํจํฐ๋ฅผ ์ด์ฉํด์ ๊ฐ์ด ํ๋ก๊ทธ๋๋ฐ์ ํ๋ ๊ฒ์ ๋งํฉ๋๋ค.
์ผ๊ฒฌ์๋ ์ธ๋ ฅ(Man*hour)์ ๋ญ๋น์ผ ๊ฒ ๊ฐ์ง๋ง, ์ด์ ๊น์ง์ ์ค์ฆ์ ์ฐ๊ตฌ๋ก๋ "๋ ์งง์ ์๊ฐ ๋ด์" "๋ ๋์ ์ฝ๋ (์๋ฌ๊ฐ ์ ์)"๋ฅผ ๋ง๋ค์ด ๋ผ ์ ์์์ต๋๋ค.
์ ๋ ์ฌ๊ธฐ์ PairProgramming์ ๊ต์ก์ ํจ๊ณผ์ ์ด๋ฅผ ๊ทธ๋ฃน ์คํฐ๋๋ ํ๋ก์ ํธ ํ ๊ต์ก์ ์์ฉํ๋ ๋ฐฉ๋ฒ์ ๊ฐ๋ตํ ์์ ํ๊ฒ ์ต๋๋ค.
์ง์๊ด๋ฆฌ์ ์ธ๊ณ์ ํ์ ๋
ธ๋์นด ์ด์ฟ ์ง๋ก ๊ต์๋ ์ง์์ ํ์์ง์ ์๋ฌต์ง๊ฐ ์๋ค๊ณ ํฉ๋๋ค. ํ์์ง๋ ๋ฌธ์ํ, ๊ท์นํ, ์์ํ๋ ์ง์์ ๋งํ๊ณ , ์๋ฌต์ง๋ ๊ทธ๋ ์ง ๋ชปํ ๊ฒ๋ค์ ๋งํฉ๋๋ค. ๊ทธ๋ฐ๋ฐ, ์ด๋ค ์ ๋ฌธ๊ฐ๊ฐ ๊ฐ์ง ์ง์์ด๋ผ๋ ๊ฒ์ ๊ฑฐ์ ๋๋ถ๋ถ์ด ์๋ฌต์ง์
๋๋ค. ์ด์ ๊น์ง๋ ํ์์ง์ ์ ๋ฌ์๋ง ์ ๊ฒฝ์ ์์์ง ์๋ฌต์ง๋ ๋ณ ๊ด์ฌ์ ๋ฐ์ง ๋ชปํ๊ณ , ๊ต์ก ๋ชจ๋ธ์์๋ ์ค์ํ๊ฒ ๋ค๋ค์ง์ง ๋ชปํ์ต๋๋ค. (๋๋ถ์ ์ ๋ช
ํ ์ธ๊ฐ๋ฌธํ์ฌ์ ๋๊ฐ ๋๊ธฐ๋ ์ผ์ด ๋น๋ฒํ์ฃ .)
๊ทธ๋ฐ๋ฐ ์ด๋ฐ ์๋ฌต์ง๋ ์ ๋ฌธ๊ฐ์ ํ์์ด ๊ฐ์ ๊ณต๊ฐ์ ์ ์ ํ๋ฉฐ ํจ๊ป ์ผํ๊ณ ์ํํ๋ ์์์ ๊ฐ์ฅ ํจ๊ณผ์ ์ผ๋ก ํ์ต๋ฉ๋๋ค. ๋์ ์ ์์
(apprenticeship)์ ์ผ์ปซ๋ ๊ฒ์ด์ฃ .
๊ธฐ์กด์ ์์
์ ์ธ ํ๋ก๊ทธ๋๋จธ๋ค์ ์ผํ๋ฅผ ๋ค์ด๋ณด๋ฉด ์์ ๋ค์ด ๋น์ฝ์ ์ธ ๋ฐ์ ์ ํ๋ ์๊ธฐ๋ ๋๋ถ๋ถ "ํ๋ฅญํ ํ๋ก๊ทธ๋๋จธ"์ ํจ๊ป ์ผ์ ํ ์ ์์๋ ๋๋ผ๊ณ ์
์ ๋ชจ์๋๋ค.
์ด ๋ฐฉ์์ ์ํํธ์จ์ด ๊ฐ๋ฐ ์
์ฒด์์ ์ ์ฉํ ๊ฒ์ Apprenticeship in a Software Studio๋ผ๋ ๋ฌธ์์ ์ ๋์ ์์ต๋๋ค. http://www.rolemodelsoft.com/papers/ApprenticeshipInASoftwareStudio.htm (๊ผญ ์ฝ์ด๋ณด๊ธฐ๋ฅผ ๊ถํฉ๋๋ค. ์ค์ฌ ํ๋ก๊ทธ๋๋ฐ๊ณผ๋ ๊ด๋ จ์๋ ์ฌ๋์ผ์ง๋ผ๋)
์ฌ๊ธฐ์๋ ๋จ๊ธฐ๊ฐ์ ์ด๋ฐ PairProgramming์ ํตํด์ ํ ๋ด์ ์ง์์ด ํ์ฐ๋๊ฒ ํ๊ฑฐ๋, ๊ทธ๋ฃน ์คํฐ๋์ ์ด์ฉํ ์ ์๋ ๋ฐฉ๋ฒ์ ๋ณด๋๋ก ํ์ฃ .
์ฐ๋ฆฌ๊ณผ ํ๋ฐฐ๋ค์ด ํ๋ฏ ๊ฐ์ธ๋ณ ์์ ๋ฅผ ๋ด์ฃผ๊ณ ์ด๋ฅผ ๊ฒ์ฌํ๋ ๊ฒ๋ ์ข์ง๋ง ์ด๋ฌ๋ฉด ํจ๊ณผ์ ์ธ ํ์ต์ด ์ ์ด๋ค์ง์ง ์์ต๋๋ค. ๊ฐ์ ๊ณต๊ฐ์์ ํจ๊ป ๊ณต๋ถํ ์ฌ์ ๊ฐ ์๋ค๋ฉด ์ด๋ฐ ๊ฐ๋ณ ํ์ต๋ณด๋ค ๊ณต๋ ํ์ต์ด ๋ ํจ๊ณผ์ ์
๋๋ค.
์๋ฅผ ๋ค์ด, A, B, C, D, E, F, G, H๋ผ๋ ์ฌ๋ ๋ช
์ด ํ ํ์ ์ด๋ฃฌ๋ค๊ณ ๊ฐ์ ํฉ์๋ค. ์ฌ๊ธฐ์, A์ B๊ฐ ์ ๋ฌธ๊ฐ์ด๊ณ ๋๋จธ์ง๋ ๋น์๋ จ์๋ผ๊ณ ํ์ฃ .
์ฒ์์ ์ง์ ์ด๋ฐ ์์ผ๋ก ์ง์ต๋๋ค.
~cpp A B C D E F G H
์ด๋ ๊ฒ ๋๋ฉด E์ F๋ ์ ๋ฌธ๊ฐ์ธ A์ B์ ์ง์ PairProgramming์ ํ๊ณ ๋๋จธ์ง ๋ค๋ช
์ ์๊ธฐ๋ค๋ผ๋ฆฌ PairProgramming์ ํ๊ฒ ๋์ฃ . ์ฒ์ pairing์์ C์ G, D์ H๋ ํ์คํฌ๋ฅผ ์์ํด์ง ๋ชปํด๋ ๊ด์ฐฎ์ต๋๋ค -- ๋์ ๋ฌธ์ ์์ญ์ ํ์ํ๋ ๋์ ์ด๋ ์ ๋์ ํ์ต์ ๋ฐ์ํ๊ฑฐ๋ ์.
์ด ์ํ์์๋ A์ B๋ ExpertRating์ด 0์ด๊ณ , E์ F๋ 1์ด ๋ฉ๋๋ค. ์ด ๊ฐ๋
์ Erdos๋ผ๋ ์ํ์๊ฐ ๋ง๋ ๊ฒ์ธ๋ฐ, Expert ์์ ์ 0์ด ๋๊ณ , ๊ทธ ์ฌ๋๊ณผ ํ๋ฒ์ด๋ผ๋ pairing์ ํ์ผ๋ฉด 1์ด ๋ฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ , expert์ pairingํ ์ฌ๋๊ณผ pairing์ ํ๋ฉด 2๊ฐ ๋ฉ๋๋ค. expert๋ ์ฌ๋๋ค์ ExpertRating์ ๋ฎ์ถ๋ ์์ผ๋ก ์ง์ง๊ธฐ ์ค์ผ์ฅด๋ง์ ๋ง์ถฐ๊ฐ๋๋ค. ๋ฌผ๋ก ์ฒ์์๋ C,D,G,H๋ ์๋ฌด ์ ์๋ ์์ฃ . ์ด๋ด ๋๋ "Infinite"์ด๋ผ๊ณ ํฉ๋๋ค.
๋ค์ ๋จ๊ณ์์๋ ์์ปจ๋,
~cpp A B C D G H E F
์ด๋ ๊ฒ pairing์ ํ ์ ์๊ฒ ์ฃ . ์ญ์ ์๊น์ ๋์ผํ ํ์คํฌ๋ฅผ ์ํํฉ๋๋ค. ๋์ ์ข์ pairing์์ ์ป์ ์ง์์ ๊ธฐ๋ฐ์ผ๋ก ์ข ๋ ๋์ ํ๋ก๊ทธ๋จ์ ์๋ก ์์ฑํ๋ ๊ฒ๋๋ค. ๊ฐ์ ์ด์ ๊ฒฝํ์ด ๋ค๋ฅด๋ฏ๋ก(๋ค๋ฅธ ์ฌ๋๊ณผ ์ง์ง๊ธฐ๋ฅผ ํ์ผ๋ฏ๋ก) ๋์ด ํ๋ ฅํ๋ฉด ์๋ก ๊ฐ๋ฅด์ณ ์ฃผ๊ณ ๋ฐฐ์ฐ๋ฉด์ ์๋์ง ํจ๊ณผ๋ฅผ ๋ผ ์๋ ์์ต๋๋ค.
์ฌ๊ธฐ์๋ ๊ฐ๊ฐ์ ExpertRating์, C=2, D=2, E=1, F=1, G=1, H=1์ด ๋๊ฒ ์ฃ . (A,B๋ ์์source์ด๋ฏ๋ก ์ฌ์ ํ 0)
์ด๋ฐ ์์ผ๋ก ๊ฐ์ ํ์คํฌ๋ฅผ ์ง์ ๋ฐ๊ฟ๊ฐ๋ฉฐ ๋ ์ธ ๋ฒ๋ง ๋ฐ๋ณตํ๊ฒ ๋๋ฉด, ๋งค ๋ฒ ํ ๋ ๋ง๋ค ์๊น๋ณด๋ค๋ ์ข ๋ ๋์ ์์
์ ํ ์ ์๊ฒ ๋๊ณ , "๋ฌธ์ ๋ฐ๊ฒฌ -> ํด๊ฒฐ"์ ํ์ต์ ํ๊ฒ ๋ฉ๋๋ค. ๋์ ์ฝ๋๋ฅผ ๋ณด๊ณ , ์ด๊ฒ ์ข์ ์ฝ๋๋ก ๋ฐ๋๋ ๊ทธ ๊ณผ์ ์ ์ง์ ๊ฒฝํํ๋ ๊ฒ์ด์ฃ .
--JuNe
๋๋ฌด๋ ์ข์ ๊ธ์ ์ฝ์ ๊ฒ ๊ฐ์ต๋๋ค. ์ ๋ฐฐ๋์ด ์จ์ฃผ์ PairProgramming์ ๊ดํ ๊ธ์ ์์๊ฐ์ ์ฝ์์ต๋๋ค
์ด๋ฐ ๋ฐฉ๋ฒ์ด ์คํฐ๋์ ๋ฐฉ๋ฒ์ผ๋ก ์๋ฆฌ์ก๋๋ค๋ฉด ์ด๋ณด์์ ์ค๋ ฅํฅ์์ ์์ฒญ๋ ๋์์ด ๋๊ฒ ๊ตฐ์
