কোন প্রকল্পে বিদ্যমান প্রযুক্তিগত debtণের পরিমাণ আমি কীভাবে মাপ দিতে পারি?


67

কেউ কি জানেন যে কোনও ধরণের কোড মেট্রিকের হিসাবে কোনও কোড বেসের প্রযুক্তিগত debtণের উপর একটি সংখ্যা রাখার জন্য কোনও ধরণের সরঞ্জাম রয়েছে কিনা? যদি তা না হয় তবে কেউ কি এর জন্য অ্যালগরিদম বা হিউরিস্টিক্সের সেট সম্পর্কে সচেতন?

যদি এখনও পর্যন্ত এই জিনিসগুলির কোনও একটিই না থাকে তবে আমি কীভাবে এই জাতীয় জিনিসটি শুরু করতে পারি সে সম্পর্কে ধারণাগুলিতে আগ্রহী। অর্থাৎ, আমি কীভাবে কোনও পদ্ধতি, শ্রেণি, একটি নেমস্পেস, কোনও সমাবেশ ইত্যাদির দ্বারা প্রদত্ত প্রযুক্তিগত debtণকে মাপ দিতে পারি?

আমি একটি সি # কোড বেস বিশ্লেষণ এবং মূল্যায়নে সর্বাধিক আগ্রহী, তবে দয়া করে অন্য ভাষার ক্ষেত্রেও নির্দ্বিধায় দ্বিধা বোধ করবেন না, বিশেষত যদি ধারণাগুলি ভাষার সীমাবদ্ধ হয়।


12
প্রযুক্তিগত debtণ সিদ্ধান্ত নয়, কোড থেকে আসে। খারাপ পরিচালনা পছন্দগুলির কারণে এটি অর্জন করে। এটি পরিষ্কার নয় যে "পদ্ধতি, একটি শ্রেণি, একটি নামস্থান, একটি সমাবেশ" এগুলি নিজেরাই প্রযুক্তিগত debtণ ধারণ করে। যখন আরও ভাল পছন্দ থাকে তখন এগুলি দায়বদ্ধতার প্রতিনিধিত্ব করে।
এস .লট

7
আমি যুক্তি দেব (debtণের রূপকের প্রসঙ্গে) যে পরিচালকরা debtণ-ধারক হতে পারেন, তবে কোড শিল্পকর্মগুলি debtণের মূল্যায়নকে উপস্থাপন করে এবং এর পরিমাণ নির্ধারিত হতে পারে। এটি হ'ল আমি সম্মত হই যে ম্যানেজাররা "ইউনিট পরীক্ষা ভুলে যাবেন কারণ আমাদের কাছে সময় নেই" এর মতো সিদ্ধান্ত নিতে পারে এবং প্রযুক্তিগত .ণ বহন করতে পারে। তবে, আমি অবশ্যই মনে করি আপনি একটি সংজ্ঞাগত হিসাবে পৃথক কোড উপাদানগুলিতে একটি সংখ্যা রাখতে পারেন। এটিকে এভাবে ভাবুন - যদি পরিচালনা ভবিষ্যতের জন্য একাধিক ভয়ঙ্কর সিদ্ধান্ত নেয় তবে কোনও কোড লেখা হয়নি, এই মুহুর্তে কোনও debtণ আছে কি?
এরিক ডায়েট্রিচ

3
"এই মুহুর্তে কোনও debtণ আছে?" Debণ জমে থাকা দরকার, আপনি ঠিক বলেছেন। তবে এটি কোড নয়; এটি "কাজ" এর ভলিউম যা পূর্বাবস্থায় ফেলা দরকার। বিশেষ উল্লেখ, ডিজাইন, কোড, ডিবিএ-ওয়ার্ক, এগুলি সবই আবার কাজ করতে হবে। সফটওয়্যার আর্টিক্টস (কোডের উত্স লাইনের মতো) থেকে debtণ পরিমাপ করা উন্নয়ন ব্যয়ের পূর্বাভাস দেওয়ার অনুরূপ।
এস .লট

7
প্রযুক্তিগত debtণ পরিমাপ করা শক্ত, তবু এটি পরিচালকদের বিভ্রান্ত করে। তবে, আমি আপনাকে প্রযুক্তিগত debtণের বিরুদ্ধে লড়াই করার একটি ভাল উপায় বলতে পারি: সস্তা, সুন্দর এবং কার্যকারী প্রোটোটাইপস, বিশেষত যদি কোড বেসটি জিইউআইয়ের চারদিকে ঘোরে। জোয়েল যেমন এখানে পরামর্শ দিয়েছে: joelonsoftware.com/articles/fog0000000332.html , প্রতিদিন জিনিস পরিষ্কার করার জন্য কিছুটা সময় ব্যয় করুন। পরিবর্তনটি অবশ্যই ইতিবাচক উন্নতি হতে হবে, "ওএমজি নয়, আমাদের প্রযুক্তি .ণ = পেন্টাব্লবস এবং এটি দ্রুত হারে বাড়ছে ... আকাশ ভেঙে যাচ্ছে।" প্রতিদিন কিছুটা সময় কায়েজেনে এমনভাবে ব্যয় করুন যা কাজের কাজগুলিকে ভঙ্গ করে না। বন্ধু বানানো.
চাকরী

6
@ জোড়ানপাভলভিক আপনার উদ্ভট এবং অযৌক্তিক মিথ্যা দুশ্চিন্তার তৃতীয় বিকল্পটি অনুপস্থিত: আমি জানতে চেয়েছিলাম এমন কোনও সরঞ্জাম আছে যা প্রযুক্তিগত debtণ মাপার চেষ্টা করেছিল।
এরিক ডায়েটারিচ

উত্তর:


38

প্রযুক্তিগত debtণ কেবল একটি বিমূর্ত ধারণা যা কোথাও কোনও ডিজাইনের নকশা, বিল্ডিং, পরীক্ষা এবং পরিচালনা বজায় রাখার লাইন ধরে কিছু নির্দিষ্ট সিদ্ধান্ত নেওয়া হয়েছিল যে পণ্যটি পরীক্ষা করা এবং বজায় রাখা আরও কঠিন হয়ে পড়েছে। আরও প্রযুক্তিগত debtণ পাওয়ার অর্থ হ'ল কোনও সিস্টেম বিকাশ চালিয়ে যাওয়া আরও কঠিন হয়ে পড়ে - আপনি হয় কারিগরি debtণ মোকাবেলা করতে হবে এবং অন্যথায় সহজ কাজগুলির জন্য আরও বেশি বেশি সময় বরাদ্দ করতে হবে, অথবা আপনার সংস্থান বিনিয়োগ করতে হবে (সময় এবং অর্থ) কোডটি রিফ্যাক্টর করে, পরীক্ষাগুলি উন্নতকরণ এবং এর মাধ্যমে প্রযুক্তিগত debtণ হ্রাস করার ক্ষেত্রে।

এমন অনেকগুলি মেট্রিক রয়েছে যা আপনাকে কোডের গুণমান সম্পর্কে কিছুটা ইঙ্গিত দিতে পারে:

  • কোড কভারেজ। সেখানে বিভিন্ন সরঞ্জাম আছে যে আপনি বলতে আপনার ফাংশন, বিবৃতি, এবং লাইনের কত শতাংশ ইউনিট পরীক্ষা দ্বারা আচ্ছাদিত করা হয়। সিস্টেম-স্তর পরীক্ষা দ্বারা আচ্ছাদিত প্রয়োজনীয়তার শতাংশ নির্ধারণ করতে আপনি প্রয়োজনীয়তাগুলির জন্য সিস্টেম এবং গ্রহণযোগ্যতা পরীক্ষাগুলিও ম্যাপ করতে পারেন। উপযুক্ত কভারেজ আবেদনের প্রকৃতির উপর নির্ভর করে।
  • মিলন এবং সংহতি । যে কোডটি কম সংশ্লেষ এবং উচ্চ সংহতি দেখায় তা সাধারণত পড়া, বুঝতে এবং পরীক্ষা করা সহজ। কোড বিশ্লেষণের সরঞ্জামগুলি রয়েছে যা প্রদত্ত সিস্টেমে সংযুক্তি এবং সংহতির পরিমাণ জানাতে পারে।
  • সাইক্লোমেটিক জটিলতা কোনও অ্যাপ্লিকেশনটির মাধ্যমে অনন্য পাথের সংখ্যা। এটি সাধারণত পদ্ধতি / ফাংশন স্তরে গণনা করা হয়। সাইক্লোমেটিক জটিলতা একটি মডিউলটির বোধগম্যতা এবং পরীক্ষাযোগ্যতার সাথে সম্পর্কিত। উচ্চতর সাইক্লোমেটিক জটিলতার মানগুলি কেবল এটিই ইঙ্গিত করে না যে কোড অনুসরণে কারও বেশি সমস্যা হবে, তবে চক্রবৃত্তীয় জটিলতাও কভারেজ অর্জনের জন্য প্রয়োজনীয় পরীক্ষার কেসের সংখ্যা নির্দেশ করে।
  • বিভিন্ন হালসটেড জটিলতার ব্যবস্থা কোডের পঠনযোগ্যতার অন্তর্দৃষ্টি দেয়। এগুলি আয়তন, অসুবিধা এবং প্রচেষ্টা নির্ধারণ করতে অপারেটর এবং অপারেটরগুলি গণনা করে। প্রায়শই, এটি নির্দেশ করে যে কারও পক্ষে কোডটি গ্রহণ করা এবং এটি বোঝা কতটা কঠিন হতে পারে, প্রায়শই উদাহরণস্বরূপ যেমন কোড পর্যালোচনা বা কোড বেসে কোনও নতুন বিকাশকারী।
  • সদৃশ কোডের পরিমাণ। সদৃশ কোড পদ্ধতিতে রিফ্যাক্টরিংয়ের সম্ভাব্যতা নির্দেশ করতে পারে। সদৃশ কোড থাকার অর্থ বাগের প্রবর্তনের জন্য আরও লাইন রয়েছে এবং একাধিক স্থানে একই ত্রুটি রয়েছে বলে উচ্চতর সম্ভাবনা রয়েছে। যদি একই ব্যবসায়িক যুক্তি একাধিক জায়গায় উপস্থিত থাকে তবে পরিবর্তনের জন্য অ্যাকাউন্টটিতে সিস্টেম আপডেট করা আরও শক্ত হয়ে যায়।

প্রায়শই স্থির বিশ্লেষণ সরঞ্জামগুলি আপনাকে সম্ভাব্য সমস্যা সম্পর্কে সতর্ক করতে সক্ষম করবে। অবশ্যই, কারণ কোনও সরঞ্জাম একটি সমস্যার ইঙ্গিত দেয় তার মানে এই নয় যে কোনও সমস্যা আছে - রাস্তায় কোনও সমস্যা হতে পারে কিনা তা নির্ধারণ করতে এটি মানুষের রায় লাগে। এই মেট্রিকগুলি কেবল আপনাকে সতর্কবার্তা দেয় যে কোনও সিস্টেম বা মডিউলটিকে আরও ঘনিষ্ঠভাবে দেখার সময় হতে পারে।

তবে এই বৈশিষ্ট্যগুলি কোডটিতে ফোকাস করে। তারা সহজেই আপনার সিস্টেমের আর্কিটেকচার বা ডিজাইনের কোনও প্রযুক্তিগত debtণ নির্দেশ করে না যা বিভিন্ন মানের গুণাবলী সম্পর্কিত হতে পারে।


1
আপনার উল্লেখ করা মেট্রিকগুলিতে নজর রাখার জন্য আমি বর্তমানে এনডিপেন্ড ( এনডিপেন্ডডটকম ), কোডআরশ এবং ভিএস কোড মেট্রিক্স ব্যবহার করছি ( হালস্টেড পদক্ষেপগুলি বাদ দিয়ে, যা আমি আরও অনুসন্ধান করব)। আমি ভাবছিলাম যে আমি এই মেট্রিকগুলির কিছু সংমিশ্রণ ব্যবহার করে কোনও প্রদত্ত কোড উপাদানটিতে কিছু ধরণের সংখ্যা রাখার চেষ্টা করতে পারি যা মোটামুটি এক নজরে বোঝাতে পারে যে এটি চলমান বিকাশের জন্য কত ব্যয়বহুল।
এরিক ডায়েটারিচ

@ এরিকডিয়েটরিচ আপনি সক্ষম হতে পারেন, তবে আমি সম্ভবত এই মানটিকে মাপকাঠি করব না। আপনার মেট্রিক সরঞ্জামগুলি আপনাকে সময়ের সাথে পরিবর্তনের ক্ষেত্রে কী বলে তার উপর একটি "এক্সিকিউটিভ সারসংক্ষেপ" স্টাইলের প্রতিবেদনটি আরও উপযুক্ত হবে।
টমাস Owens

2
আমি অন্য একটি সাধারণ মেট্রিক তালিকায় যুক্ত করব টো / হ্যাক / ডাব্লুটিএফ সংখ্যা? একটি কোডবেস মন্তব্য ...
মার্চ

@ মার এটি ধরে নেয় যে আপনি এগুলি সঠিকভাবে ব্যবহার করেছেন এবং আপনার সুবিধার জন্য এগুলি গেমিং করছেন না। কোড বেসটি পরিষ্কার করার জন্য কিছু অতিরিক্ত সময় চান, কেবলমাত্র এই মন্তব্যগুলি যেখানে উপযুক্ত নয় সেখানে যুক্ত করুন। কোডবেস সম্পর্কে চিন্তা করবেন না, কেবল সেখান থেকে তাদের সরিয়ে ফেলুন remove মন্তব্য মিথ্যা বলতে পারেন, কোড পারে না।
থমাস ওভেনস

1
@ থমাস ওনস: সম্মত, তবে প্রায় কোনও মেট্রিকই প্রতারণা করতে পারে। যদি সঠিক ও সততার সাথে ব্যবহার করা হয় তবে "টডো মেট্রিক" কী কোডটি আসলে অনুপস্থিত বা পরিবর্তন করা উচিত তা সস্তার ওভারভিউ সরবরাহ করে (কেবল কোড ভিত্তিক মেট্রিকের জন্য = অদৃশ্য debtণ)।
এমআর

23

সোনার একটি প্রযুক্তিগত debtণ সুদর্শন পাশাপাশি একটি সফ্টওয়্যার প্রকল্পে দরকারী অন্যান্য বিভিন্ন বৈশিষ্ট্যও রয়েছে।

এটি বেশ কয়েকটি বিস্তৃত ভাষার সমর্থন করে।

সোনারকিউব (পূর্বে সোনার ) কোড মানের নিয়মিত নিরীক্ষণের জন্য একটি ওপেন সোর্স প্ল্যাটফর্ম ...

  • 25+ টি ভাষা সমর্থন করুন: জাভা, সি / সি ++, সি #, পিএইচপি, ফ্লেক্স, গ্রোভি, জাভাস্ক্রিপ্ট, পাইথন, পিএল / এসকিউএল, সিওবিএল ইত্যাদি etc.
  • সোনারকিউব অ্যান্ড্রয়েড ডিভোপমেন্টেও ব্যবহৃত হয়।
  • সদৃশ কোড, কোডিং মান, ইউনিট পরীক্ষা, কোড কভারেজ, জটিল কোড, সম্ভাব্য বাগ, মন্তব্য এবং নকশা এবং আর্কিটেকচারের প্রতিবেদন সরবরাহ করে।
  • সময় মেশিন এবং ডিফারেন্সিয়াল ভিউ।
  • সম্পূর্ণ স্বয়ংক্রিয় বিশ্লেষণ: মাভেন, পিঁপড়া, গ্রেডল এবং অবিচ্ছিন্ন ইন্টিগ্রেশন সরঞ্জামগুলির সাথে সংহত করে (আটলাসিয়ান বাঁশ, জেনকিনস, হাডসন, ইত্যাদি)।
  • গ্রহণের বিকাশের পরিবেশের সাথে একীভূত হয়
  • বাহ্যিক সরঞ্জামগুলির সাথে একীভূত হয়: জীরা, ম্যান্টিস, এলডিএপি, ফোর্টিফাই ইত্যাদি
  • প্লাগইনগুলির ব্যবহার সহ প্রসারিত।
  • প্রয়োগ SQALE গনা পদ্ধতি প্রযুক্তিগত ঋণ ...

1
শীতল ধন্যবাদ! আমার সি # কাজের জন্য আমার কাছে এনডিপেন্ড রয়েছে এবং আমি ব্যবহার করি তবে আমি কিছুটা জাভা কাজও করি এবং সেখানে মেট্রিকগুলিতেও আগ্রহী। খুব কমপক্ষে, এটি আমার জন্য জাভাটির কার্যকারিতা দেয় এবং এটি এনডিপেন্ডেন্টের পক্ষে একটি সুন্দর পরিপূরক হতে পারে।
এরিক ডায়েটারিচ

দুর্দান্ত, আমরা যেখানে সোনার ব্যবহার করি সেখানে আমরা সোনার ব্যবহার করি এবং এটি কিছু দুর্দান্ত জিনিস দেয় যা আপনাকে আপনার কোডবেসের রাজ্যের অন্তর্দৃষ্টি দেয়।
রবার্ট গ্রেইনার

2
@ এরিকডিট্রিচ, এফওয়াইআই সোনার একটি সি # প্লাগইনও রয়েছে ।
পিটার টারিক

@ এরিকডিট্রিচ এফওয়াইআই এখন সোনার জন্য একটি এনডিপেন্ড প্লাগইন রয়েছে nd depend.com/docs/sonarqube-integration-end depend
প্যাট্রিক স্মাচিয়া - এনডিপেন্ড

ওপেন সোর্স বিকল্প আছে?
Hellboy

5

আমি অর্থ থেকে উপমা ব্যবহার করতে ঘৃণা করি তবে এটি সত্যিই উপযুক্ত বলে মনে হয়। আপনি যখন কোনও দাম নির্ধারণ করেন (যে কোনও ধরণের সম্পদ), তখন এর অভ্যন্তরীণ এবং বহিরাগত মান উভয়ই থাকতে পারে। এই ক্ষেত্রে, বিদ্যমান কোডটির অভ্যন্তরীণ মান রয়েছে যা উল্লিখিত কোডের তুলনামূলক মানের সাথে মিল পরিমাণ হবে এবং এতে বহিরাগত মানও থাকবে (কোডটিতে কী করা যেতে পারে তার থেকে মান) এবং সেই পরিমাণগুলি যুক্ত হবে। কোডটি স্কোর করতে আপনি যে পদ্ধতি ব্যবহার করছেন তা ব্যবহার করে অভ্যন্তরীণ মান ক্রেডিট এবং ডেবিটগুলিতে (ভাল বনাম খারাপ) বিভক্ত হতে পারে (মন্তব্য / পঠনযোগ্যতার জন্য +5, কোড কভারেজের জন্য -10 ইত্যাদি)

আমি আজ অবশ্যই এই সরঞ্জামগুলির পরিমাণ জানিনা এবং আমি মনে করি আপনি যদি বিভিন্ন "debtণের মূল্যায়ন" কৌশলগুলির মেধা নিয়ে তর্ক করেন তবে আপনার হাতের উপর সম্পূর্ণ নতুন আলোচনা হবে তবে আমি ম্যাথিউয়ের সাথে একমত - debtণটি হ'ল কোডটি পেতে যতটা সম্ভব ব্যয় হয় যতটা সম্ভব আপনি তা পেতে পারেন, আপনি যে কোনও পদ্ধতি ব্যবহার করে সেখানে পৌঁছাতে সময় লাগবে এমন ম্যান-ঘন্টার জন্য ব্যয় করতে হবে।

আর কিছু বিবেচনা করার বিষয় হ'ল ব্যয়-কার্যকারিতাটির অবশ্যই একটি পরিমাপ রয়েছে যার মাধ্যমে একজন "সিদ্ধি" এর কাছাকাছি আসার সাথে সাথে কোড বেজে ব্যয় করা এক ঘন্টার মান সম্ভবত তাত্পর্যপূর্ণভাবে হ্রাস হওয়ার চেয়ে বেশি হওয়ায় সম্ভবত অতিরিক্ত অপ্টিমাইজেশনের সমস্যা রয়েছে সম্পন্ন কাজের সার্থকতা বাড়ান।


হ্যাঁ, প্রান্তিক রিটার্ন হ্রাস করার ধারণাটি অবশ্যই এমন একটি বিষয় যা আমি মেট্রিক নিয়ে এসে পরিমার্জন করতে গিয়ে সম্বোধন করতে চাই। সুতরাং, কেবল "ব্যবসায়ের দৃষ্টিকোণ থেকে এই শ্রেণিকে পুনরায় সজ্জিত করার জন্য আমার উদ্দেশ্য যুক্তিটি এখানে নয়" "" এই মুহুর্তে বিরক্ত না করার জন্য আমার যুক্তি এখানে ""
এরিক ডায়েট্রিচ

5

বিকাশকারীদের মধ্যে প্রযুক্তিগত debt ণের মোটামুটি নির্ভরযোগ্য পরিমাপ ডাব্লুটিএফ / মিনিট বলে মনে হয় ।

এই "মেট্রিক" ইস্যুটি হ'ল সাধারণত "বাইরের" যোগাযোগ করা বরং কঠিন।

"বহিরাগতদের" কাছে প্রযুক্তিগত debtণ যোগাযোগের ক্ষেত্রে যে মেট্রিক আমার পক্ষে কাজ করেছিল তা ছিল সফল ডেলিভারির জন্য প্রয়োজনীয় পরীক্ষার পরিমাণ এবং বাগ ফিক্সিংয়ের প্রচেষ্টা (বিশেষত রিগ্রেশন বাগগুলি ফিক্সিংয়ের জন্য) প্রয়োজনীয়।

সাবধানতার একটি শব্দ: যদিও এই পদ্ধতিরটি যথেষ্ট শক্তিশালী, তবে এটি ভালভাবে পুরানো ডাব্লুটিএফ / তার সাথে রিসোর্ট নেওয়ার কয়েক মিনিট আগে ডাবল-চেক করতে হবে। বিষয়টি হ'ল এটি বেশ জটিল: তথ্য পাওয়ার জন্য আপনাকে যথাযথভাবে সময় অনুসারে ট্র্যাক করতে হবে এবং যথাযথ বিভাগ অনুযায়ী যথাযথভাবে লগ করতে হবে।

  • বৈশিষ্ট্যটি বাস্তবায়নের জন্য মোট 3 সপ্তাহ ব্যয় করা এত সহজে বলা যায় যে
     
    আমি বৈশিষ্ট্য এটির খসড়া বাস্তবায়নে 14 ঘন্টা ব্যয় করেছি, তারপরে ধূমপান পরীক্ষা করার জন্য এটি 29 ঘন্টা এবং আমি আবিষ্কারকৃত প্রতিক্রিয়ার সমাধানগুলি বাস্তবায়নে 11 ঘন্টা, তারপরে কিউএ পরীক্ষার 18 ঘন্টা প্রস্তুত বৈশিষ্ট্য বাস্তবায়ন। এর পরে, কিউএ ছেলেরা প্রাথমিক প্রার্থীর মুক্তির পরীক্ষার জন্য 17 ঘন্টা ব্যয় করেছিল। এর পরে আমি প্রারম্ভিক প্রার্থীর মুক্তির জন্য কিউএ দ্বারা জমা দেওয়া বাগগুলি বিশ্লেষণ করতে এবং সমাধানগুলি বাস্তবায়নের জন্য 3 ঘন্টা ব্যয় করেছি। এর পরে, আমি প্রাথমিক প্রার্থীদের মুক্তিতে যে পরিবর্তনগুলি করেছি তা পরীক্ষার জন্য আমি 11 ঘন্টা ধোঁয়ায় কাটিয়েছি। তারপর...

যাইহোক টেস্টিং এবং বাগ ফিক্সিংয়ের প্রচেষ্টা সম্পর্কে ডেটা আমার অভিজ্ঞতাতে যোগাযোগ করা বেশ সহজ ছিল।

সাম্প্রতিক প্রকাশের জন্য, আমরা রিগ্রেশন বাগগুলি পরীক্ষা এবং ঠিক করতে প্রায় 90% সময় ব্যয় করেছি। পরবর্তী প্রকাশের জন্য, এই মানটি 60-70% এ নেমে যাওয়ার জন্য কিছু প্রচেষ্টা বরাদ্দ করার পরামর্শ দিন।


সতর্কতার আরেকটি শব্দ। উপরের 90% এর মতো ডেটা কেবল প্রযুক্তিগত debtণের ইঙ্গিত হিসাবেই ব্যাখ্যা করা যায় না, তবে প্রোগ্রামিং / নির্দিষ্ট প্রযুক্তিতে একজন যথেষ্ট দক্ষ না হওয়ার ইঙ্গিত হিসাবেও (আশ্চর্য বিস্মিত) হতে পারে। "আপনি কেবল আপনার কোডটিতে খুব বেশি বাগ তৈরি করেছেন"।

যদি সেইভাবে ডেটাটির ভুল ব্যাখ্যা করা হওয়ার ঝুঁকি থাকে তবে এটি তুলনামূলকভাবে কম ডাব্লুটিএফ প্রবণতার জন্য অতিরিক্ত, রেফারেন্স ডেটা রাখতে সহায়তা করে ।

  • বলুন যদি একই বিকাশকারী দ্বারা পরিচালিত দুটি অনুরূপ উপাদান / অ্যাপ্লিকেশন থাকে তবে প্রথমে "বর্জ্য হার" এ প্রায় 50% এবং দ্বিতীয়টি 80-90-এ প্রকাশিত হয়, এটি দ্বিতীয়টি কারিগরি debtণের বিষয় হিসাবে পক্ষে পক্ষে একটি শক্তিশালী মামলা করে ।

যদি প্রকল্পটিতে নিবেদিত পরীক্ষক থাকে তবে তারা তথ্যের আরও উদ্দেশ্যমূলক মূল্যায়নে অবদান রাখতে পারে। আমি অন্য উত্তরে যেমন উল্লেখ করেছি ,

পরীক্ষকগণের সাহায্যে আপনি কাউকে ডিজাইন সম্পর্কিত বিষয়গুলির বোঝার ব্যাকআপ নিতে পারেন। যখন কেবলমাত্র বিকাশকারীগণ কোডের মান সম্পর্কে অভিযোগ করেন , প্রায়শই এটি বন্ধ দরজার পিছন থেকে বিষয়গত WTF এর মতো শোনা যায়
 
কিন্তু এটি যখন QA লোকের দ্বারা প্রতিধ্বনিত হয়েছিল তখন component A10 টি নতুন বৈশিষ্ট্যের জন্য 100 রিগ্রেশন বাগেরcomponent B মতো কিছু রয়েছে, যার বিপরীতে 20 টি নতুন বৈশিষ্ট্যে 10 রিগ্রেশন বাগ রয়েছে , যোগাযোগ হঠাৎ করেই অন্য একটি খেলায় পরিণত হয়।


2
আমি এই উত্তরটি অনেক পছন্দ করি। উত্সর্গীকৃত কিউএ বিভাগের সাথে, নতুন ত্রুটির সাথে রিগ্রেশন ত্রুটির অনুপাত গণনা করা খুব সোজা ward এবং অবশ্যই আপনাকে প্রযুক্তিগত aboutণ সম্পর্কে অনেক কিছু বলতে পারে।
এরিক ডায়েট্রিচ

4

আমি মনে করি যে প্রশ্নটি আপনার প্রযুক্তিগত debtণ "কেনার ব্যাক" করতে কত খরচ হবে - এটি ঠিক করার জন্য এটি কতটা কাজ করে? ঠিক আছে, এটি নির্ধারণ করা দলের উপর নির্ভর করে।

স্প্রিন্ট পরিকল্পনার সময়, আমি দলটিকে অনুরোধ করতে বলি প্রযুক্তিগত debtণ আইটেমগুলি ঠিক একইভাবে নির্ধারণ করার জটিলতাটি যেমন তারা কোনও গল্পের জটিলতার অনুমান করতে পারে। এই মুহুর্তে, বর্তমান স্প্রিন্টে কোন প্রযুক্তিগত debtণ গ্রহণের পক্ষে যথেষ্ট অগ্রাধিকার রয়েছে (প্রকৃত ব্যবহারকারীর গল্পগুলি স্থানচ্যুত করা) এবং কী অপেক্ষা করতে পারে তা নির্ধারণের জন্য পণ্য মালিকের সাথে দলের মধ্যে এটি একটি আলোচনার খেলা।

আপনি যদি স্ক্রাম না করে থাকেন তবে আমি আমার ভিত্তিতে লেগে থাকব - প্রযুক্তিগত debtণ প্রতিকারের ব্যয় অনুসারে পরিমাপ করা উচিত।


সুতরাং, গল্পের পয়েন্টগুলির প্রসঙ্গে, এটি কি বলা উচিত যে কোডটির প্রভাবিত অঞ্চলগুলি দ্বারা উচ্চতর ডিগ্রিযুক্ত degreeণ উপস্থিত থাকলে আপনি প্রতিটি গল্পে কয়েকটি পয়েন্ট যুক্ত করতে পারেন? এটি হ'ল, যদি গল্পের X এর কোড কোড Y এর সাথে যুক্ত থাকে, যা কেবলমাত্র ভয়াবহ, আপনি ওয়াইয়ের প্রকৃতির কারণে গল্পটির কয়েকটি পয়েন্টটি সামলেছেন? এবং যে পয়েন্টগুলির সংখ্যার সমান বা পয়েন্টের সংখ্যার সাথে সম্পর্কিত আপনি যে ফিক্সটি অনুমান করেছেন উল্লেখ করেছেন?
এরিক ডায়েটারিচ

1
@ এরিক ডায়েটারিচ - ঠিক আছে, টিডি অবশ্যই সমাধানে জটিলতা যুক্ত করছে। অসুবিধা হতে পারে যে টিডির টুকরোগুলি ফিক্সিং হোলসেল সলিউশনের চেয়ে বেশি ব্যয়বহুল। সুতরাং এটি হতে পারে যে আপনার কাছে 3 টি গল্প রয়েছে যা টিডিটি নির্মূল করা হলে প্রতি 5 টি রেট দেওয়া হত তবে placeণ নিয়ে 8 টি রয়েছে - যাতে এটি টিডির 9 পয়েন্ট যোগ করে। টিডিটিকে পুরো হিসাবে সংশোধন করার জন্য (গল্পটি নির্বিশেষে) বাস্তবে একটি 8 হতে পারে তাই আপনি যুক্তি দিতে পারেন যে পাইপসিল (9) এর তুলনায় পাইকারি সমাধানের ব্যয় কম (8)। এটি আলোচনার অংশ হবে
ম্যাথু ফ্লিন

এটা বোধগম্য. এবং, অবশ্যই, আমি যা খুঁজছি তা (কিছুটা) অবজেক্টিভ কেস "এর মতো কিছু বলার জন্য তৈরি করা হচ্ছে" এক বছরের মধ্যে আমরা এক্স নতুন বৈশিষ্ট্য বিকাশ করতে পারি যদি আমরা কেবল এগিয়ে চলতে থাকি তবে এক্স + ওয়াই নতুন বৈশিষ্ট্যগুলি যদি আমরা এই প্রযুক্তিগত someণ কিছু পরিশোধ করুন "।
এরিক ডায়েট্রিচ

2

CAST নামে একটি দুর্দান্ত শক্তিশালী প্ল্যাটফর্ম রয়েছেবড় অ্যাপ্লিকেশনগুলিতে প্রযুক্তিগত debtণ সন্ধান করতে। আমরা এটি এমন একটি প্রকল্পে ব্যবহার করেছি যেখানে আমরা কোনও উত্তরাধিকার ব্যবস্থায় একটি বড় বর্ধন করেছি। কোডটি লিখেছেন এমন লোকদের মাথায় কী ছিল তা আপনাকে জানায় না, তবে এটি কোড পরীক্ষা করে এবং কোড এবং আর্কিটেকচারের ত্রুটিগুলি খুঁজে বের করে, তারপরে আপনি চাইলে প্রযুক্তিগত debtণের পরিমাণ নির্ধারণ করেন। এটি দেখার ক্ষেত্রে আসল ব্যবহারটি যদিও। পরিমাণ নয় তবে কোডটিতে ইতিমধ্যে সমস্যার তালিকা রয়েছে। এটি আপনাকে যে প্রযুক্তিগত debtণ দেয় তার একটি অংশ সম্পর্কে আপনাকে জানায় (সুতরাং আমি উপরের উত্তরগুলির সাথে কিছুতেই একমত নই)। কিছু প্রযুক্তিগত debtণ রয়েছে যা নিখুঁতভাবে নকশা-ভিত্তিক এবং এটি অত্যন্ত বিষয়মূলক - পর্নোগ্রাফির মতো - আপনি যখন এটি দেখেন এবং প্রসঙ্গটি জানেন তখন আপনি তা জানতেন। আমি সত্যিই "প্রযুক্তিগত" debtণ কিনা তা নিয়ে আমি বিতর্ক করব। কিছু প্রযুক্তিগত debtণ রয়েছে যা পুরোপুরি বাস্তবায়নের ক্ষেত্রে এবং আমি বিশ্বাস করি যে '


আমি এই প্রশ্নটি টুইটারে শেয়ার করেছি, এবং কেউ CAST সম্পর্কে কথা বলে প্রতিক্রিয়া জানিয়েছে। তাদের ওয়েবসাইটটি যাচাই করার পরে এটি কী করে তা আমি সত্যিই পরিষ্কার নই। এটির কোনও ফ্রিবি বা ডেমো সংস্করণ কোনও পরীক্ষার জন্য নেওয়া, কোনও সুযোগেই?
এরিক ডায়েটারিচ

2

বড় সফ্টওয়্যার সিস্টেমে কারিগরি debtণ নিয়ে গবেষণার বর্ণনা দেওয়া এমআইটির বাইরে একটি ওয়েবিনার রয়েছে: http://sdm.mit.edu/news/news_articles/webinar_050613/sturte वंत-webinar-technical- debt.html

লেখকরা একটি প্রকল্প বিশ্লেষণ করতে এবং 'আর্কিটেকচারাল জটিলতা' মেট্রিকগুলি বের করার জন্য কোড লিখেছিলেন। এই মেট্রিকগুলির ত্রুটি ঘনত্ব, বিকাশকারী উত্পাদনশীলতা এবং বিকাশ কর্মীদের টার্নওভারের সাথে একটি দৃ relationship় সম্পর্ক রয়েছে বলে দেখানো হয়েছিল।

ওয়েবিনারে বর্ণিত কাজটি হার্ভার্ড বিজনেস স্কুল-এ অ্যালান ম্যাককমার্যাক এবং কার্লিস বাল্ডউইনের করা মডুলারিটি গবেষণা নিয়ে তৈরি করেছে। আমি তাদের কাগজপত্র তাকান হবে। তাদের 'প্রচারের ব্যয়' আপনি যা খুঁজছেন তা হতে পারে।


1

আমি বলব যে স্ট্যান্ডার্ড কোড মেট্রিকগুলি প্রযুক্তিগত bণ হিসাবে একটি উচ্চ-স্তরের আপেক্ষিক দৃষ্টিভঙ্গি হিসাবে ব্যবহার করা যেতে পারে । ভিএস আলটিমেটে একটি কোড বিশ্লেষক অন্তর্ভুক্ত রয়েছে যা আপনাকে চক্রবৃত্তীয় জটিলতা, সংযোজন, এলওসি এবং উত্তরাধিকারের গভীরতার উপর ভিত্তি করে একটি "রক্ষণাবেক্ষণ সূচক" দেয়। আপনি যে কোনও সমস্যাযুক্ত স্থানে ডুব দিতে পারেন এবং বিশদটি দেখতে পারেন (ফাংশন স্তরের নীচে)। আমি এটি কেবলমাত্র আমার প্রকল্পে চালিয়েছি এবং আমাদের ডেটা প্যাকেজটিতে (EF কনফিগারেশন এবং আরম্ভকরণ) এবং আমাদের টেস্ট স্যুটে সর্বনিম্ন স্কোরগুলি ছিল 69 69 বাকি সবই ছিল 90 বা তার বেশি। অন্যান্য সরঞ্জাম রয়েছে যা আপনাকে চাচা বব এর পিপিপিতে আলোচিত মত আরও মেট্রিক দেবে


সুতরাং, বলুন যে আপনি টেস্ট স্যুট বা ডেটা প্যাকেজে 90% এর নীচে স্কোর করছে না এমন কিছু আছে। আপনি যেখানে বলছেন সেখানে কি এমন একটি সংখ্যাসূচক থ্রোসোল্ড রয়েছে যে, "ঠিক আছে, এটি যথেষ্ট ভাল নয় এবং আমরা রিফ্যাক্টরতে যাচ্ছি"? অথবা, আপনি কি এই তথ্যটি পরিচালনা বা কেস স্টেকহোল্ডারকে কেস রিফ্যাক্টরিং প্রয়োজনীয় বলে তৈরি করতে ব্যবহার করেন? তা হল, ম্যানেজার / স্টেকহোল্ডাররা কি মাইক্রোসফ্টের রক্ষণাবেক্ষণ সূচক সম্পর্কে যত্নশীল হন বা আপনি অন্য কোনও উপায়ে সেই তথ্য উপস্থাপন করেন? অথবা, আপনি কি কেবল এটি উপস্থাপন করছেন না এবং চুপচাপ নিজেরাই সমস্যার সমাধান করবেন?
এরিক ডায়েটারিচ

আমি যে প্রশ্ন ভালোবাসি। আমার উত্তর সর্বদা থাকবে যে সর্বোত্তম কোডটি লেখার জন্য আপনি অনুমতি চাওয়ার কিছু নয় ask আমি চাচা ববকে "বয়স্কাউট রুল" বলে যা ব্যবহার করি (আপনি পৌঁছানোর চেয়ে কোডটি সবসময় ভাল অবস্থায় ছেড়ে যান) এবং আমি সুবিধাবাদী রিফ্যাক্টরিং বলি। ধারণাটি হ'ল যখন আপনাকে বিদ্যমান কোডটি সংশোধন করতে হবে তখন সময় নেবেন ক) ইউনিট পরীক্ষায় এটি আবরণ করুন খ) এটি পরিষ্কার হওয়ার জন্য রিফেক্টর। লিগ্যাসি কোডের সাথে কার্যকরভাবে কাজ করা মাইকেল পালকগুলি এটি করার বিষয়ে কিছু দিকনির্দেশনা সরবরাহ করে।
মাইকেল ব্রাউন

@ মাইক-এটি আপনাকে অনেকগুলি বিকাশের পরিবেশে সরিয়ে দেবে যেখানে সমস্ত কোড পরিবর্তনগুলির কঠোর নিয়ন্ত্রণ ট্র্যাক করা এবং পর্যবেক্ষণ করা হয়। বিশেষত যদি আপনার আপাতদৃষ্টিতে নিরীহ উন্নতি যা আপনাকে কেউই একবার কাজ করে এমন কিছু ভাঙার কাজ শেষ করতে সংশোধন করতে বলেনি।
ডাঙ্ক

দ্রষ্টব্য আমি ডাইভ ইন এবং উইলি-নিলি কোডটি পরিষ্কার করে বলিনি। আপনি যে কোডটিতে ইতিমধ্যে কাজ করছেন সেটি পরিষ্কার করতে আমি বলেছিলাম I've আমি অত্যন্ত নিয়ন্ত্রিত কোড নিয়েও কাজ করেছি (কাজের আইটেম অর্পণ করুন, অনুমোদনের জন্য কাজের আইটেমটি সম্বোধন করার জন্য পরিবর্তনগুলির একটি তালিকা সরবরাহ করতে হবে, অনুমোদিত পরিবর্তনগুলি সম্পাদন করতে হবে) )। 9-10 বার পরিবর্তনের অনুরোধে রিফ্যাক্টরিংয়ের ব্যাখ্যা দেওয়ার ফলে অনুমোদনের ফলস্বরূপ।
মাইকেল ব্রাউন

0

আমি প্রযুক্তিগত debtণকে ডলার হিসাবে ভাবব না যেখানে এটির পরিমাণ নির্ধারণের জন্য আপনার অভিনব মডেল দরকার। আমি এটি অনুগ্রহ হিসাবে মনে করি। যদি কেউ আপনার অনুগ্রহ করে এবং আপনি ভুলে যাওয়ার সম্ভাবনা থাকে তবে আপনি এটি লিখে রাখুন। আপনি যখন একটি শর্ট কাট নেন, এটি লিখুন। এটি আপনাকে মনে রাখতে সহায়তা করে এবং আরও দুর্বল আপনাকে এটিকে স্বীকার করতে বাধ্য করে। কোনও অভিনব সরঞ্জামের প্রয়োজন নেই। নোটপ্যাড বা এক্সেল কৌতুকটি করতে পারে।


2
রিয়েলপলিটিক দৃষ্টিকোণ থেকে, আমি যুক্তি দিয়ে বলব যে স্বল্পমেয়াদী ফলাফলের জন্য দীর্ঘমেয়াদী দুর্দশার জন্য সবচেয়ে বেশি আগ্রহী লোকেরা সম্ভবত তাদের সিদ্ধান্ত নথিভুক্ত করার সম্ভাবনাযুক্ত লোকদের মধ্যে রয়েছে। সুতরাং, আমি তাত্ত্বিকভাবে আপনার ধারণার সাথে একমত, তবে আমি মনে করি যে সিরিয়াল "অনুগ্রহকারীদের" পক্ষপাতিত্বের ভারসাম্য রক্ষার সবচেয়ে কম সম্ভাবনা।
এরিক ডায়েটারিচ

@ এরিকডিট্রিচ - আমি সম্মত এবং আরও খারাপ সিরিয়াল অপরাধীরা এমনকি জানে না যে তারা তাদের debtণ যুক্ত করছে। (নিকৃষ্টতম ক্রেডিট কার্ড অপরাধীদের তাদের ক্রেডিট রেটিংকে ক্রাশ করার অনুরূপ)) তবে সূচনা পয়েন্টটি মাপকাঠির আকাঙ্ক্ষাকে ধরে নিয়েছে এবং অ-লেখকের পক্ষে এটি পরিমাণ প্রমাণ করা শক্ত। আপনি জানেন না যে পোপটি আপনার কুকুর না থাকলে বা এটিতে পদক্ষেপ নেওয়ার ঘটনা ঘটে।
ম্যাথট্যাক

0

আমি এমন একটি সংস্থার জন্য কাজ করছি যা একেবারে এটি অনুসন্ধান করছে। নীচে 3 ক্রিয়াকলাপযুক্ত মেট্রিক রয়েছে যা আমরা প্রযুক্তিগত debtণ সামলানোর সময় দেখার পরামর্শ দিই। "কীভাবে" এবং "কখন" সেগুলি ট্র্যাক করতে হয় সে সম্পর্কে আরও তথ্যের জন্য, আমরা প্রযুক্তিগত tণ বোঝার জন্য এবং সামলানোর জন্য একটি সংক্ষিপ্ত নিবন্ধ 3 মেট্রিক রেখেছি

আপনার চিন্তা কি? কোনও প্রশ্নের উত্তর দিতে পেরে খুশি এবং আপনার প্রতিক্রিয়া শুনে ক্ষুধার্ত :)।

ত্রুটিগুলি এবং অযাচিত প্রযুক্তি debtণ প্রতিরোধের মালিকানা

মালিকানা প্রকৌশল স্বাস্থ্যের একটি শীর্ষস্থানীয় সূচক।

অনেক লোকের কাছ থেকে অবদান প্রাপ্ত কোডবেসের অংশগুলি সময়ের সাথে সাথে ক্রাফট জমে, অন্যদিকে কম লোকের কাছ থেকে অবদান গ্রহণকারীরা আরও ভাল অবস্থায় থাকে। কোডবেসের তাদের অংশ সম্পর্কে ভালভাবে অবহিত এমন একটি শক্ত গ্রুপে উচ্চমান বজায় রাখা আরও সহজ।

এটি কিছু ভবিষ্যদ্বাণীপূর্ণ শক্তি সরবরাহ করে: কোডবেসের দুর্বল মালিকানাধীন অংশগুলি সময়ের সাথে সাথে debtণ জমা হতে পারে এবং এর সাথে কাজ করা আরও ক্রমশ শক্ত হয়ে উঠবে। বিশেষত, অসম্পূর্ণ তথ্যের একটি পার্শ্ব-প্রতিক্রিয়া এবং কোডের মানের স্বচ্ছ মালিকানা হিসাবে এটি tentionণ অনিচ্ছাকৃতভাবে গ্রহণ করা সম্ভবত ।

এটি কিছুটা কমনের ট্র্যাজেডির সাথে সাদৃশ্যপূর্ণ ।

আর্কিটেকচারের উন্নতিতে সংহতি

একত্রিতকরণ সুসংজ্ঞায়িত উপাদানগুলির একটি অনুবর্তন সূচক।

সংযুক্তি এবং এর পাল্টা, সংযুক্তকরণ, সফ্টওয়্যার ডিজাইনের সময় ফোকাস দেওয়ার জন্য গুরুত্বপূর্ণ ধারণা হিসাবে দীর্ঘকাল ধরে স্বীকৃত।

কোডের বেশিরভাগ উপাদান একসাথে থাকার সময় উচ্চ সংহতি বলে বলা হয়। উচ্চ সংহতি সাধারণত পছন্দনীয় কারণ এটি রক্ষণাবেক্ষণ, পুনরায় ব্যবহারযোগ্যতা এবং দৃust়তার সাথে সম্পর্কিত associated উচ্চ সংহতি এবং আলগা সংমিশ্রণ এক সাথে চলে যেতে ঝোঁক।

আরও পুনঃব্যবহারযোগ্য এবং রক্ষণাবেক্ষণযোগ্য কোডের সাথে যুক্ত হওয়ার পরেও, উচ্চ সংহিতা কোডবেজের একটি প্রদত্ত অংশকে পরিমার্জনে জড়িত হওয়া দরকার এমন লোকের সংখ্যাও হ্রাস করে যা উত্পাদনশীলতা বৃদ্ধি করে।

সমস্যার ক্ষেত্রগুলি চিহ্নিত করতে মন্থন করুন

মন্থন (পুনরাবৃত্তি ক্রিয়াকলাপ) ক্রমবর্ধমান সিস্টেমে রিফ্যাক্টরিংয়ের জন্য পাকা অঞ্চলগুলি চিহ্নিত করতে এবং র‌্যাঙ্ক করতে সহায়তা করে।

সিস্টেমগুলি বাড়ার সাথে সাথে বিকাশকারীদের তাদের আর্কিটেকচার বোঝা আরও শক্ত হয়ে যায়। যদি ডেভেলপারদের একটি নতুন বৈশিষ্ট্য সরবরাহ করতে কোডবেসের অনেকগুলি অংশে পরিবর্তন করতে হয়, তবে বাগের দিকে পরিচালিত পার্শ্ব-প্রতিক্রিয়াগুলি এড়ানো তাদের পক্ষে কঠিন হবে এবং তারা কম উত্পাদনশীল হবে কারণ তাদের আরও উপাদান এবং ধারণার সাথে পরিচিত হওয়ার প্রয়োজন।

এ কারণেই আরও স্থিতিশীল ব্যবস্থা তৈরি এবং অনিচ্ছাকৃত পরিণতি এড়াতে একক দায়বদ্ধতার জন্য প্রচেষ্টা করা গুরুত্বপূর্ণ। কিছু ফাইল আর্কিটেকচারাল হাব এবং নতুন বৈশিষ্ট্য যুক্ত হওয়ার সাথে সাথে সক্রিয় থাকাকালীন ফাইলগুলিতে বন্ধ হওয়া এবং কঠোরভাবে পর্যালোচনা, পরীক্ষা এবং কিউএ মন্থন অঞ্চলগুলিকে এমনভাবে কোড লেখা ভাল ধারণা।

এই সক্রিয় ফাইলগুলিকে মন্থন করুন যাতে আপনার কোডবেসের পরিবর্তনের পৃষ্ঠের ক্ষেত্রটি হ্রাস করতে সেগুলি ভেঙে ফেলা উচিত কিনা তা আপনি সিদ্ধান্ত নিতে পারেন।


-1

যদি আপনার বাগ্রাটকার বা কোনও ধরণের চতুর সফ্টওয়্যারের মাধ্যমে ভাল ইতিহাস থাকে তবে আপনি এটিকে সহজ রাখতে পারেন। সময় বেসিক কাজগুলি ব্যয় করেছে। এছাড়াও, যখন প্রকল্পটি এখন যুবা যুবা ছিল তখন অনুমানের নির্ভরযোগ্যতা।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.