სხვაობა ექსტრემალურ პროგრამირებასა და SCRUM-ს შორის

სხვაობა ექსტრემალურ პროგრამირებასა და SCRUM-ს შორის
სხვაობა ექსტრემალურ პროგრამირებასა და SCRUM-ს შორის

ვიდეო: სხვაობა ექსტრემალურ პროგრამირებასა და SCRUM-ს შორის

ვიდეო: სხვაობა ექსტრემალურ პროგრამირებასა და SCRUM-ს შორის
ვიდეო: Обзор Motorola Xoom 2024, ნოემბერი
Anonim

ექსტრემალური პროგრამირება SCRUM-ის წინააღმდეგ | XP vs SCRUM

წლების განმავლობაში გამოიყენებოდა პროგრამული უზრუნველყოფის დამუშავების სხვადასხვა მეთოდოლოგია, როგორიცაა Waterfall განვითარების მეთოდი, V-Model, RUP და რამდენიმე სხვა წრფივი, განმეორებადი და კომბინირებული ხაზოვანი-იტერაციული მეთოდი. Agile მოდელი (უფრო სწორად, მეთოდოლოგიების ჯგუფი) არის უფრო უახლესი პროგრამული უზრუნველყოფის განვითარების მოდელი, რომელიც დანერგილია Agile მანიფესტის მიერ იმ ხარვეზების აღმოსაფხვრელად, რომლებიც აღმოჩენილია პროგრამული უზრუნველყოფის განვითარების ტრადიციულ მეთოდოლოგიაში.

Agile მეთოდები ეფუძნება განმეორებით განვითარებას და იყენებს უკუკავშირს მომხმარებლებისგან, როგორც ძირითადი კონტროლის მექანიზმი. Agile შეიძლება ეწოდოს ადამიანებზე ორიენტირებული მიდგომას, ვიდრე ტრადიციულ მეთოდებს. Agile მოდელი აწვდის პროდუქტის სამუშაო ვერსიას ძალიან ადრე, სისტემის დაშლით ძალიან მცირე და მართვად ქვენაწილებად, რათა მომხმარებელმა ადრევე გააცნობიეროს ზოგიერთი სარგებელი. Agile-ის ტესტირების ციკლის დრო შედარებით მოკლეა ტრადიციულ მეთოდებთან შედარებით, რადგან ტესტირება ხდება განვითარების პარალელურად. ყველა ამ უპირატესობის გამო, Agile მეთოდებს უპირატესობა ენიჭება ტრადიციულ მეთოდოლოგიებთან შედარებით. Scrum და Extreme პროგრამირება Agile მეთოდების ორი ყველაზე პოპულარული ვარიაციაა.

რა არის SCRUM?

როგორც ზემოთ აღინიშნა, SCRUM არის ინკრემენტული და განმეორებითი პროექტის მართვის პროცესი, რომელიც მიეკუთვნება Agile მეთოდების ოჯახს. SCRUM ეფუძნება მაღალი პრიორიტეტის მინიჭებას მომხმარებელთა მონაწილეობაზე განვითარების ციკლის დასაწყისში. ის რეკომენდაციას უწევს მომხმარებლის მიერ ტესტირების ჩართვას რაც შეიძლება ადრე და ხშირად. ტესტირება კეთდება თითოეულ მომენტში, როდესაც ხელმისაწვდომი გახდება სტაბილური ვერსია. SCRUM-ის საფუძველი ეფუძნება ტესტირების დაწყებას პროექტის დასაწყისიდან და გაგრძელდება პროექტის ბოლომდე.

SCRUM-ის ძირითადი მნიშვნელობა არის „ხარისხი გუნდის პასუხისმგებლობაა“, რაც ხაზს უსვამს, რომ პროგრამული უზრუნველყოფის ხარისხზე პასუხისმგებელია მთელი გუნდი (არა მხოლოდ ტესტირების ჯგუფი). SCRUM-ის კიდევ ერთი მნიშვნელოვანი ასპექტია პროგრამული უზრუნველყოფის დაშლა მცირე მართვად ნაწილებად და მათი მომხმარებლისთვის ძალიან სწრაფად მიწოდება. სამუშაო პროდუქტის მიწოდება უაღრესად მნიშვნელოვანია. შემდეგ გუნდი აგრძელებს პროგრამული უზრუნველყოფის გაუმჯობესებას და განუწყვეტლივ მიწოდებას ყოველ მთავარ ნაბიჯზე. ეს მიიღწევა გამოშვების ძალიან მოკლე ციკლებით (ე.წ. სპრინტები) და ყოველი ციკლის ბოლოს გაუმჯობესებისთვის გამოხმაურების მიღებით.

SCRUM განსაზღვრავს რამდენიმე ძირითად როლს განვითარების გუნდის შეუფერხებლად მუშაობისთვის. ისინი არიან პროდუქტის მფლობელი (რომელიც წარმოადგენს მომხმარებელს და ინახავს პროდუქტის ნარჩენებს), Scrum master (რომელიც მოქმედებს როგორც გუნდის ორგანიზატორი და კოორდინატორი სკრამის შეხვედრების ჩატარებით, სპრინტის ბექლოგის შენარჩუნებით და ჩარტების ჩაწერით) და გუნდის სხვა წევრები.გუნდი შეიძლება შედგებოდეს ტრადიციული როლებისგან, მაგრამ ძირითადად ისინი თვითმმართველ გუნდებს წარმოადგენენ. Scrum-ის მთავარი არტეფაქტებია პროდუქტის ბექლოგ/გამოშვების ჩანაწერი (სურვილების სია), სპრინტის ჩანაწერები/დეფექტების ჩანაწერები (დავალებები ყოველ გამეორებაში), ჩარტების ჩაწერა (დარჩენილი სამუშაო თარიღთან შედარებით). SCRUM-ის ძირითადი ცერემონიებია პროდუქტის შეკრება, სპრინტის შეხვედრა და რეტროსპექტივის შეხვედრა.

რა არის ექსტრემალური პროგრამირება?

ექსტრემალური პროგრამირება (შემოკლებით XP) არის პროგრამული უზრუნველყოფის განვითარების მეთოდოლოგია, რომელიც მიეკუთვნება Agile მოდელს. ექსტრემალური პროგრამირება ახორციელებს ფაზებს ძალიან მცირე უწყვეტი ნაბიჯებით (ტრადიციულ მეთოდებთან შედარებით). პირველი გავლა, რომელსაც მხოლოდ ერთი დღე ან კვირა სჭირდება, განზრახ არასრულია. პროგრამული უზრუნველყოფის შემუშავების კონკრეტული მიზნების უზრუნველსაყოფად, დასაწყისში იწერება ავტომატური ტესტები. შემდეგ დეველოპერები აკეთებენ კოდირებას. აქცენტი კეთდება პროგრამირების წყვილებში. მას შემდეგ რაც ყველა ტესტი გაივლის, კოდირება დასრულებულად ითვლება. შემდეგი ეტაპი არის დიზაინი და არქიტექტურა, რომელიც ეხება კოდის რეფაქტორირებას პროგრამისტების იმავე ნაკრების მიერ.ამ ფაზის დასასრულს არასრული (მაგრამ ფუნქციონალური) პროდუქტი წარედგინება დაინტერესებულ მხარეებს. ამის შემდეგ იწყება შემდეგი ფაზა (რომელიც ფოკუსირებულია ყველაზე მნიშვნელოვანი ფუნქციების შემდეგ ნაკრებზე).

რა განსხვავებაა ექსტრემალური პროგრამირებასა და SCRUM-ს შორის?

ექსტრემალური პროგრამირება და SCRUM გასაგებია, რომ ძალიან მსგავსი და მორგებული მეთოდოლოგიაა. თუმცა, ამ ორ მეთოდს შორის არის დახვეწილი, მაგრამ მნიშვნელოვანი განსხვავებები. SCRUM სპრინტები გრძელდება 2-4 კვირა, ხოლო ტიპიური XP გამეორება უფრო მოკლეა (ბოლო 1-2 კვირა). ჩვეულებრივ, SCRUM გუნდები არ უშვებენ ცვლილებებს სპრინტებში, მაგრამ XP გუნდები ოდნავ უფრო მოქნილები არიან ცვლილებების გამეორებაში. მაგალითად, სპრინტის დაგეგმვის შემდეგ, ამ სპრინტის ელემენტების ნაკრები უცვლელი რჩება, მაგრამ ფუნქცია, რომელზეც არ დაწყებულა მუშაობა, ნებისმიერ დროს შეიძლება შეიცვალოს XP-ის რომელიმე სხვა ფუნქციასთან. კიდევ ერთი განსხვავება XP-სა და SCRUM-ს შორის არის ის, რომ XP-ში შემუშავებული ფუნქციების თანმიმდევრობა მკაცრად პრიორიტეტულია მომხმარებლის მიერ, ხოლო SCRUM გუნდი წყვეტს ნივთების თანმიმდევრობას (მას შემდეგ, რაც პროდუქტის ნარჩენები პრიორიტეტდება SCRUM-ის პროდუქტის მფლობელის მიერ).

XP-ისგან განსხვავებით, SCRUM არ აწესებს რაიმე საინჟინრო პრაქტიკას. მაგალითად, XP ამოძრავებს პრაქტიკებს, როგორიცაა ტესტზე ორიენტირებული განვითარება (TDD), წყვილების პროგრამირება, რეფაქტორირება და ა.შ. თუმცა, ზოგიერთი მიიჩნევს, რომ თვითორგანიზებულ გუნდებზე პრაქტიკის დაწესებამ შეიძლება უარყოფითი გავლენა მოახდინოს და ეს შეიძლება ჩაითვალოს XP-ის ნაკლოვანება. ექსტრემალური პროგრამირების კიდევ ერთი ნაკლი არის ის, რომ გამოუცდელმა გუნდებმა შეიძლება გადააკეთონ რაიმე ავტომატური ტესტების ან TDD (ან უბრალოდ ჰაკერების) გარეშე. ამიტომ, ზოგიერთი ვარაუდობს, რომ SCRUM უკეთესია თვალის დახუჭვისთვის (რადგან მას მოაქვს დიდი გაუმჯობესება უბრალოდ დროის ყუთში გამეორებების საშუალებით) და XP შესაფერისია ოდნავ მოწიფული გუნდებისთვის, რომლებმაც აღმოაჩინეს ზემოთ აღნიშნული პრაქტიკის მნიშვნელობა (ვიდრე გამოიყენონ ისინი, რადგან მათ სთხოვეს. ამის გაკეთება).

გირჩევთ: