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

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

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

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

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

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

मागील लेखामधे आपण अजाईलच्या चार मूलभूत तत्वाविषयी जाणून घेतलं. ’अजाईल’ या नावाने ज्या मेथडॉलॉजीज प्रचलीत आहेत, त्या सर्वांमध्ये याच तत्वांचा वापर होतो. अजाईलबद्दल सुरूवातीला ज्याचा अधिक वापर झाला ती पद्धत म्हणजे Extreme Programing किंवा XP. (अर्थात याचा Windows XP शी काही संबंध नाही, हे सांगायला नकोच.) अजाईल मेथडॉलॉजीज मधल्या बहुतेक सर्व technical practices या XP मधूनच आलेल्या आहेत. तुम्हाला प्रश्न पडला असेल की, यात extreme काय आहे; कळेलच..

Extreme Programing (XP):

आपण पाहिलं की Waterfall model वापरून Software Development शिस्तबद्ध करता येते पण त्यात कोणतीही लवचिकता नसते. अशी लवचिकता आणण्यासाठी मग ‘Iterative Development’ ही कल्पना पुढे आली. एका Iteration मध्ये softwareचे एखादे फिचर (feature), एखादी use case तयार करणे व पुढच्या प्रत्येक iteration मध्ये त्यात भर घालत जाणे. XP मध्ये हीच कल्पना अगदी extreme (टोकापर्यंत) नेली आहे. अगदी अल्पकाळाच्या iteration मधून कमीत कमी पण उपयुक्तता मूल्य असणारं software तयार करणे म्हणजे Extreme Programing. हे जर प्रत्यक्षात यशस्वी करायचं असेल तर बरीच पथ्य पाळावी लागतात. XP मध्ये काही आचारपद्धती(practices) सांगितलेल्या आहेत. त्या जर पाळल्या तर आपण आपल्या ग्राहकाला सतत उपयुक्त ठरणारे software देऊ शकतो. थोडक्यात उदाहरण द्यायचं झालं तर log in या functionality बाबत ग्राहकाला उपयुक्तता तेव्हा पटेल जेव्हा ’log in’ या बटनावर क्लिक केल्यावर प्रत्यक्षात log in page दिसेल. log in बद्दल कितीही मोठं document लिहिलं तरी त्याची value काय आहे? XP मध्ये आपण softwareचे असे अनेक उपयुक्त तुकडे ग्राहकाला दाखवत रहातो, ज्यायोगे ग्राहकाला जे, जसं हवं आहे तसं सतत मिळत रहाण्याचा फायदा मिळतो. आता आपण XP च्या १२ आचारपद्धती किंवा १२ सुत्रांपैकी काही महत्वाची सुत्रे समजून घेऊ.

१. On-site customer (ग्राहक developerच्या बरोबर):

आपल्याला प्रत्येक वेळी थोडं थोडं पण उपयुक्त असं software ग्रहकाला द्यायचं आहे. म्हणजे आपल्याला सतत ग्राहकाकडून feedback पण घ्यायचा आहे. ग्राहकाकडून प्रत्येक छोट्या function बद्दल खात्री करून घ्यायची आहे. यावर सर्वोत्तम उपाय म्हणजे ग्राहकानं developer बरोबर हजर असणं. आधीच्या लेखात म्हटल्याप्रमाणे

Team = customer + developers.

तुम्ही म्हणाल, ग्राहक हे मान्य करील का? ग्राहकाचा फायदा असेल तर का नाही करणार? लक्षात ठेवा की या गोष्टी प्रत्यक्ष वापरून झालेल्या आहेत आणि on-site customer ही केवळ पुस्तकी कल्पना नसून प्रत्यक्षात अनेक वेळा, अनेक ठिकाणी वापरलेली आहे.

२.  Test-Driven Development:

थोडीशी विचित्र वाटेल अशी ही पद्धत आहे. नेहमी आपण code लिहीतो आणि तो टेस्ट करतो. Test-Driven Development मध्ये मात्र आपण test-case आधी लिहितो आणि मग test-case pass होण्यासाठी code लिहितो. थोडसं उलटं वाटतं पण त्यामुळे जेवढा पाहिजे तेवढाच आणि योग्य code लिहिला जातो.

३. Pair Programming

दोन programmer एकाच कोडवर काम करतात. (हे काय? म्हणजे double efforts!) म्हणजे एक programmer code लिहितो आणि दुसरा सतत review करीत  असतो . थोड्यावेळाने review करणारा code लिहायला (type करायला )लागतो आणि आधीचा लिहिणारा review करायला लागतो. यानं code मध्ये defects राहत नाहीत, असा अनुभव आहे. प्रथमदर्शनी जरी हे double effert चं काम वाटल तरी defect काढायला जो वेळ जातो, त्यापेक्षा हे परवडतं.

४.  Re-factoring

प्रत्येकवेळी जर थोडासा code तयार करणार असू तर तो सतत आधीच्या code शी integrate करायला हवा. शिवाय तो असा लिहायला हवा की नवीन code त्यामध्ये सहज टाकता येईल. म्हणजे आपला code कोणत्याही क्षणी flexible,  scalable असा पाहिजे. Refactoring म्हणजे code चं function (किंवा interface) न बदलता तो असा सोपा करणे की त्यात बदल सहजपणे सामावू शकतील. हे काम XP मध्ये अगदी सतत करावं लागतं.
या लेखात मी फक्त महत्त्वाच्या चार practices विषयी लिहीलं आहे. इतरही practices  खूप महत्त्वाच्या आहेत. जास्त माहिती हवी असल्यास वाचकांनी ‘Extreme Programming Explained‘ हे kent Beck चं पुस्तक अवश्य वाचावं.

XP Cycle

XP मध्ये Customer हा developers ना UserStory (सध्या आपण याचा अर्थ User ला हवी असलेली लहानशी functionality असा घेऊ) देतो. अशा अनेक User Stories त्याने लिहिलेल्या असतात. अनेक User Stories ची मिळून एक मोठी functionality होऊ शकते. एका short development cycle (iteration) मध्ये किती User stories develop करता येतील हे developers ठरवतात. User stories बरोबर त्यांच्या test cases देखील developers ना मिळतात. अशा user stories मग developers एकत्रपणे काम करून आणि वर उल्लेखलेली सूत्रे (practices) वापरून तयार करतात.
अशी अनेक cycles होतात, ज्या व्दारे software हे iterative व incremental मार्गाने दिले जाते. आपल्या लक्षात आलाच असेल की XP मध्ये documentation पेक्षा working software, Negotiation पेक्षा customer collaboration इत्यादी Agile च्या मूळ तत्त्वांचा वापर केलेला आहे.

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

One thought on “अजाईल मेथडॉलॉजी – भाग ४

Leave a comment

Your email address will not be published. Required fields are marked *

Enable Google Transliteration.(To type in English, press Ctrl+g)