কীভাবে ব্যাখ্যা করবেন যে নমুনার আকার প্রকল্প দৈর্ঘ্যে প্রভাবিত করে না


58

আমাদের বড় এন্টারপ্রাইজ প্রকল্প রয়েছে যেগুলিতে তারা সাধারণত কোনও উত্স ডাটাবেস থেকে কোনও গন্তব্য ডাটাবেসে ডেটা অনুলিপি করে এবং তারপরে এই ডেটা সিঙ্ক করে এমন অনেকগুলি অতিরিক্ত অ্যাপ্লিকেশন স্থাপন করে involve

শেষ প্রকল্পটিতে 250,000 আইটেম রয়েছে (ডেটার সারি)। পরবর্তী প্রকল্পে কেবল 4,000 আইটেম থাকবে। প্রকল্প পরিচালকগণ / ব্যবসায়ীরা বিশ্বাস করেন যে প্রকল্পটি শেষ হওয়ার সময় 1/10 হতে হবে কারণ এটি শেষ প্রকল্পের আকারের এক ভগ্নাংশ।

একটি ভাল উপমা কী তা বোঝাতে আমি এটি ব্যবহার করতে পারি যে এক সিস্টেম থেকে অন্য সিস্টেমে ডেটা স্থানান্তর করতে লিখন কোডটি সংখ্যা আইটেম নির্বিশেষে একই পরিমাণে লাগে - এটি 1 আইটেমের জন্য বা 100,000,000 এর জন্য লিখলে কোনও প্রোগ্রামিং থেকে প্রায় একই পরিমাণ সময় লাগে দৃষ্টিকোণ


46
এটি ঠিক একই অবস্থা বলে মনে হচ্ছে না - তবে আমি যখন এমন ম্যানেজারদের মুখোমুখি হই যারা মনে করে যে তারা আরও মরদেহ ফেলে কোনও প্রকল্পের গতি বাড়িয়ে দিতে পারে তখন আমি বলি "9 মহিলারা
একমাসে

3
আপনি কীভাবে এটি ব্যাখ্যা করবেন সে সম্পর্কে সতর্ক থাকুন। এটি স্পষ্টভাবে 1 আইটেম হিসাবে 100,000,000 আইটেমের জন্য বেশি সময় নেয় না। 1 আইটেমের জন্য, আপনি কোনও প্রোগ্রামিং ছাড়াই কেবল হাতে হাতে রূপান্তর করতে চান।
মার্কজে

আপনার যদি এটির ব্যাখ্যা দেওয়ার দরকার হয় তবে আপনি ইতিমধ্যে নষ্ট হয়ে
বালোগ পাল

উত্তর:


112

তাদের বলুন এটি দেশের প্রত্যন্ত অঞ্চলে নতুন চার লেন মহাসড়ক তৈরির মতো। সেই রাস্তাটি দিনে 100 গাড়ি বা দিনে 1000 গাড়ি ব্যবহার করে, রাস্তাটি তৈরির চেষ্টা প্রায় একই রকম হবে।

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


1
+1 ভাল উপমা, আমি কাজ করে এমন একটি শারীরিক সন্ধানের জন্য লড়াই করছিলাম;)
জে কে।

1
+1 আমি একটি স্থান থেকে অন্য জায়গায় প্লাম্বার চলমান পাইপের কথা ভাবছিলাম।
জোশুয়া ড্রেকে

13
গাড়ির
সাদৃশ্যগুলি

7
"ফিক্সড কস্ট" একটি দুর্দান্ত কীওয়ার্ড যা ব্যবসায়ের লোকেরা পছন্দ করে এবং বুঝতে পারে :)
ট্যামস সেজেলি

4
সমস্যা হচ্ছে, সাদৃশ্যটি কাজ করে না। রাস্তা নির্মাতারা কেবলমাত্র চার-লেনের মহাসড়ক তৈরি করেন যদি তারা প্রচুর ট্র্যাফিকের আশা করেন (দিনে 25,000 যানবাহন সাধারণ হবে A দিনে এক মিলিয়ন গাড়ি? বাহ)। যদি তারা 50 গুণ কম আশা করে তবে তারা অনেক কম রাস্তা তৈরি করবে। আপনার পরিচালকরা হয়ত বলতে পারেন "তাহলে আপনি কেন এই সমস্যা নিয়ে 4 লেনের মহাসড়ক তৈরি করছেন? এটি একটি একক-লেনের সমস্যা বা ময়লা ট্র্যাকের সমস্যা"
মার্ক জে

102

তাদের একটি ক্যালকুলেটর দিন এবং 1238783423 এ 9858238483 যোগ করতে বলুন, এটি কতক্ষণ সময় নেয়। তারপরে তাদের 3423 থেকে 8483 যোগ করার জন্য বলুন এবং আপনি উত্তরটি প্রায় 100000 সময়ের চেয়ে দ্রুত প্রত্যাশা করবেন বলে তাদের বলুন।

সফটওয়্যারটি বিকাশের সময়টি চালাতে যে পরিমাণ সময় নেবে তার পরিমাণের পরিমাণ আপনি সম্ভবত ব্যাখ্যা করতে পারেন (সম্ভবত) ।


11
আমি আপনার ক্যালকুলেটর উপমাটি মাত্র +1 করতে লগ ইন করেছি। পরিচালকদের মাঝে মাঝে হাসিখুশি হতে পারে।
অ্যালেক্স

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

2
নিশ্চিত না. আমি মনে করি এটি আরও অনেকটা "একটি ক্যালকুলেটারের জন্য কতটা ব্যয় করে যা একটি সারিতে 4000 বার দুটি সংখ্যা যোগ করতে পারে" বনাম "হোস্টের জন্য এটির জন্য একটি ক্যালকুলেটারের জন্য অনেক বেশি খরচ হয় যা দুই সারিতে 250,000 বার যোগ করতে পারে"।
স্কট হুইটলক

বাহ, উজ্জ্বল
বালোগ পাল

35

ম্যানেজার স্পোক এ এটি রাখুন।

আপনি যদি প্রতি সেকেন্ডে 1 টি উইজেটগুলিতে উইজেট তৈরি করতে কোনও মেশিন তৈরি করেন তবে আপনি এটি 100 টি উইজেট বা 10000 উইজেট তৈরি করতে ব্যবহার করুন তা বিবেচ্য নয়, মেশিনটি নিজেই একই সময় তৈরি করতে সময় নেয়।

পার্থক্য রান সময় হয় না, সময় তৈরির।

হাইপোথটিক্যাল উইজেট কারখানাগুলির সাথে সমস্ত পরিচালনা ক্লাস এই জাতীয় সমস্যায় কাজ করে।


5

একটি উপমা ব্যবহার করবেন না। শুধু এটি ব্যাখ্যা।

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

কথা বলার চেয়ে শিক্ষাই ভাল


3

সত্যই কোনও উপমা নয়, তবে আমি এখনও এই যুক্তি মোকাবেলা করার একটি ভাল উপায় বিশ্বাস করি: এর মধ্যে মারাত্মক ত্রুটি রয়েছে তা দেখান।

আপনার পূর্ববর্তী প্রকল্পটিতে কিছু সংশোধন করে ডেটা অনুলিপি করে (আমি যা পাই তা থেকে) অন্তর্ভুক্ত।

যদি আমি এটি সঠিকভাবে পেয়েছি তবে এটি একটি দলের একটি কথা, বলুন, কয়েক মাসের মধ্যে 100 জন হিসাবরক্ষক করতে পারেন। তাহলে তারা কেন সফ্টওয়্যার বিকাশকারীদের সমস্যায় ফেলে দিয়েছে?

কারণ আপনার তৈরি সফ্টওয়্যারটি 10 ​​বা 10 মিলিয়ন টুকরো ডেটা প্রক্রিয়া করবে কিনা তা বিবেচ্য নয় (ঠিক নয়, তবে আমি সন্দেহ করি যে আপনার পরিচালকরা O(n)জটিলতার যত্ন নেন)। সুতরাং, এটি সম্ভবত সস্তা, দ্রুত এবং ক্লিনার (কম ত্রুটি-প্রবণ প্রক্রিয়া) ছিল।

আপনি যদি আরও মৌলবাদী হন তবে আপনি এমনকি সুপারিশ করতে পারেন যে তারা যদি সফটওয়্যার টিমটি কত দ্রুত কাজ করে তা পছন্দ না করে তবে তারা সর্বদা অ্যাকাউন্টেন্টগুলিতে হাত দিয়ে কাজটি করতে কল করতে পারে।

আপনি শেষ প্রকল্পটি বিকাশকালে এটি আপনার পরিচালকদের জীবনকে আরও সহজ করে দিয়েছিল এবং এখন, যখন তারা একই যুক্তি প্রয়োগ করতে হবে পরবর্তী সফ্টওয়্যারটি 10 ​​মিলিয়ন বা 4 এ কাজ করে তবে সেগুলি বিবেচ্য নয় either 000 সারি, তারা হঠাৎ এটি সম্পর্কে ভুলে যায়।

আমি মনে করি আপনার ক্ষেত্রে পরিচালকগণ কেবল একটি অনুমানের গেম খেলছেন এবং 4000 এবং 250000 এর মধ্যে পার্থক্য চিহ্নিত করে এবং কিছু 'অপরাধবোধ' প্রত্যাশার মাধ্যমে দলটিকে দ্রুত কাজ করতে বাধ্য করার চেষ্টা করছেন। আমি ভুল হতে পারি, তবে আমি এটি আগেও দেখেছি।

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


3

আমি জানি আপনি একটি উপমা চেয়েছিলেন, তবে আমি মনে করি এটিই ভুল কৌশল।

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

এটি আপনাকে মেলবোর্নে যেতে হবে যদি এমন হয় - তবে আপনাকে প্রথমে গাড়িটি তৈরি করতে হবে।
অবশ্যই, সিডনিতে গাড়ি চালানো দ্রুত হতে পারে - তবে গাড়ি তৈরি করতে একই পরিমাণ সময় লাগে।
ঠিক আছে, আমি আপনাকে সর্বোপরি একটি উপমা দিয়েছি।


0

টেলিফোন হতে পারে? আপনার গ্রাহক একটি কাস্টম তৈরি ফোন চান। যদি তিনি প্রতিদিন 0 টি কল করেন বা প্রতিদিন 100 কল করেন তবে তার ফোন তৈরি করতে একই পরিমাণ সময় লাগবে।

একটি ফোন যে তথ্য প্রেরণ করে তা আপনার প্রোগ্রাম দ্বারা অনুলিপি করা ডেটার সাথে সাদৃশ্যপূর্ণ।

আপনার পরিচালকরা প্রোগ্রামটির আসল রান-টাইমের সাথে ডেভ-টাইমকে বিভ্রান্ত করছেন বলে মনে হচ্ছে। তবে তাদের ভুল বোঝাবুঝি আলাদা হতে পারে। তারা ধরে নিতে পারে যে "জড়িত" কম আছে। কেবলমাত্র কম ডেটা রেকর্ড নয়। যদি 100000 স্বতন্ত্র ডেটা ক্ষেত্র থাকে তবে এটি কেবল 10 টি ক্ষেত্রের তুলনায় একটি বৃহত ডেভ প্রচেষ্টা হবে। সিস্টেম থেকে সিস্টেমে আরও ম্যাপিংয়ের কাজ। এক্ষেত্রে এগুলি আসলে সঠিক হতে পারে তবে এখনও কিছু ধ্রুবক ওভারহেড জড়িত রয়েছে এবং সময় পাওয়ার জন্য আপনি কেবল ক্ষেত্রের সংখ্যা দ্বারা ভাগ করতে পারবেন না।


0

আমি এটি বর্ণনা করতে চাই ডেটা দৈর্ঘ্য এবং প্রস্থ 2 আছে। দৈর্ঘ্য হল রেকর্ডের সংখ্যা, প্রস্থ সমস্ত টেবিল জুড়ে মোট কলামগুলির সংখ্যা number

এখন আপনি যখন ডেটা আমদানি করতে চান এটি কোনও গর্তের মাধ্যমে একটি ব্লক পাওয়ার মতো। ক্ষুদ্রতম মাত্রার জন্য আপনাকে যথেষ্ট গর্ত তৈরি করতে হবে এবং তারপরে এই ব্লকটি বহন করতে হবে

এখন 10 মিলিয়ন এবং 10 হাজার ক্ষুদ্রতম মাত্রা এখনও প্রস্থ। সুতরাং এটি প্রস্থ যা স্থির করে দেয় যে গর্তটি তৈরি করতে এটি কত সময় নেয়।

রূপকটি সম্পূর্ণ করতে, ff এটি দৈর্ঘ্যের দৈর্ঘ্যটি হ'ল আপনি নিজে নিজেই ডাটা টাইপ করবেন


-1

আমি প্রতি সপ্তাহে কয়েকশ ক্লায়েন্ট ফাইল আমদানি করি।

একটি জিনিস আমি পেয়েছি যে ছোট ফাইলগুলি সাধারণত ডেটা আমদানি বিকাশ করতে বেশি সময় নেয় কারণ:

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

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


-1

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

অনেক পরিচালক একটি নতুন কর্মচারীকে প্রশিক্ষণের সাথে জড়িত ওভারহেডের সাথে পরিচিত, তাই এটি তাদের বুঝতে পারে to

(উপমাটি ইনফোফারটি ভেঙে দেয় কারণ আপনার নতুন কর্মচারী একজন পরাশক্তি চালিত রোবট, আপনি যতগুলি রেকর্ডই নিক্ষেপ করেন না কেন সময়সাপেক্ষে খুব কম সময়ে কাজটি সম্পন্ন করতে পারবেন, তবে আশা করি আপনি ততক্ষণে আপনার বক্তব্যটি তৈরি করেছেন))

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