अजाईल मेथडॉलॉजी -भाग ७

ही लेखमालिका अतिथी लेखक श्री. प्रशांत पुंड खास टेक मराठीसाठी लिहित आहेत. प्रशांत हे सॉफ्टवेअर मेथडॉलॉजीज, SDLC या संदर्भात कन्सलटंट आणि मेंटर म्हणून काम करतात. आतापर्यंतच्या त्यांच्या २५ वर्षाच्या करीयरमधे त्यांनी अनेक कंपन्यांमधे एक्झिक्युटीव पदावर जबाबदारी पार पाडली आहे. आजवर त्यांनी ७५ हून अधिक कंपन्यांमधे ४०० हून अधिक ट्रेनिंग सेशन्स घेतली आहेत. सध्या अजाईलसॉफ्ट मेथडॉलॉजीज ही स्वत:ची कंपनी स्थापन करून CEO या पदावर कार्यरत आहेत. अजाईलसॉफ्ट मेथडॉलॉजीज ही कंपनी सॉफ्टवेअर मेथडॉलॉजीज, आय. टी. सिक्युरीटी, SDLC या संदर्भात ट्रेनिंग व कन्सलटन्सी या सेवा पुरविते.

या लेखमालेतील मागील लेख आपण येथे वाचू शकता

अजाईल मेथडॉलॉजी – भाग १

अजाईल मेथडॉलॉजी – भाग २

अजाईल मेथडॉलॉजी – भाग ३

अजाईल मेथडॉलॉजी – भाग ४

अजाईल मेथडॉलॉजी – भाग -५

अजाईल मेथडॉलॉजी – भाग -६

स्क्रममधील स्प्रिंटबद्दल चर्चा केल्यानंतर आता प्रत्येक स्प्रिंटच्या शेवटी काय घडतं ते पाहू.

स्क्रम ही iterative आणि incremental पद्धत असल्यामुळे प्रत्येक स्प्रिंटच्या शेवटी Product owner किंवा customer ला अभिप्रेत असलेली business value मिळणं अपेक्षित असतं. ही business value त्या स्प्रिंटमधे काम करून तयार केलेल्या product increment द्वारा दाखविली जाते. Product ownerआणि इतर सहभागी घटक(stakeholder) यांना हे product increment दाखविण्याचा कार्यक्रम म्हणजे Sprint review meeting!

स्प्रिंट रिव्ह्यु मिटींग:

मुख्य उद्देश हा product increment कशा प्रकारे चालतं हे दाखविणे व त्यावर प्रतिक्रिया घेणे, हा असतो. सर्व stakeholders या मिटींगमधे सहभागी होतात.  पण power point slides, भाषणबाजी, हारतुरे यांना यामधे मज्जाव असतो.

“या स्प्रिंटमधे आम्ही हे develop केलं आहे, ते असं चालतं” हे demonstrate करण्याचं काम टीम  करते. यावर stakeholders प्रतिक्रिया देतात. काही features मधे बदल करणे Business value नुसार मान्य करण्याजोगे असेल तर product owner असे बदल Product backlog मध्ये प्राधान्यक्रमानुसार करतो.

स्प्रिंट रिट्रोस्पेक्टिव्ह:

स्प्रिंट रिव्ह्यू झाल्यानंतर product owner, scrum master आणि team असा ’आतला’ गट झालेल्या स्प्रिंटची पडताळणी करण्यास बसतो. याला स्प्रिंट रिट्रोस्पेक्टिव्ह असे म्हणतात. आपण कोणत्या गोष्टी योग्य प्रकारे करतो आहोत, कोणत्या गोष्टींमध्ये सकारात्मक बदल अपेक्षित आहेत, याचा उहापोह येथे केला जातो. प्रत्येकाने यामध्ये स्वत:चे मत नोंदविणे, सुचना करणे अपेक्षित असते. पुढच्या स्प्रिंटमध्ये, सदर सूचनांपैकी कोणत्या अमलांत आणायच्या, हेदेखील ठरते. याची अंमलबजावणी खरोखरच नंतरच्या स्प्रिंटमध्ये होईल, ही जबाबदारी Scrum Master वर असते.

स्प्रिंट रिट्रोस्पेक्टिव्ह बरोबरच sprint cycle संपतं आणि मंडळी पुढच्या स्प्रिंटच्या sprint planning meeting साठी तयार होतात.

आपण पाह्यलं की स्र्कममध्ये फक्त तीन roles आहेत. तसेच sprint planning meeting, daily scrum, sprint review आणि sprint retrospective अशा activities किंवा ceremonies आहेत. Product backlog, Sprint backlog, Burndown chart अशा artifacts आहेत. या सर्वांनी मिळून बनलेलं हे एक framework आहे. Development activities कशा करायच्या याबद्दल काहीही दिलेलं नाही. यामुळे बर्‍याच वेळा test driven development, re-factoring, user’s stories अशा Extreme Programming च्या कल्पना येथे वापरल्या जातात. Framework implementation मध्ये Engineering practices किंवा development techniques यामध्ये वैविध्य असू शकतं. पण Scrum च्या मूळ गाभ्याला धक्का लागणार नाही याची काळजी घेतली तर फायदा होतो.

या लेखमालेत ’अजाईल मेथडॉलॉजी’ ही काय भानगड आहे, याचं उत्तर संक्षिप्त स्वरूपात देण्याचा प्रयत्न केला आहे. या विषयांवर  बरेच साहित्य उपलब्ध आहे; त्याचा वाचकांनी जरूर लाभ घ्यावा.

ही लेखामाला ’अजाईल मेथडॉलॉजी’ या विषयाचीओळख करून देणारी  आहे. याविषयी आणखी लेख हवे असल्यास / काही प्रश्न असल्यास आपण खाली comments मध्ये जरूर लिहावे.

श्री. प्रशांत पुंड यांना येथे संपर्क करू शकता –
Linked In: http://www.linkedin.com/pub/dir/Prashant/Pund/
Blog : http://pundprashant.wordpress.com/
E-mail: prashant.pund at agilesoft.in

अजाईल मेथडॉलॉजी -भाग ६

ही लेखमालिका अतिथी लेखक श्री. प्रशांत पुंड खास टेक मराठीसाठी लिहित आहेत. प्रशांत हे सॉफ्टवेअर मेथडॉलॉजीज, SDLC या संदर्भात कन्सलटंट आणि मेंटर म्हणून काम करतात. आतापर्यंतच्या त्यांच्या २५ वर्षाच्या करीयरमधे त्यांनी अनेक कंपन्यांमधे एक्झिक्युटीव पदावर जबाबदारी पार पाडली आहे. आजवर त्यांनी ७५ हून अधिक कंपन्यांमधे ४०० हून अधिक ट्रेनिंग सेशन्स घेतली आहेत. सध्या अजाईलसॉफ्ट मेथडॉलॉजीज ही स्वत:ची कंपनी स्थापन करून CEO या पदावर कार्यरत आहेत. अजाईलसॉफ्ट मेथडॉलॉजीज ही कंपनी सॉफ्टवेअर मेथडॉलॉजीज, आय. टी. सिक्युरीटी, SDLC या संदर्भात ट्रेनिंग व कन्सलटन्सी या सेवा पुरविते.

या लेखमालेतील मागील लेख आपण येथे वाचू शकता-

अजाईल मेथडॉलॉजी – भाग १

अजाईल मेथडॉलॉजी – भाग २

अजाईल मेथडॉलॉजी – भाग ३

अजाईल मेथडॉलॉजी – भाग ४

अजाईल मेथडॉलॉजी – भाग -५

स्क्रमचे cycle :

Scrum Cycle

वरील आकृतीत आपल्याला तीन roles दिसतील, Scrum Master ,Team आणि Product Owner. या roles बद्दल आपण मागल्या लेखामध्ये पाहिलं. आता इतर माहिती घेऊ.

Product Backlog :
आकृतीमध्ये “Product – Backlog” असं एक artifact (deliverable ) दाखवलेलं आहे. Product  Backlog म्हणजे Requirement document. या document मध्ये “Product” पूर्ण होण्यासाठी जी जी features करावी लागतील व जे जे  करावे लागेल ते सर्व दिलेले असते. हा “Product Backlog” product owner ने तयार करायचा असतो.सर्वसाधारण requirement document व “Product Backlog” यामध्ये एक महत्त्वाचा फरक म्हणजे Product Backlog मध्ये सर्व features / requirements या प्राधान्यक्रमाने दिलेल्या असतात. म्हणजे सर्वात जास्त अग्रक्रमाचे feature सर्वात वर व त्या खालोखाल कमी अग्रक्रमाची features मांडली जातात. प्रोजेक्ट चालू असताना जर हा अग्रक्रम बदलावा लागला (Business value प्रमाणे ) तर तसं करण्याचं काम Product owner करतो .

Sprint Planning Meeting :
तर असा हा product backlog , Product owner तयार करून Team पुढे ठेवतो. Team हा product backlog नीट समजून घेते. प्रत्येक feature ची Business value / priority समजून घेते. समजा एखाद्या product backlog मध्ये २५ गोष्टी प्राधान्यक्रमाने मांडल्या आहेत. साहजिकच या २५ गोष्टींमध्ये सगळ्यात वरच्या गोष्टी जास्त महत्त्वाच्या आहेत व त्या आधी develop करायला हव्यात. तर product owner , Scrum master आणि Team ही मंडळी एकत्र बसतात. आता या २५ गोष्टींपैकी किती गोष्टी आता सुरु होणार्‍या iteration मध्ये develop करायच्या याचा निर्णय team घेते. एरवी खरं तर हे project manager ने ठरवलं असत. पण इथे तसं नाही. team निर्णय घेते (Empowered team ). Team ने समजा असं ठरवलं की या iteration मध्ये (Scrum मध्ये iteration ला sprint म्हणतात ). पहिल्या पाच गोष्टी develop करायच्या तर त्या पाच गोष्टींसाठी कोणत्या tasks कराव्या लागतील त्याची यादी team तयार करते. या यादीतील tasks ची team आपापसांत वाटणी करते. ही tasks ची यादी Sprint Backlog मध्ये लिहिली जाते. असा Sprint Backlog तयार झाला की meeting संपते. या meeting ला Sprint Planning meeting असे म्हणतात.

स्प्रिंट:-
Sprint Planning Meeting नंतर Sprint (म्हणजेच iteration )सुरु होते. Sprint चा कालावधी साधारणपणे २ आठवडे ते ४ आठवडे असतो. Team ने Product owner ला commitment दिलेली असते की, २ ते ४ आठवड्यांच्या काळात team ठरलेल्या गोष्टी पूर्ण करून देईल. यासाठी team आपल्या कामाचा रोज आढावा घेते. हा आढावा दैनंदिन scrum meeting मध्ये घेतला जातो. (आता हे काय ? Scrum मध्ये ‘scrum meeting’?  होय , team च्या या रोजच्या meeting ला scrum किंवा daily Scrum म्हणतात.) Team मधील प्रत्येक जण इतर सर्वांना आपल्या कामाबद्दल माहिती देतो. (report करतो.) प्रत्येकजण तीन प्रश्नांची उत्तरे इतर सर्वाना देतो.
१. मी काल काय काम केलं?
२. मी आज काय काम करणार आहे ?
३. माझ्यासमोर काम करताना काय अडचणी आहेत ?
सर्वांनी ही माहिती दिल्याने team मधील प्रत्येकाला कामाची पूर्ण कल्पना येते. Meeting नंतर Sprint Backlog मध्ये झालेल्या कामाची नोंद केली जाते. म्हणजे किती तासांचं काम बाकी राहयाल आहे. हे शोधून काढलं जातं. हे खरंच किती logical वाटत ना! Project साठी किती काम झालं आहे यापेक्षा किती राहयाल आहे हेच महत्त्वाचं असतं. Sprint Backlog मधील राह्यलेल्या कामाच्या तासांची नोंद एका आलेखावरदेखील केली जाते; याला Sprint burn -down  chart म्हणतात.
अशाप्रकारे  प्रत्येक Sprint च्या सुरुवातीला Sprint Planning meeting व Sprint मध्ये दररोज ‘Daily Scrum meeting ‘ होते. Sprint Backlog हे प्रत्येक Sprint साठी input document असतं, व ते आणि burn – down chart पूर्ण sprint च्या काळात update केले जातात.
एक महत्त्वाचा नियम म्हणजे Sprint चालू असताना ठरलेल्या कामामध्ये कोणताही बदल केला जात नाही. Team ने ठरवलेल्या व Product Owner ने sprint च्या सुरुवातीला मान्य  केलेल्या गोष्टीच फक्त develop केल्या जातात. त्यामूळे Team ची एकाग्रता वाढून उत्पादन क्षमताही वाढते. Sprint च्या शेवटी काय होते, ते पुढच्या लेखात पाहू.

श्री. प्रशांत पुंड यांना येथे संपर्क करू शकता –
Linked In: http://www.linkedin.com/pub/dir/Prashant/Pund/
Blog : http://pundprashant.wordpress.com/
E-mail: prashant.pund at agilesoft.in

अजाईल मेथडॉलॉजी -भाग ५

ही लेखमालिका अतिथी लेखक श्री. प्रशांत पुंड खास टेक मराठीसाठी लिहित आहेत. प्रशांत हे सॉफ्टवेअर मेथडॉलॉजीज, SDLC या संदर्भात कन्सलटंट आणि मेंटर म्हणून काम करतात. आतापर्यंतच्या त्यांच्या २५ वर्षाच्या करीयरमधे त्यांनी अनेक कंपन्यांमधे एक्झिक्युटीव पदावर जबाबदारी पार पाडली आहे. आजवर त्यांनी ७५ हून अधिक कंपन्यांमधे ४०० हून अधिक ट्रेनिंग सेशन्स घेतली आहेत. सध्या अजाईलसॉफ्ट मेथडॉलॉजीज ही स्वत:ची कंपनी स्थापन करून CEO या पदावर कार्यरत आहेत. अजाईलसॉफ्ट मेथडॉलॉजीज ही कंपनी सॉफ्टवेअर मेथडॉलॉजीज, आय. टी. सिक्युरीटी, SDLC या संदर्भात ट्रेनिंग व कन्सलटन्सी या सेवा पुरविते.

या लेखमालेतील मागील लेख आपण येथे वाचू शकता-

अजाईल मेथडॉलॉजी – भाग १

अजाईल मेथडॉलॉजी – भाग २

अजाईल मेथडॉलॉजी – भाग ३

अजाईल मेथडॉलॉजी – भाग ४

मागील लेखामध्ये आपण XP या मेथडॉलॉजीतल्या काही महत्त्वाच्या तत्त्वांविषयी चर्चा केली. या लेखामध्ये आपण स्क्रम (Scrum ) या मेथडॉलॉजीविषयी पाहू.
स्क्रम (scrum)
स्क्रम हा कशाचाही short form नाही. हा शब्द रग्बी या खेळातून घेतला आहे , स्क्रमचे एका वाक्यात वर्णन करायचं झालं तर स्क्रम एक Agile Project Management Framework आहे. ज्याप्रमाणे आपल्या Architecture Framework मध्ये काही गोष्टी static (ठरलेल्या) असतात व काही भाग प्रत्येक application नुसार बदलतो, त्याचप्रमाणे या Agile Project Management Framework मधील काही भाग ठरलेला आहे व काही भाग त्या त्या Project /Product / Team / Environment नुसार ठरवण्याचा आहे. उदा. स्क्रममध्ये तीन role दिलेले आहेत; तसंच काही प्रकारच्या meetings ठरलेल्या आहेत. हा static part झाला. परंतु कोणत्याही engineering practices यामध्ये ठरलेल्या नाहीत. XP मध्ये सांगितलेल्या Engineering practices (TDD  , Refactoring वगैरे ) स्क्रममध्ये वापरता येणं शक्य असलं तरी त्या स्क्रमचा भाग नाहीत. म्हणून आपण ढोबळ मानाने याला Agile Project Management Framework म्हणू.
Project Management Framework मध्ये आपल्याला PMI , PRINCE2 वगैरे frameworks माहीत आहेत . ही Frameworks , waterfall किंवा Linear Development शी संलग्न आहेत. Agile सारख्या Iterative आणि Incremental development साठी मात्र स्क्रमसारखं वेगळं framework गरजेचं आहे.
आता आपण स्क्रम बद्दल एक Project Management Framework या दृष्टीकोनातून माहिती घेऊ . कोणतंही Project Management Framework हे who, When, how, where याबद्दल definition देते , त्याप्रमाणे स्क्रम मध्ये सुद्धा Roles , Activities आणि Artifacts दिलेले आहेत.
स्क्रममधील  Roles –
१. स्क्रम मास्टर (Scrum Master ) :
सर्वसाधारण Project मॅनेजरचा role स्क्रममध्ये स्क्रम मास्टर करतो. अर्थात Scrum Master आणि Project Manager यामध्ये बराच फरक आहे. पण आपण इतकं म्हणू शकतो की, scrum master हा Development team चा leader असतो. त्याचं काम Boss चं नसून Mentor किंवा Guide चं आहे. तो team ला बाहेरील disturbances पासून वाचवतो. तो team ची productivity जास्तीत जास्त राहण्यासाठी वातावरण निर्मिती करतो. Agile ची मुलभूत तत्त्वे पाळली जावीत, यासाठी आग्रही असतो.
२. Team :
Traditional Project Management मध्ये (Waterfall Model ) Analyst चं काम झाल्यावर Designers काम करतात , मग हे design developers / programmers ना दिलं जातं , त्यानंतर tester वगैरे . स्क्रम मध्ये ही सगळी मंडळी एकत्र येतात, एकत्र बसतात, एकत्र काम करतात. अशा team ला Cross – Functional Team म्हणतात. दुसरं म्हणजे ही team फक्त ७ +/- २ (५ ते ९ च्या दरम्यान ) इतकी लहान असते. तुह्मी म्हणाल, मोठं project फक्त ५ ते ९ लोकं develop करणार? तसं नाही, size नुसार कदाचित आपल्याला अशा अनेक लहान teams लागतील आणि त्यांच्यात काम वाटून द्यावं लागेल. आणखी एक महत्त्वाचा मुद्दा म्हणजे ही team स्वतःचे निर्णय स्वतः घेते, म्हणजे एका iteration मध्ये (ज्याला स्क्रम मध्ये स्प्रिंट Sprint म्हणतात ) किती functionality develop करायची हे team ठरवते. project च्या यशासाठी जे काही करावे लागते ते सर्व करण्यासाठी जिद्द आणि अधिकार team कडे असतात.
३. Product Owner :
आपण मागील एका लेखामध्ये पाहिलं होतं की Agile Methodology मध्ये ग्राहक (Customer ) प्रत्यक्ष सहभाग घेतो. जर functionalities एकामागोमाग एक develop करायची असेल तर काय आधी व काय नंतर हे ठरवलं पाहिजे. हे कुणी ठरवायचं? जर software develop करण्याचा उद्देश त्यापासून Business value / Returns मिळवणे असेल (नव्हे, तो तसंच असायला हवा ) तर आधी-नंतर हे Business value वर ठरवलं पाहिजे. मग Business value कुणाला नीट समजते? अर्थात Customer ला. स्क्रममध्ये Product Owner हा Customer चं प्रतिनिधित्व करतो. त्याला Business value नीट माहीत असते. तो सर्व functionalities ची प्राधान्यक्रमाने यादी करतो. त्यातूनच team आपलं काम निवडते. ही यादी सतत  प्राधान्यक्रमाने राहील याची काळजी घेण्याची जबाबदारी product owner ची असते.
प्रस्तुत लेखात आपण scrum मध्ये कोणते roles आहेत, हे पाहिलं पण ही मंडळी एकत्रितपणे project कस execute करतात , हे पुढील लेखात पाहू.

श्री. प्रशांत पुंड यांना येथे संपर्क करू शकता –
Linked In: http://www.linkedin.com/pub/dir/Prashant/Pund/
Blog : http://pundprashant.wordpress.com/
E-mail: prashant.pund at agilesoft.in