পৌরাণিক ম্যান মাসের প্রভাবগুলি প্রশমিত করার উপায়গুলি কী কী?


16

ব্রুকস আইন: দেরী সফ্টওয়্যার প্রকল্পে জনশক্তি যুক্ত করা এটি পরে তৈরি করে।

তাঁর নো সিলভার বুলেট - এসেন্সেন্ট অ্যাকসিডেন্টস অফ সফটওয়্যার ইঞ্জিনিয়ারিং ফ্রেডরিক ব্রুকস তাঁর পৌরাণিক কাহিনী মাসের ধারণাটি সংজ্ঞায়িত করেছেন :

ব্রুকসের ধারণা, জটিল প্রোগ্রামিং প্রকল্পগুলিকে পুরোপুরি বিচ্ছিন্ন কার্যগুলিতে বিভক্ত করা যায় না যা শ্রমিকদের মধ্যে যোগাযোগ ছাড়াই এবং কার্য সম্পাদনকারী ও কর্মীদের মধ্যে জটিল আন্তঃসম্পর্ক স্থাপনের সেট স্থাপন না করেই কাজ করা যায়

1982 সাল থেকে আমরা অবশ্যই এগিয়ে এসেছি এবং এই সমস্যাটি প্রশমিত করার জন্য আরও কিছু অভিজ্ঞতা সংগ্রহ করেছি। কোনও সমস্যা সমাধান না করে কোনও প্রকল্পে সংস্থান যুক্ত করতে আপনি আপনার কাজটিতে সফলতার সাথে প্রয়োগ করেছেন এমন কয়েকটি সমাধান কী।


5
আমি এই প্রশ্নটিকে অফ-টপিক হিসাবে বন্ধ করতে ভোট দিচ্ছি কারণ এটি সফ্টওয়্যার ইঞ্জিনে আরও ভাল ফিট করে। দঃপূঃ ( softwareengineering.stackexchange.com ), এবং এছাড়াও কারণ এটা কঠোরভাবে Devops-নির্দিষ্ট নয়
Dawny33

2
এটি কঠোরভাবে ডিভোপস নির্দিষ্ট প্রশ্ন। এটি সরাসরি সফ্টওয়্যার বিতরণ প্রক্রিয়া সম্পর্কিত। আপনি কি নিশ্চিত যে আপনি আসলে ডিওঅ্যাপ্সের অর্থ বুঝতে পেরেছেন?
জিরি ক্লাউদা

3
আপনি ডিভোপস বলে চলেছেন, আমি মনে করি না এটির অর্থ এটি কী বোঝায়।
জিরি ক্লাউদা

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

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

উত্তর:


18

এমএমএম কি

প্রথমে আমি ব্রুকের আইনের প্রসঙ্গটি ব্যাখ্যা করতে চাই। অনুমানটি কী ছিল যা তাকে 1975 সালে এটি পুনরায় তৈরি করতে বাধ্য করেছিল?

ম্যান-মাস হ'ল এক মাসের মধ্যে একজন ব্যক্তির দ্বারা সম্পাদিত কাজের প্রতিনিধিত্বমূলক কাজের অনুমানের একক; ব্রুকস আইন বলে যে মানব-মাসগুলিতে দরকারী কাজ পরিমাপ করা অসম্ভব।

উত্স: https://en.wikedia.org/wiki/The_Mythical_Man-Month

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

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

তবে আসলেই কি এভাবে চলতে হবে? আমাদের কি একপাল লিখতে হবে এবং যোগাযোগের চ্যানেলগুলি বিকাশকারীর সংখ্যা n(n − 1) / 2কোথায় রাখতে হবে n?

আমরা জানি যে এমন কয়েকটি সংস্থা রয়েছে যেখানে হাজার হাজার বিকাশকারী বড় প্রকল্পে কাজ করছে ... এবং এটি কার্যকর হয়। সুতরাং 1975 সাল থেকে পরিবর্তিত কিছু হতে হবে।


এমএমএম হ্রাস করার সম্ভাবনা

২০১৫ সালে, পুপেটল্যাবস এবং আইটি বিপ্লব ২০১৫ সালের স্টেট অফ ডিভস রিপোর্টের ফলাফল প্রকাশ করেছে । সেই প্রতিবেদনে তারা উচ্চ পারফরম্যান্সকারী সংস্থাগুলি বনাম অ-উচ্চতর পারফরম্যান্সের মধ্যে পার্থক্যের দিকে মনোনিবেশ করেছিল।

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

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

এটি সেই প্রতিবেদনের গ্রাফ -

প্রতি বিকাশকারী প্রতি দিন মোতায়েন

যদিও স্বল্প-সম্পাদনকারী সংস্থাগুলি পৌরাণিক ম্যান মাস অনুমানের সাথে সারিবদ্ধ হয়। উচ্চ-সম্পাদনকারী সংস্থাগুলি বিকাশকারীদের সংখ্যার সাথে রৈখিকভাবে মোতায়েন / দিন / দেবের সংখ্যা স্কেল করতে পারে।

জিন কিম দ্বারা ডেভসপেস লন্ডন 2016 এ একটি দুর্দান্ত উপস্থাপনা এই ফলাফলগুলি সম্পর্কে কথা বলে।


এটা কিভাবে করতে হবে

প্রথমত, কীভাবে একটি উচ্চ-পারফর্মিং সংস্থা হবেন? এখানে বেশ কয়েকটি বই রয়েছে যা এই সম্পর্কে কথা বলে, এই উত্তরে পর্যাপ্ত স্থান নেই তাই আমি কেবল তাদের সাথে লিঙ্ক করব।

সফ্টওয়্যার এবং আইটি সংস্থাগুলির জন্য, উচ্চ-পারফরম্যান্স প্রতিষ্ঠানের হয়ে ওঠার অন্যতম গুরুত্বপূর্ণ কারণ হ'ল: গুণমান এবং গতিতে মনোনিবেশ করা

উদাহরণস্বরূপ ওয়ার্ড কানিংহাম প্রযুক্তিগত tণকে সমস্ত বিষয় হিসাবে ব্যাখ্যা করেছে যা আমরা ফিক্সড না রেখে দিয়েছি। এটি ম্যানেজমেন্টের দ্বারা গৃহীত হয়েছে কারণ এটি সর্বদা একটি প্রতিশ্রুতি নিয়ে আসে যে সময় থাকলে এটি স্থির হয়ে যায়।

পর্যাপ্ত সময় কখনও হয় না, এবং প্রযুক্তিগত debtণ কেবল আরও খারাপ এবং খারাপ হয়ে যায়।

প্রযুক্তিগত debtণ বাড়ার কারণ এইগুলি কী?

  • উত্তরাধিকার কোড
  • পরিবেশের ম্যানুয়াল কনফিগারেশন
  • ম্যানুয়াল পরীক্ষা
  • ম্যানুয়াল মোতায়েন

লিগ্যাসি কোডটি মাইকেল ফেদারদের দ্বারা লিগ্যাসি কোডের সাথে কার্যকরভাবে কাজ করার ক্ষেত্রে সংজ্ঞায়িত করা এমন কোনও কোড যা স্বয়ংক্রিয় পরীক্ষণ নেই।

উত্পাদনে কোড পেতে যে কোনও সময় শর্টকাট ব্যবহার করা হয়; অপারেশনগুলি চিরকাল এই debtণ রক্ষণাবেক্ষণের জন্য বোঝা হয়ে থাকে। তারপরে মোতায়েনের প্রক্রিয়াটি দীর্ঘ এবং দীর্ঘ হয়।

জিন তার উপস্থাপনায় এমন একটি সংস্থা সম্পর্কে একটি গল্প বলে যা ছয় সপ্তাহের দীর্ঘ মোতায়েন রয়েছে। হাজার হাজার চূড়ান্ত ত্রুটিযুক্ত প্রবণ ক্লান্তিকর পদক্ষেপগুলিকে জড়িত করে 400 জনকে বেঁধে রেখেছিল এবং তারা প্রতিবছর চারবার এটি করবে।

ডিভোপসের অন্যতম মূল প্রতিশ্রুতি হ'ল আরও ঘন ঘন ছোট মোতায়েন করা থেকে নির্ভরযোগ্যতা আসে।


উদাহরণ

  • वेग জোনকিন্স ২০১১ : ওয়েলসিটি : অ্যামাজন 15k মোতায়েন / দিন করছে
  • এডাব্লুএস সামিট ২০১ Ken- এ কেন এক্সনার : অ্যামাজন 136k মোতায়েন / দিন করছে

এই দুটি উপস্থাপনা সমস্ত পণ্য দেখায় যা অ্যামাজন তাদের কোডটি উত্পাদনে নিযুক্ত করার সময় কমিয়ে দেয় did

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


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


4

আমি যা করেছি (এবং এটি কেবল বিষয়গত) তা নিম্নরূপ:

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

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

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


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

অনুগ্রহ করে অপেক্ষা করুন!
পিটার মুরিশকিন

4

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

Respectতিহ্যবাহী সিআই সিস্টেমগুলির এক্ষেত্রে একটি স্কেলিবিলিটি ইস্যু রয়েছে: ভাঙ্গা / অবসর / ব্লকেজগুলির সম্ভাবনা বৃদ্ধি করে সংহতকরণের গতি কমে যায় এবং ছোট দলগুলিকে বিচ্ছিন্ন হয়ে শিশু শাখাগুলিতে (অর্থাৎ আরও ধীরগতিতে) যাওয়ার জন্য আমন্ত্রণ জানানো হয়। দেখুন কীভাবে খুব বড় প্রকল্প / দলগুলির জন্য অবিচ্ছিন্ন ইন্টিগ্রেশন স্কেল? । এটি ঠিক পৌরাণিক ম্যান মাস ধারণার পাশাপাশি অভিনয় করে।

এই প্রশ্নের আমার উত্তরে আমি যে সমাধানটি পরামর্শ দিচ্ছি, একটি অত্যন্ত স্কেলযোগ্য সিআই সিস্টেম সত্যিকার সিআই - - আরও বৃহত্তর টিমের জন্য একক শাখা / ট্রাঙ্ক ভিত্তিক সংহতকরণ (এমনকি বিশাল আকারের সাথেও) মাইগ্রেশন সক্ষম করবে।

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

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

এই সমস্ত দেখা যেতে পারে, আমি বিশ্বাস করি, পৌরাণিক ম্যান মাস ধারণার প্রভাবগুলিকে প্রশ্রয় দেয়।


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

Having them all communicate via a single integration branch is an anti-pattern- কেন? যদি তারা এই অর্থে ডুপ্ল্যাড হয়ে থাকে যে তাদের আর তাদের কাজকে সংহত করার দরকার নেই তবে তারা শাখাটিকে একটি অ-ওভারল্যাপিং / অ-বিরোধী পদ্ধতিতে স্পর্শ করবে। যদি তাদের কাজটি এখনও ইন্টিগ্রেটেড করার প্রয়োজন হয় তবে অতিরিক্ত শাখাগুলি চালিয়ে যাওয়া সিআই পদ্ধতি থেকে বিচ্যুত হয়ে এবং এর সমস্ত সুবিধা হারাতে ইন্টিগ্রেশনকে বিলম্ব করবে এবং জটিল করবে ate
ড্যান কর্নিলিস্কু

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

আহ, দুঃখিত, হ্যাঁ - আমি এটির অভ্যস্ত এবং অন্যকে ভুলে যাচ্ছি না। শাখার দ্বারা আমি এসসিএম শাখার উচ্চতর স্তরের, জেনেরিক উপস্থাপনার কথা উল্লেখ করছি, যতক্ষণ না তারা একত্রে একত্রে পরিচালিত হয় ততক্ষণ প্রকৃত অন্তর্নিহিত এসসিএম সিস্টেম (গুলি) এর বিশেষত্বগুলি কী তা বিবেচনা করে না । একটি mainশাখা সহ 1 টি বড় রেপো বা 10 টি পাশাপাশি পাশের রেপো (গিট মডিউল?) প্রতিটি mainশাখা সহ সিআই সম্ভাব্যর চেয়ে বেশ সমতুল্য হওয়া উচিত।
ড্যান কর্নিলিস্কু

তারপরে প্রথম মন্তব্য থেকে আমার বক্তব্য সত্যকে ধারণ করে। বাবেলের একটি টাওয়ারে স্বাধীনতা করা যায় না, যখন আপনার একরঙা থাকে প্রত্যেকের জন্য ওভারহেড খুব বেশি থাকে - তাই সকলেই বোঝা হয়। ডিক্লোলড প্রকল্পগুলি পরিচালনা করার জন্য ডিকোলড ছোট ভিসিএস সিস্টেম হিসাবে প্রতিনিধিত্ব করা আরও ভাল। আপনি যদি এতদূর মনে করেন তবে কিছু সংস্থাগুলি সমস্ত কোম্পানির কোড পরিচালনা করতে ক্লিয়ারকেস এবং অন্যান্য ভিসিএস ব্যবহার করছিল - ওভারহেডটি ছিল ভয়াবহ।
ইভজেনি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.