E D R , A S I H C RSS

Extreme Programming

ExtremeProgramming € ฒฝ๋Ÿ‰œ๋ฐœ๋ฐฉ๋ฒ•๋ก œผ๋กœ„œ, RUP ๋“ฑ˜ ๋ฐฉ๋ฒ•๋ก — ๋น„•”„๋กœ„Šคฐ€ „‹•˜‹ค. XP —„œ˜ ๋ช‡๋ช‡ œ๋…๋“ค€ ผ๋ฐ˜ ”„๋กœธ๋ž˜๋ฐ—„œ๋„ œ šฉ•˜ฒŒ “ฐˆ˜ žˆ๋‹ค. Šนžˆ TestDrivenDevelopment(TestFirstProgramming) ˜ œ๋…ณผ Refactoring, UnitTest๋Š” ดˆธฐ ณต๋ถ€• •Œ ˜ž„œ๋„ ‹Šต„ •ด๋ณผ ˆ˜ žˆ๋Š” ๋‚ดšฉด๋‹ค. œธ ๋˜๋Š” †Œธ๋ฃน˜ ›ˆ๋ œผ๋กœ๋„ šฉ•  ˆ˜ žˆ„ ฒƒด๋‹ค.


 „ฒด ฃผธฐ


ดˆธฐ Customer š”ตฌ๋ถ„„‹œ—๋Š” UserStory๋ฅผ ž‘„•œ‹ค. UserStory๋Š” ถ”›„ Test Scenario๋ฅผ ƒฐ•˜—ฌ AcceptanceTest ๋ถ€๋ถ„„ ž‘„•˜๋Š”๋ฐ šฉ•œ‹ค. UserStory๋Š” œ๋ฐœž๋“ค— ˜•„œ •ด๋‹ธฐ„ (Story-Point)„ ˜ˆธก(estimate) •˜ฒŒ ๋˜๋Š”๋ฐ, estimateฐ€ ๋ช…™••˜ง€ •Š„ ฒฝšฐ—๋Š” ๋ช…™••˜ง€ •Š€ ๋ถ€๋ถ„— ๋Œ€•„œ SpikeSolution „ •ด๋ณธ๋’ค estimate„ •˜ฒŒ ๋œ‹ค. UserStory๋Š” ๋‹‹œ Wiki:EngineeringTask๋กœ ๋‚˜๋ˆ„–ดง€ , Wiki:EngineeringTask๋ถ€๋ถ„— ๋Œ€•œ estimate๋ฅผ ฑฐœ๋’ค Task-Point๋ฅผ • ‹•œ‹ค. •ด๋‹น Point ˜ ธฐค€€ deadline ˜ ธฐค€•„‹Œ, programminer's ideal day (ฆ‰, •„๋ฌด๋Ÿฐ ๋ฐฉ•ด๋ฅผ ๋ฐ›ง€ •Š๋Š” ƒƒœ—„œ ”„๋กœธ๋ž˜๋จธฐ€ œ ˜ šจœ„ „–‰•œ‹  –ˆ„ ฒฝšฐ˜ ธฐค€) œผ๋กœ „‚ฐ•œ‹ค.

ธ ๋‹Œ, œข… œผ๋กœ Customer —ฒŒ •ด๋‹UserStory ˜ šฐ„ ˆœœ„๋ฅผ ๋งคธฐฒŒ •œผ๋กœ„œ ตฌ˜„•  UserStory˜ ˆœ„œ๋ฅผ  ••˜ฒŒ •œ‹ค. ธ๋Ÿฌ๋ฉด UserStory— ๋Œ€•œ •ด๋‹Wiki:EnginneringTask๋ฅผ ๋ถ„‹•˜—ฌ œ๋ฐœž๋“ค€ ž‘—…„ •˜ฒŒ ๋œ‹ค. •ด๋‹น Task-Point๋Š” Iteration ๋งˆ๋‹ค ๋‹‹œ „‚ฐ„ •˜—ฌ ๋‹Œ Iteration ˜ estimate —  šฉ๋œ‹ค. (•ด๋‹œ๋ฐœžฐ€ •ด๋‹ธฐ„๋‚ด— ˜๋ฆฌ •  ˆ˜ žˆ๋Š” Task-Point ™€ Story-Point — ๋Œ€•œ estimate) (Load Factor = ‹ œ ˆ˜–‰•œ ๋‚  / developer's estimated 'ideal' day. 2.5 ~ 3 ‰ ) Iteration ‘ ๋งค๋ฒˆ estimate •˜๋ฉฐ ž‘—…†๋„๋ฅผ ฒดฌ•œ๋’ค, Customer ™€ •ด๋‹UserStory — ๋Œ€•œ ˜‘ƒ„ •˜ฒŒ ๋œ‹ค. ๋‹Œ Iteration —„œ๋Š”  „ Iteration —„œ ˆ˜–‰•œ Task Point ๋งŒผ˜ „ • ‹•œ‹ค.

Iteration ‘—๋Š” ๋งคStandUpMeeting „ †ต••ด๋‹”„๋กœธ๋žจ˜  „๋ฐ˜ ธ ๋””žณผ Pair, Task ˆ˜–‰ •๋„— ๋Œ€•œ šŒ˜๋ฅผ •˜ฒŒ ๋œ‹ค. ๋””ž—๋Š” CRCCard ณผ UML ๋“ฑ„ šฉ•œ‹ค. ดˆธฐ ๋””ž—„œ๋Š” „ธ๋ถ€ ธ ๋ถ€๋ถ„นŒง€ ๋””ž•˜ง€ •Š๋Š”๋‹ค. XP—„œ˜ ๋””ž€ œ —ฐ•œ ๋ถ€๋ถ„ด๋ฉฐ, ดˆ๋ฐ˜˜ ณผ๋„•œ Upfront Design „ ง€–‘•œ‹ค. ๋””ž€ •ด๋‹”„๋กœธ๋ž˜๋ฐ ณผ •—„œ ฒฐ๋ก „ ง“๋Š”๋‹ค. XP˜ Design € CRCCard, TestFirstProgramming ณผ Refactoring, ธ๋ฆฌ  StandUpMeeting ๋‚˜ PairProgramming ‘ œ๋ฐœž๋“ค„˜ ๋Œ€™”๋ฅผ †ต•ง€† œผ๋กœ œ ๋„๋˜–ดง€๋ฉฐ ๋””žธ๋˜–ด„‹ค.

œ๋ฐœ‹œ—๋Š” PairProgramming „ •œ‹ค. ”„๋กœธ๋ž˜๋ฐ€ TestFirstProgramming(TestDrivenDevelopment) œผ๋กœ„œ, UnitTest Code๋ฅผ ๋จผ € ž‘„•œ ๋’ค ๋ฉ”ฝ”๋“œ๋ฅผ ž‘„•˜๋Š” ๋ฐฉ‹„ •œ‹ค. UnitTest Code -> Coding -> Refactoring „ ๋ฐ˜๋ณต œผ๋กœ •œ‹ค. ด๋•Œ Customer ๋Š” ŠคŠค๋กœ˜๋Š” œ๋ฐœž™€ ฐ™AcceptanceTest ๋ฅผ ž‘„•œ‹ค. UnitTest ™€ AcceptanceTest ๋กœ„œ •ด๋‹น ๋ชจ๋“ˆ˜ …ŒŠคŠธ๋ฅผ •˜๋ฉฐ, •ด๋‹น Task๋ฅผ ™„๋ฃŒ๋˜ , UnitTest๋“ค„ ๋ชจ๋‘ †ตณผ•˜๋ฉด Integration (ContinuousIntegration) „, AcceptanceTest ๋ฅผ †ตณผ•˜๋ฉด Release๋ฅผ •˜ฒŒ ๋œ‹ค. Refactoring ณผ UnitTest, CodingStandard ๋Š” CollectiveOwnership „ ฐ€๋Šฅ•˜ฒŒ •œ‹ค.

ธ๋ฆฌ•˜—ฌ ฐ Wiki:EngineeringTask๋“คตฌ˜„๋˜ , ถ œผ๋กœ UserStory ˜ Story๋“คด ๋ชจ๋‘ „–‰๋˜๋ฉด Mission Complete. (•„.. –ด œ Avalon ˜ ˜–ฅฐ€. --;)

XP ˜ ฃผš” œ๋…๋“ค

  • On-site customer: ฐ™€ ž‘—…‹ค ๋‚ด—„œ ”„๋กœธ๋ž˜๋จธ™€ ปคŠค„ฐ๋จธฐ€ –ธ œ๋“ ง€ ๋Œ€™”•  ˆ˜ žˆ๋„๋ก ๋ณดžฅ•œ‹ค.
  • UserStory: ‚ฌšฉž ด€ —„œ ‹œŠค…œ˜ –‰œ„— ๋Œ€•œ „๋žต•œ „œˆ 
  • AcceptanceTest: ‚ฌšฉž ด€ —„œ •ด๋‹ž‘—…‚ฐœ๋ฌผ œ๋Œ€๋กœ ๋Œ•„ฐ€๋Š”ง€ ™••  ˆ˜ žˆ๋Š” …ŒŠคŠธ.
  • ThePlanningGame: œ๋ฐœž๋Š” UserStory๋“ค— ๋Œ€•„œ ตฌ˜„, ˜ˆธก, ง€‹œ๋“ค— ๋Œ€•† ๋ก •œ‹ค.
  • UnitTest: ๋ชจ๋“  ด๋ž˜Šค๋“ค— ๋Œ€•œ ž๋™™”๋œ …ŒŠคŠธ ฝ”๋“œ๋“ค.
  • TestDrivenDevelopment : Programming By Intention. ”„๋กœธ๋ž˜๋จธ˜ ˜๋„๋ฅผ ‘œ˜„•˜๋Š” …ŒŠคŠธฝ”๋“œ๋ฅผ ๋จผ € ž‘„•œ‹ค. ธ๋ ‡ฒŒ •œผ๋กœ„œ‹ˆœ•œ ๋””žœ ๋„๋˜–ด„‹ค. (with Refactoring)
  • Refactoring : ฝ”๋“œ๋ฅผ –ฅƒ‹œ‚คธฐ œ„•œ ”„๋กœ„Šค
  • SimpleDesign
  • PairProgramming: ”„๋กœธ๋žจฝ”๋“œ๋Š” ๋‘๋ช… (driver, partner)•˜๋‚˜˜ ปด“จ„—„œ ž‘„•œ‹ค.
  • SpikeSolution: ฃผ–ด„ ๋ฌธ œ— ๋Œ€•œ ตฌ˜„˜ ๋‚œด๋„๋ฅผ ˜ˆธก•˜ธฐ œ„•œ ž‘€ ‹—˜ ”„๋กœธ๋ž˜๋ฐ.
  • CollectiveOwnership: ๋ˆ„ตฌ๋“ ง€ –ด๋– •œ ˜ค๋ธŒ Šธฑด    ˆ˜ žˆ๋Š” ถŒ๋ฆฌ๋ฅผ ฐ€„‹ค.
  • CodingStandard: CollectiveOwnership „ œ„•œ. ๋ˆ„ตฌ๋‚˜ ••˜ธฐ ‰ฝ๋„๋ก ฝ”๋”ฉŠคƒ€‘œค€˜ „ •.
  • ContinuousIntegration: ๋งคผ ๋˜๋Š” ˆ˜‹œ๋กœ  „ฒด ‹œŠค…œ— ๋Œ€•œ building ณผ testing„ ˆ˜–‰•œ‹ค.
  • Metaphor : Object Naming ณผ ”„๋กœธ๋žจ˜ •ด๋‹ˆ˜–‰— ๋Œ€•œ ปค๋ฎค๋‹ˆผ€…˜˜ ฐ€ด๋“œ —ญ• „ •„ œ๋…˜  •˜.
  • Forty-hour week: ง€œ ‹‹ € ‹ˆ˜๋ฅผ ๋งŒ๋“ค–ด๋‚ธ๋‹ค. ฐ€๋Šฅ•˜๋ฉด ดˆณผผ๋ฌด๋ฅผ ”ผ•œ‹ค.

ด€๋ ‚ฌŠธ




œ„˜  „ฒด ธ๋ฆผ„ •œ๋ฒˆ  •๋ฆฌ•ด ๋ณด  ‹–ด„œ ถ”ฐ€•
 ˜  ‹œผ๋ฉด ๋งˆŒ๋Œ€๋กœ  ˜„š”.
ธ๋ฆฌ ‹ค๋ฅธ ฒƒ๋„ ข€ ˜ฌ๋ ค๋ด…‹œ‹ค.

DeleteMe) งˆ๋ฌธ— ๋Œ€•„œ๋Š” Metaphor ๋กœ ˜ฒผŠต๋‹ˆ๋‹ค. ธ๋ฆฌ  งˆ๋ฌธ„ •˜‹ค๋•Œ๋Š” ‹ค๋ช…œผ๋กœ ๋กœ•ฃผ‹œธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค. (‚ฌ๋žŒ๋“คด 203.244.197.254 ๋‹˜ —ฒŒ ๋‹•˜ธฐ—” ข€ ƒ•˜ž๋‚˜š”~) --1002


...—ฌธฐ—„œ˜ XP ™€ ด€๋ จ๋œ ธ€๋“ค˜ ฒฝšฐ๋„ XperDotOrg ชฝœผ๋กœ ˜ธฐ๋Š”ฑด –ด๋–จนŒ ถ๋ฆฌ. (Interwiki ๋กœ ˜ธฐ , ZP —„œ๋Š” ZP ๋‚ด˜ † ๋ก œผ๋กœ ๋Œ€‹ •  ˆ˜ žˆ„๋“ฏ. ž๋ฃŒฐ€ –ด๋””— žˆ๋А๋ƒ๋Š” ธ๋ฆฌ ‘š”•˜ง€ •Š„ ฒƒด๋‹ˆ. XperDotOrg ฐ€ ƒšฉ‚ฌŠธ๋‚˜ CUG ฐ€ ๋˜๋Š”ฒŒ •„‹Œƒ) ‚ฌ๋žŒ๋“ค ˜ฒฌ€? --1002
Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:23:15
Processing time 0.0248 sec