# সফটয়্যার ইঞ্জিনিয়ারিং: ব্যবহারিক আঙ্গিক-৪

> My thoughts on Software Engineering's practical aspects.

Published: 2012-11-28

**প্রজেক্ট ঝুঁকি**

এই পর্বে আমরা দেখবো একটা প্রজেক্ট করতে গেলে সাধারনত কি কি ঝুঁকিতে পড়তে হয় এবং সমস্যা সমাধানের জন্য আমাদের কি কি করতে হবে। প্রজেক্ট চলাকালে যে কোন সমস্যা দ্রুত ধরতে পারা এবং তা সমাধানের জন্য দ্রুত ব্যবস্থা নেয়া অত্যন্ত গুরুত্বপূর্ণ।

**ঝুঁকি:** আপনি হয়তো প্রজেক্ট রিকোয়ারমেন্ট ভালভাবে বুঝতে পারেন নি এবং ভুল প্রোডাক্ট তৈরী করে সময় নষ্ট করছেন।

**সমাধান:** দ্রুত এবং নিয়মিত বিরতিতে প্রজেক্ট তদারক করা খুবই গুরুত্বপূর্ণ। প্রথমেই উচিৎ ক্লায়েন্টের/সুপারভাইজারের কাছ থেকে প্রজেক্ট রিকোয়ারমেন্ট ভালভাবে বুঝে নেয়া এবং টিমের প্রত্যেক সদস্যকে এর একটি করে কপি দেয়া। এক্ষেত্রে ইউএমএল ডায়াগ্রাম ব্যবহার করলে সবচেয়ে ভাল ফল পাওয়া যায়। টিমের কোন সদস্য কোন কাজ করবে তা প্রথমেই নিশ্চিত করে নেয়া উচিৎ। কোন ধরনের ধরনের দ্বিমত থাকলে সুপারভাইজারের সাথে কথা বলে দ্বিধা দূর করে নেয়া উচিৎ। আর প্রজেক্ট যদি সরাসরি আপনার তত্ত্বাবধানে পরিচালিত হয় তাহলে টিমের প্রত্যেক সদস্যকে প্রজেক্টের খুটিনাটি বুঝিয়ে দেয়া আপনার দায়িত্ব।

**ঝুঁকি:** কোন কোন গ্রুপ মেম্বার হয়তো আশানুরূপ কাজের আউটপুট দিতে পারছে না বা প্রজেক্টে কাজ করা অন্যান্য সদস্যদের সাথে ভাল ব্যবহার করছে না।

**সমাধান:** এ ব্যাপারে শুরুতেই ব্যবস্থা নেয়া উচিৎ এবং অভিযুক্ত সদস্যকে জানিয়ে দেয়া উচিৎ যে তার ব্যবহার ঠিক হচ্ছে না। প্রত্যেককে শুধুমাত্র তাদের উপর অর্পিত দায়িত্বই পালন করার কথা মনে করিয়ে দেয়া উচিৎ। সবচেয়ে ভাল হয় গুগলডক্সে একটা স্পেডশিট তৈরী করা সেখানে সবার দায়িত্ব দিয়ে দেয়া এবং সেটা নিয়মিত মূল্যায়ন করা। সবার সাথে স্পেডশিটটি শেয়ার করলেও ভাল হয়। তবে মূল্যায়ন সবার সাথে শেয়ার করা উচিৎ না।

**ঝুঁকি:** কিছু সদস্যের হয়তো প্রজেক্টে কাজ করার জন্য প্রয়োজনীয় দক্ষতা নেই। বিশেষ করে স্টুডেন্ট প্রজেক্টগুলো করার ক্ষেত্রে এই সমস্যায় প্রায়সই পড়তে হয়।

**সমাধান:** যদিও এক্সটার্নাল রিসোর্স যেমন- বই, টিউটোরিয়াল ইত্যাদি স্কীল তৈরীতে খুব সাহায্য করে তবে ব্যবহারিক কাজ করার ক্ষেত্রে গ্রুপে কাজ করলে এক্ষেত্রে আরো বেশি সুবিধা পাওয়া যায়। টিমের দক্ষ সদস্যদের উচিৎ নবীশদের সাহায্য করা। এক্ষেত্রে পেয়ার প্রোগ্রামিং মেথড ব্যবহার করলে খুব ভাল ফল পাওয়া যায়।

**ঝুঁকি:** প্রজেক্টের সম্পূর্ণ টিমকে যদি আলাদা আলাদা সাব-গ্রুপে ভাগ করে কাজ করা যায় তবে অনেক ভাল ফলাফল পাওয়া যায়। তবে অনেক সময়ই একটি সাব-গ্রুপ কাজ খারাপ করলে পুরো প্রজেক্টে এর খারাপ প্রভাব পড়ে।

**সমাধান:** সাব-গ্রুপ তৈরী করার সময় স্কীল, কমিটমেন্ট এ সূচকগুলোর দিকে খেয়াল রেখে ব্যালেন্স দল তৈরী করা উচিৎ। এছাড়া ক্রস টেস্টিং(এক গ্রুপের কাজ অন্য গ্রুপের দ্বারা মূল্যায়ন) এক্ষেত্রে খুব ভাল কাজ করে এবং সাব-গ্রুপগুলোর মধ্যে একটা প্রতিযোগীতার মনোভাব তৈরী করে।

**ঝুঁকি:** স্টুডেন্ট প্রজেক্টগুলোর ক্ষেত্রে একটা কমন সমস্যা হচ্ছে এর নির্দিষ্ট ডেডলাইনের মধ্যে কাজ শেষ করতে না পারা।

**সমাধান:** প্রথম থেকে সাবধান থাকলে ডেডলাইন ওভারশুটিং এড়ানো যায়। একটা ভাল পদ্ধতি হচ্ছে পুরো প্রজেক্টকে ছোট ছোট অংশে ভাগ করে প্রত্যেকটার জন্য আলাদা আলাদা ডেডলাইন তৈরী করে কাজ করা।

**ঝুঁকি:** প্রজেক্ট করার সময় অনেকসময়ই নানা আনএক্সপেক্টেড ডিলে হয়ে যায়, যেমন কোন সদস্য হঠাৎ করে অসুস্থ হয়ে যাওয়া, কোন সদস্য টিম হতে বেরিয়ে যাওয়া ইত্যাদি।

**সমাধান:** কখনোই কোন একজন সদস্যদের উপর অনেক বেশি নির্ভরশীল হওয়া উচিৎ না। এছাড়া বাফার টাইমিং ব্যবহার করা উচিৎ অর্থাৎ, প্রজেক্টের প্রত্যেকটা অংশের কাজ শেষ করতে যে সময় লাগবে তার চেয়ে কিছুটা বেশি সময় হাতে রাখা।

**ঝুঁকি:** অনেক সময়ই যে সময়ে কাজ শেষ করা যাবে বলে ধারনা করা হয়েছিল, ইচ্ছা সত্ত্বেও সে সময়ে কাজ শেষ করা যায় না।

**সমাধান:** প্রজেক্টের অপরিচিত(Unfamiliar) অংশগুলোর কাজ প্রথমেই করা উচিৎ। কঠিন অংশের কাজ শুরুতেই করে ফেলা উচিৎ। বলা হয়ে থাকে যদি অনেক খাবার একসঙ্গে খেতে হয় তাহলে বিদঘুটে খাবারগুলোই প্রথমে খেয়ে নেয়া উচিৎ। এছাড়া একই ধরনের কাজগুলো একসঙ্গে করলে সময়ের সাশ্রয় হয়।
