উত্তরাধিকার কোডবেজে সময় ব্যয় নির্ধারণ করা


86

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

লিগ্যাসি কোডবেসটি খুব অগোছালো ('স্প্যাগেটি কোড') এবং প্রায়শই একটি আপাত-সরল ফাংশন (যেমন "মাল্টিপ্লেভ্যালিউবিটেন" নামে পরিচিত) পরে নিজেকে "3 টি বিভিন্ন স্কিমায় 10 টি সারণী জড়িত বৈধতা কোডের কয়েক হাজার লাইন হিসাবে প্রকাশ করে"।

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

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

এর মতো দৃশ্যে আমার কীভাবে যোগাযোগ করা উচিত?

লিগ্যাসি কোড রিফ্যাক্টরিং কীভাবে কাজ করে আমি পুরোপুরি বুঝতে পারছি, আমার প্রশ্নটি "রিফ্যাক্টর / পুনর্লিখন কীভাবে করবেন" সম্পর্কে নয়? তবে "রিফ্যাক্টর / অংশ এক্স পুনরায় লেখাতে কত সময় লাগবে?" এর বাস্তববাদী উত্তর দেওয়ার বিষয়ে?


37
একক মান দিয়ে নয়, প্রশস্ত মার্জিন দিয়ে অনুমান করুন; উদাহরণস্বরূপ 5 থেকে 15 দিন
রিচার্ড টিঙ্গল

32
@ জুনিয়রদেব: আপনি কেন "প্রযুক্তিবিহীন দলের নেতার পক্ষে এটি গ্রহণযোগ্য নয়" বলে মনে করেন? তিনি আপনার উত্তরটি পছন্দ করতে পারেন না, তবে আপনি যদি আরও ভাল অনুমান দিতে না পারেন তবে প্রায়শই খুব কম অনুমানের মাধ্যমে তাকে এখন খুশি করার চেষ্টা করার পরিবর্তে সরাসরি তাকে সরাসরি বলা এবং 5 দিন পরে তাকে বলার জন্য দুঃখিত, দুঃখিত, আমরা কেবল সম্পূর্ণ করেছি 30% থেকে টাস্ক।
ডক ব্রাউন

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

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

27
6 থেকে 8 সপ্তাহ , যেমনটি আমরা সবাই জানি।
ম্যাথিউ এম।

উত্তর:


111

বব মার্টিনের "ক্লিন কোডার" (এবং "ক্লিন কোড" আপনি যখন থাকবেন) পড়ুন। নিম্নলিখিতটি মেমোরি থেকে এসেছে তবে আমি দৃ strongly ়ভাবে আপনাকে নিজের অনুলিপিটি কিনতে পরামর্শ দিচ্ছি।

আপনাকে যা করতে হবে তা হল তিন পয়েন্টের ওজনযুক্ত গড়। আপনি প্রতিটি টুকরো কাজের জন্য তিনটি অনুমান করেন:

  • একটি সেরা কেস দৃশ্য - ধরে রেখে সবকিছু ঠিকঠাক হয় (ক)
  • সবচেয়ে খারাপ পরিস্থিতি - ধরে নেওয়া সবই ভুল হয়ে যায় (খ)
  • আসল অনুমান - আপনি যা মনে করেন সম্ভবত এটি গ্রহণ করবে (সি)

আপনার অনুমানটি তখন (a + b + 2c) / 4

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

সম্পাদনা:

আমার অনুমানগুলি যখন আমি এর উত্তর দিয়েছি:

  1. ওপি হ'ল একটি জুনিয়র বিকাশকারী (নির্বাচিত ব্যবহারকারীর উপর ভিত্তি করে)। প্রদত্ত কোনও পরামর্শ তাই কোনও প্রকল্প পরিচালক বা টিম লিডের দৃষ্টিকোণ থেকে নয় যাকে আশা করা যেতে পারে যে বিকাশের পরিবেশের পরিপক্কতার উপর নির্ভর করে আরও পরিশীলিত প্রাক্কলন করতে সক্ষম হবে।
  2. প্রকল্প ব্যবস্থাপক একটি প্রকল্প পরিকল্পনা তৈরি করেছেন যাতে সরবরাহ করতে বেশ কয়েক মাস সময় লাগার জন্য পরিকল্পনা করা মোটামুটি বিশাল সংখ্যক কাজ রয়েছে।
  3. ওপিকে তাদের প্রকল্প পরিচালকের দ্বারা নির্ধারিত কাজগুলির জন্য অনেকগুলি অনুমান সরবরাহ করতে বলা হচ্ছে যারা প্রকল্প পরিকল্পনায় ফিড সরবরাহ করতে এবং অগ্রগতি ট্র্যাক করার জন্য ব্যবহার করার জন্য যুক্তিসঙ্গতভাবে সঠিক নম্বর চান (সম্ভাবনা বক্রতা নয় :))।
  4. ওপির প্রতিটি অনুমান উত্পাদন করতে কয়েক সপ্তাহ নেই এবং অতিরিক্ত আশাবাদী অনুমান দিয়ে আগে পুড়িয়ে ফেলা হয়েছে এবং বাতাসে আঙুলটি চাপিয়ে রাখা এবং "2 সপ্তাহ" বলার চেয়ে আরও সঠিক পদ্ধতি চাইছেন, যদি না 2 মাসের ক্ষেত্রে কোডটি বিশেষভাবে তীব্র হয় না অথবা আরও".

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

আসুন একটি কাজের উদাহরণ করা যাক:

  • সেরা ক্ষেত্রে, অভিজ্ঞতা থেকে আমি সবচেয়ে দ্রুততম কাজটি করেছি সপ্তাহের একটি সমাপ্তি শুরু (5 দিন)
  • সবচেয়ে খারাপ ঘটনা, অভিজ্ঞতা থেকে, সেই সময়টি ছিল যে সর্বত্র লিঙ্ক ছিল এবং এটি আমার 6 সপ্তাহ (30 দিন) সময় নেয়
  • আসল অনুমান, এটি সম্ভবত আমার 2 সপ্তাহ (10 দিন) লাগবে

5 + 30 + 2x10 = 55

55/4 = 13.75 যা আপনি আপনার প্রধানমন্ত্রীকে বলছেন। হতে পারে আপনি 14 দিন পর্যন্ত ব্যয় করতে পারেন। সময়ের সাথে সাথে (যেমন দশটি কাজ), এটির গড় হওয়া উচিত।

সূত্রটি সামঞ্জস্য করতে ভয় পাবেন না। হয়তো অর্ধেক কাজগুলি দুঃস্বপ্নের মধ্যে পড়ে এবং কেবল দশ শতাংশই সহজ; সুতরাং আপনি এস্টমেটটিকে একটি / 10 + বি / 2 + 2 সি / 5 করুন। আপনার অভিজ্ঞতা থেকে শিখুন।

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


31
"তারা বোকা - তবে আমি এরকম কিছু লোকের সাথে দেখা করেছি"। প্রকৃতপক্ষে.
ক্রামি

17
আমি এটি upvote করতে চান, কিন্তু আমি একটি বিন্দু অনুমান পিছনে পেতে পারে না।
রাবারডাক

6
ঠিক আছে. আপনার শেষ বুলেট পয়েন্টের জন্য +1।
রাবারডাক

5
+1, একটি অনুমান একটি সঠিক সময় নয় এবং তাই এটি কোনও একক সংখ্যা হতে পারে না। এটি যুক্ত করার মতোও হতে পারে যে এটি একটি অনুমান , প্রতিশ্রুতি নয়, সুতরাং পরিচালক অবশ্যই আশা করবেন না যে আপনি অবশ্যই হয়ে গেছেন। পার্থক্যটি তাদের পরিচালকের কাছে পরিষ্কার করা এটি একটি সফ্টওয়্যার ইঞ্জিনিয়ারের দায়িত্ব।
কেট

10
@mcottle অবগতির জন্য এই হল না একটি মন্টে কার্লো আনুমানিক হিসাব। আপনি কেবল একটি পিইআরটি বিতরণের প্রত্যাশিত মানটি (যা কেবল সময়ের প্রায় 50% প্রায় সফল হবে) গণনা করেছেন। মন্টি কার্লো এমন একটি প্রক্রিয়া নির্দেশ করে যেখানে পরিসংখ্যানগত মানগুলি এলোমেলো সংখ্যার জেনারেটর সহ ব্রুট ফোর্সের মাধ্যমে মূলত প্রাপ্ত হয়।
ডেভিড মিস্টার

30

আধিক্য-চতুর পদ্ধতির প্রবর্তনের জন্য এটি একটি ভাল মুহূর্ত হতে পারে। যদি ঘন্টা / দিনের ক্ষেত্রে অনুমানের পরিবর্তে আপনি একটি ফাইবোনাকির ধরণের স্কেল বরাদ্দ করেন এবং প্রতিটি কার্যকে এটি কত বড় তার উপর ভিত্তি করে একটি মূল্য দিয়েছিলেন:

  • 0 - তাত্ক্ষণিক
  • 0.5 - দ্রুত জয়
  • 1 - সাধারণ পরিবর্তন
  • 2 - বেশ কয়েকটি সাধারণ পরিবর্তন
  • 3 - আরও চ্যালেঞ্জিং
  • 5 - কিছু চিন্তা করা প্রয়োজন
  • 8 - কাজের একটি গুরুত্বপূর্ণ পরিমাণ
  • 13 - কাজের একটি বিশাল অংশ যা সম্ভবত ভেঙে ফেলা দরকার
  • 20 - কাজের একটি বিশাল অংশ যা অবশ্যই স্পষ্টভাবে ভেঙে ফেলা দরকার

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

https://pm.stackexchange.com/questions/4251/why-would-teams-use-the-fibonacci-sequence-for-story-points

https://stackoverflow.com/questions/9362286/why-is-the-fibonacci-series-used-in-agile-planning-poker

এটি সত্যিই চটজলদি নয় কারণ এটি অনুষ্ঠানগুলিকে জড়িত করবে না তবে আমি ওপি থেকে ধারণা পেয়েছি যে সে নিজেরাই। আশা করি এই পদ্ধতির ফলে আরও কিছু আত্মবিশ্বাসী অনুমান দেওয়া যেতে পারে।


এটি বড় আকারের প্রকল্পগুলিতে (এক মাসেরও বেশি) সেরা কাজ করে। ছোট স্কেল প্রকল্পগুলিতে, এটি কেবল কয়েকটি অনুরূপ প্রকল্পের পরে কাজ করতে পারে।
এমিল বার্গারন

1
@RobP। এটি চৌকস গল্পের পয়েন্টের অগ্রগতিতে এক গম্ভীর: 13, 20, 40, 100 - যদিও বেশিরভাগ লোকেরা 20 টির বেশি পয়েন্ট নির্ধারণ করতে
ততক্ষণে

1
গল্পের পয়েন্টগুলি + অনুষ্ঠানগুলি = চটজলদিতে আমি একমত নই।
ওয়েবদেবডাক

1
@ ওয়েবেদেবডাক্ক "রাজি নন"?
ক্রিলগার

1
@ ক্রিলগার ডি'হোহ! অসম্মত!
ওয়েবদেবডাক

14

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

তারপরে আপনি কয়েকটি বই কিনতে যাবেন।

  1. সফ্টওয়্যার অনুমান: স্টিভ ম্যাককনেল দ্য ব্ল্যাক আর্টকে সত্যায়ন করা
  2. মাইকেল পালক দ্বারা লিগ্যাসি কোড নিয়ে কার্যকরভাবে কাজ করা

ম্যাককনেলের বই আপনাকে ডেটা সংগ্রহ করা শুরু করতে এবং তারপরে আরও সঠিক অনুমান করার জন্য কীভাবে এটি ব্যবহার করবেন তা ব্যাখ্যা করতে চলেছে। সর্বদা 3 পয়েন্টের অনুমান দিন! সর্বদা. বইয়ের সেই অংশগুলি হাইলাইট করতে ভুলবেন না যে কীভাবে নিম্ন মানের কোডটি আপনার অনুমানগুলিকে ফুটিয়ে তুলবে talks এগুলি আপনার বসকে দেখান।

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

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

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


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

7

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

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

  1. প্রাথমিক অনুমান - ধরে নিয়েছি যে আমাকে খনন করতে কিছু সময় ব্যয় করতে হবে তবে আর্কিটেকচারটি আমাদের যে পরিবর্তনগুলি চান তা অনুমতি দেয়
  2. অ্যাঞ্জেলিক প্রাক্কলন - ধরে নেওয়া যায় যে সবকিছু স্বচ্ছ / সন্ধান করার সহজ এবং আমাকে কেবলমাত্র ছোটখাটো পরিবর্তন করতে হবে (এটিই আমি মাঝে মাঝে ছাড়ি ... বিশেষত যদি আমি জানি যে একটি নির্দিষ্ট কোড বেসে কেবল শয়তান রয়েছে)
  3. অ্যাবিসাল প্রাক্কলন - ধরে নিয়েছে যে উত্তরাধিকারের কোডের মৌলিক কাঠামো অনুরোধ করা বৈশিষ্ট্যের সাথে বেমানান এবং আমি জিনিসগুলিকে কাজ করতে বড় রিফ্যাক্টরিং করব

সমস্ত তিনটি অনুমান বিবেচনা কতটা কঠিন বৈশিষ্ট্য কোনো অভিজ্ঞতা আমি যে সাধারণ কোড বেস সঙ্গে ছিল থাকেন এবং তার মধ্যে, এবং আমার অন্ত্রে পরিবর্তন (যা আমি পেয়েছি সম্পর্কে বোধ করতে বেশ নির্ভুল হতে)

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


শেষ অনুচ্ছেদ জন্য +1 - আমি ইচ্ছুক আমি অন্তর্ভুক্ত চাই যে আমার উত্তর
mcottle

3

যখন আমি এই ধরণের সমস্যার মুখোমুখি হয়েছি তখন আমি আমার অনুমানের উপর রেঞ্জ দেওয়ার উপর নির্ভর করেছি। আমি আমার মনিবদের বলার সাথে দূরে সরে এসেছি "এই কোডবেসে ভাল-কফটি প্রাক্কলন করা শক্ত is আপনি যদি এটির জন্য জিজ্ঞাসা করেন তবে এটি একটি বিস্তৃত অনুমান হবে" " আমি একবার অনুমান হিসাবে "3 দিন থেকে 3 বছর" দিয়েছি। এটি কোনও জনপ্রিয় অনুমান ছিল না বলাই বাহুল্য, তবে আমি এটিই দিয়েছিলাম।

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

এর কয়েকটি কী রয়েছে:

  • মনিব যে এই অনুমান ভাল একটি কথোপকথন হিসাবে গণ্য করা হয় কারণ আপনি সন্তুষ্ট হবে টাস্ক মত যখন আপনি এটি কাজ কেমন বিষয়ে আরো জানুন। আপনার বসের কাছে কেবলমাত্র একটি একক অনুমানের জন্য জিজ্ঞাসা করা হলে তারা তাদের কাছে তথ্য রাখার এই সুযোগ।
  • কোন ট্রেড কোড বিকাশের গতি বনাম আনুমানিক উন্নতি করার বিকল্পগুলি অফার করুন। তাদের ঘুরিয়ে দিতে পারে এমন একটি অতিরিক্ত নক করুন Give কখনও কখনও কর্তারা জানেন যে কোনও কাজ কেবল সম্পন্ন করা দরকার এবং তাদের কেবল একটি বলপার্কের প্রাক্কলন প্রয়োজন। অন্য সময় তারা কোনও কাজের উপকারিতা এবং চালনা চালায় এবং অনুমানগুলি পরিমার্জন করার ক্ষমতা মূল্যবান।
  • যদি সম্ভব হয় তবে আমি সিএনরজি বোনাসও দেব। প্রায়শই স্থাপত্যগত উন্নতি রয়েছে যার অনেক কার্যক্রমে উপকার হবে। আমার যদি 10 টি কার্য থাকে তবে তার সবগুলিতে এখন "1-2 মাস লাগবে, তবে আপগ্রেড এক্সের সাথে 2 সপ্তাহ লাগবে", এক্স আপগ্রেডের জন্য যে 20 সপ্তাহ লাগতে পারে তা বিক্রি করা সহজ sell

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

আপনার কতটা সময় নেওয়া উচিত তা অনুমান করুন, তারপরে সেই সংখ্যাটি চারগুণ করুন এবং আপনার অনুমান হিসাবে এটি দিন।

এবং

হাফস্টাডটারের আইন: "আপনি হাফস্টাডটারের আইনটি বিবেচনায় নিলেও এমনকি আপনার প্রত্যাশার চেয়ে সবসময়ই বেশি সময় লাগে।"


2

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

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

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


যদিও পুরাতন কোডটি বোঝার জন্য গভীর বোঝাপড়া করা প্রয়োজন, তবুও পুরাতন কোডটি নথিভুক্ত করার এবং নতুন লিখিত কোডটি পাওয়ার বিন্দুতে একটি বিস্তৃত পার্থক্য রয়েছে যেখানে এর কোনও বাগ নেই।
থরবজর্ন রাভন অ্যান্ডারসন

1

এরকম পরিস্থিতিতে আমি বিশ্বাস করি না যে ভাল অনুমান দেওয়া সম্ভব। মূল সমস্যাটি হ'ল প্রায়শই এটি করার একটি বড় অংশটি ঠিক কী করা দরকার তা নির্ধারণ করে।

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


-1

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

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

ব্রাউনফিল্ড প্রকল্পের বৈশিষ্ট্যগুলি অনুমান করার জন্য আমরা একটি হিউরিস্টিক্স ব্যবহার করেছি: আমরা অনুমান করেছি যে ইতিমধ্যে কার্যকর করা কিছু ছাড়াই গ্রিনফিল্ড প্রকল্পে এই বৈশিষ্ট্যটি প্রয়োগ করতে কতক্ষণ সময় হত । তারপরে ইতিমধ্যে বিদ্যমান ধ্বংসাবশেষ সাফ করার জন্য আমরা সেই অনুমানটিকে 2 দিয়ে বহুগুণ করেছিলাম।

এই উপাদানটি সংযুক্তির পরিমাণ এবং সামগ্রিক কোড আকারের উপর নির্ভর করে, তবে আপনি যদি কিছু বৈশিষ্ট্য এইভাবে করেন তবে আপনি প্রকৃত প্রমাণের ভিত্তিতে সেই ফ্যাক্টরটিকে বিভক্ত করতে পারেন।


-3

আমার মনে হয় আপনার বসের সাথে বসুন, তাকে সরাসরি চোখে দেখুন এবং বলুন:

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

দৃ firm় দৃser় জেসেস্টুলেশন যেমন পয়েন্টিং ব্যবহার করুন এবং আপনার চেয়ারে এগিয়ে বসুন।

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


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

কেরিয়ার আত্মহত্যা বা বড় খেলায় লাফিয়ে
ইওয়ান

ঠিক আছে, এটি একটি ন্যায্য পয়েন্ট @ ইভান। আমি বলতে পারি না আমি এমন কিছু কাজ করিনি যা মুহুর্তে ক্যারিয়ারের আত্মহত্যার মতো বলে মনে হয়েছিল।
রাবারডাক

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

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