উত্পাদনশীলতা এবং এসএলওসি সম্পর্কে
এসএলওসি নিয়ে সমস্যা
এসএলওসি মেট্রিকের সমস্যাটি হ'ল এটি বিবেচনায় না নিয়ে লিখিত কোডের পরিমাণের একটি অনুমিতি পরিমাপ করে:
- কোডটির গুণমান (অর্থাত্ প্রতি 100 এসএলওসি-র জন্য কি আপনার বাগের কারণে আরও 90 এসএলওসি যুক্ত করতে হবে তবে আপনার কোডটি সরবরাহ করার মুহুর্তে আপনি জানেন না?)
- কোড সহ লক্ষ্যগুলি পৌঁছেছে (যেমন 10 কে এসএলওসি সমস্ত প্রত্যাশিত ব্যবহারের কেস বা ব্যবহারকারীর গল্পগুলি পরিচালনা করে? বা কেবল একটি ক্ষুদ্র উপসেট?)
- কোডটির রক্ষণাবেক্ষণযোগ্যতা (অর্থাৎ প্রত্যাশিত বিবর্তনের প্রয়োজনীয়তার সাথে কোডটি সামঞ্জস্য করার জন্য আপনাকে কি 1% বা 50% আরও কোড যুক্ত করতে হবে?)।
অন্যথায় বলা হয়েছে, প্রচুর অনুলিপি-আটকানো অংশগুলির সাথে ত্রুটিবিহীন অনাকাঙ্ক্ষিত স্প্যাগেটি কোডের উত্পাদন সাবধানতার সাথে ইঞ্জিনিয়ারড পুনরায় ব্যবহারযোগ্য কোডের চেয়ে বেশি উত্পাদনশীল হিসাবে বিবেচিত হবে।
সুতরাং এসএলওসি উত্পাদনশীলতা পরিমাপের সর্বোত্তম উপায় নয়।
আমরা কোন উত্পাদনশীলতা বিবেচনা করছি?
উত্পাদনশীলতা একটি প্রক্রিয়া জন্য পরিমাপ করা হয়। সুতরাং এসএলওসি একমাত্র কোডিং প্রক্রিয়াটির জন্য একদম বৈধ সূচক হতে পারে।
উদাহরণস্বরূপ, আপনি দুর্বল প্রয়োজনীয়তাগুলি ভুল বুঝে, সফটওয়্যারটি তৈরি করতে পাঁচ মাস ব্যয় করেন, ব্যবহারকারীর কাছে এটি দেখান, এটি স্পষ্টত ভুল এবং এটি স্ক্র্যাচ থেকে ভাল লেখার জন্য আরও 5 মাস ব্যয় করেন, আপনার এসএলওসি তে একই উত্পাদনশীলতা থাকবে / মাস, যে কোনও দল প্রথমবারের মতো কোড লিখছে, উদাহরণস্বরূপ, কারণ তারা একটি চতুর প্রক্রিয়া ব্যবহার করেছে যা ঘন ঘন ফিড-ব্যাকের মাধ্যমে ভুল বোঝাবুঝি হ্রাস করে। এই আপাত সমতুল্য উত্পাদনশীলতা বিশাল সমস্যাগুলি আড়াল করে।
সুতরাং, সফ্টওয়্যার বিকাশের উত্পাদনশীলতা পরিমাপ করার জন্য প্রয়োজনীয়তা বিশ্লেষণ, কী কোড করবেন তা ডিজাইনিং, কোডিং, পরীক্ষা, ডিবাগিং এবং ব্যবহারকারী প্রত্যাশা পূরণ হয়েছে কিনা তা যাচাই করা সহ পুরো প্রক্রিয়াটি বিবেচনায় নেওয়া দরকার। এই সমস্ত ক্রিয়াকলাপ যেহেতু খুব আলাদা, সর্বোত্তম বিষয়টি কেবলমাত্র এটিই মনে করে তা পরিমাপ করা: ওয়ার্কিং সফ্টওয়্যার, অর্থাত্ সফ্টওয়্যারটি উত্পাদিত ব্যবহারকারীর অর্থ কী ।
সফ্টওয়্যার বিতরণ পরিমাপ কিভাবে?
বেশ কয়েকটি পদ্ধতি বিদ্যমান:
- ক্লাসিকাল সফটওয়্যার ইঞ্জিনিয়ারিংয়ের সাধারণ পদ্ধতির নাম হ'ল ফাংশন পয়েন্টস (এফপি)। ফাংশন পয়েন্টগুলি পূরণের প্রয়োজনীয়তার উপর ভিত্তি করে পরিমাপ করা হয় (যেমন ফর্মের সংখ্যা, প্রতিটি ফর্মের ক্ষেত্রের সংখ্যা ইত্যাদি ...)। উত্পাদনশীলতা তারপরে সময়কালে এবং একক প্রতি ইউনিট এফপিতে পরিমাপ করা হয়। কিছু সংস্থার এমনকী ডেটাও থাকে যে কোনও বিকাশকারী কোনও প্রদত্ত ডোমেনের জন্য নির্দিষ্ট ভাষাতে সময়কালে কতগুলি ফাংশন পয়েন্ট বলতে পারে তা জানান। এফপিতে সমস্যাটি হ'ল এটির জন্য খুব বিস্তৃত প্রয়োজনীয়তা প্রয়োজন এবং এটি সময় সাপেক্ষ।
- আরও আধুনিক এবং বাস্তববাদী পদ্ধতির হ'ল গল্প পয়েন্ট (এসপি)। এগুলি কোডটি উত্পাদনের জটিলতার মূল্যায়ন করতে ব্যবহৃত হয় এবং এটি নিয়মিতভাবে উন্নয়ন দলের গতিবেগ মূল্যায়নের জন্য ব্যবহৃত হয়। তবে এসপি সমস্ত বিবরণ জানা হওয়ার আগে সম্পাদিত কাজের জন্য একটি অনুমানের পরিমাপ। এটি আসলে কী হয়েছিল তার চূড়ান্ত পরিমাপ নয়। সুতরাং উত্পাদনশীলতার পরিমাপ হিসাবে এটি ব্যবহার করার সময় অবশ্যই কিছু যত্ন নেওয়া উচিত কারণ এটি অনুমান প্রক্রিয়াটিতে পিছিয়ে যেতে পারে ।
স্ট্যাটিক বনাম গতিশীল টাইপিংয়ের উত্পাদনশীলতা সম্পর্কে
আমাকে স্বীকার করতে হবে যে আমি ব্যক্তিগতভাবে স্ট্যাটিকালি টাইপ করা ভাষার ভক্ত, কারণ আমার অন্তঃকরণে আমি জানি যে এটি আরও নির্ভরযোগ্য (বছরের বহু বছরের কোডিং আমাকে প্রমাণ করেছে)।
সুতরাং একটি জিনিস আমি নিশ্চিত করে নিচ্ছি যে স্ট্যাটিকালি টাইপ করা ভাষা সংস্থার সময় অনেক বেশি ত্রুটি / বাগগুলি রোধ করতে সক্ষম হয় (যেমন টাইপস, প্রত্যাশিত ধরণের মিল নয়, ইত্যাদি ...) স্ট্যাটিক্যালি টাইপ করা ভাষার চেয়ে বেশি। তবে সমস্ত অবজেক্টিভিটিতে, আমি এটিকে উচ্চ উত্পাদনশীলতা হিসাবে আপত্তিজনকভাবে সাধারণ করার সাহস করব না।
আপনার স্থপতি ঠিক আছে?
হয়তো, হয়তো না.
তবে তার যুক্তিগুলি বৈধ বলে মনে হয় না: স্ট্যাটিকালি টাইপ করা ভাষার উত্পাদনশীলতা লাভ উল্লেখযোগ্য সংখ্যক ত্রুটি থেকে আসে যা সংকলকটির সামনে ধরা পড়ে।
ফলস্বরূপ গতিশীল টাইপ করা ভাষার জন্য প্রয়োজনীয় পুনর্নির্মাণ না দেখে একা এসএলওসি দেখে এই "উচ্চতর" উত্পাদনশীলতা লাভ খুঁজে পাওয়া সম্ভব নয়। সুতরাং তার তুলনা ন্যায্য হতে পারে না।
তুলনামূলক পরিস্থিতির যুক্তিটিও ধারণ করে না। কিছু গতিশীলভাবে টাইপ করা ভাষাগুলি এমন কিছু উচ্চ স্তরের কনস্ট্রাক্টের অনুমতি দেয় যা ক্লাসিক স্ট্যাটিক্যালি টাইপ করা ভাষাগুলির মধ্যে একটির চেয়ে কম কোডের প্রয়োজন হয়। সুতরাং আপনার কম সময়ের প্রয়োজন হতে পারে, কম কোড লিখতে পারে, তবে একই বিশ্লেষণ, পরীক্ষা এবং যাচাইয়ের ওভারহেড যুক্ত করুন। সুতরাং এসএলওসি দ্বারা উত্পাদনশীলতা পরিমাপ করা সম্ভাব্য উত্পাদনশীলতা লাভকে হ্রাস করবে, এইভাবে গতিশীল টাইপযুক্ত ভাষার বিরুদ্ধে পক্ষপাত তৈরি করবে।
এই দাবি সমর্থন করার জন্য কোন গবেষণা?
বিষয়টিতে সাম্প্রতিক বেশ কয়েকটি সাম্প্রতিক একাডেমিক স্টাডিজ রয়েছে। যদিও তাদের মধ্যে কিছু স্ট্যাটিক টাইপিংয়ের সুবিধা দেখেন তবে এটি সাধারণত নির্দিষ্ট উদ্দেশ্যে সীমাবদ্ধ থাকে (ডকুমেন্টেশন, নথিভুক্ত নথিভুক্ত কোড বা এপিআই, ইত্যাদির পুনরায় ব্যবহার ইত্যাদি)। বিচক্ষণ শব্দটিও ব্যবহৃত হয় কারণ আধুনিক আইডিই গতিশীল টাইপিং সম্পর্কিত ঝুঁকিগুলিকে উল্লেখযোগ্যভাবে হ্রাস করেছে: