বনাম দ্বিতীয়-সিস্টেম প্রভাব ফেলে দেওয়ার জন্য একটি তৈরি করুন


15

একদিকে এমন একটি পরামর্শ রয়েছে যা বলছে "ফেলে দেওয়ার জন্য একটি তৈরি করুন"। কেবলমাত্র একটি সফ্টওয়্যার সিস্টেম শেষ করে এবং শেষের পণ্যটি দেখার পরে আমরা বুঝতে পারি যে ডিজাইনের পর্যায়ে কী ভুল হয়েছে এবং কীভাবে আমাদের সত্যিই এটি করা উচিত ছিল তা বুঝতে পারি।

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

এখানে কি এই নীতির মধ্যে কিছু দ্বন্দ্ব নেই? সমস্যাগুলির বিষয়ে সঠিক দৃষ্টিভঙ্গি কী এবং এই দুটিয়ের মধ্যে সীমানা কোথায়?

আমি বিশ্বাস করি যে এই "ভাল অভ্যাসগুলি" প্রথমে ফ্রেড ব্রুকস কর্তৃক দ্য মিথল ম্যান-মাসিকের সেমিনাল বইয়ে প্রচারিত হয়েছিল ।

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


3
ব্যক্তিগতভাবে আমি মনে করি আপনার তিনটি প্রয়োজন - একটির সমস্যার বুনিয়াদি বুঝতে একটি, উন্নত জিনিসগুলি বোঝার জন্য দুটি এবং তৃতীয়টি এটি সঠিক হওয়ার জন্য।
ওয়াট বার্নেট

5
@ ওয়াট: আমি আমার ক্ষেত্রে "এটি ঠিক করার জন্য" সঠিক নম্বরটি হ'ল এন + 1, এন বর্তমান পুনরাবৃত্তি
ম্যাট্নজ

উত্তর:


23

ফেলে দেওয়ার মতো একটি তৈরি শুরু থেকে আসে "আপনি যা জানেন না তা জানেন না" শুরুতে, সুতরাং শুরুতে যা করা উচিত তা আপনি যখন যাচ্ছেন তখন আপনি শিখবেন।

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

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

সুতরাং একটি ফেলে দেওয়ার জন্য এটি তৈরি করুন, এটিকে নিক্ষেপ করুন এবং কোনও সুযোগ বাড়ানো ছাড়াই আবার এটি তৈরি করুন এবং আপনার দ্বিতীয় সিস্টেম সমস্যা হবে না। (এটি বেগুনি আকাশ, গোলাপী সমুদ্র এবং উড়ন্ত শূকরগুলির সাথে গ্রহগুলিতে আরও প্রায়ই করা যায় to)


একটি প্রোটোটাইপ "প্রথম সিস্টেম, এটি ফেলে দেওয়া হবে" না? যদি এটি সত্য হয় তবে যতদূর আমি জানি, প্রোটোটাইপের সাধারণত টেন্ড পণ্যটির সম্পূর্ণ কার্যকারিতা থাকে না; বা কমপক্ষে একটি থ্রো-দূরে প্রোটোটাইপ প্রসঙ্গে।
m3th0dman

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

@ জোয়েরি সেব্রচেটস রিফ্যাক্টরিং এর অর্থ প্রথম সিস্টেমটি ফেলে দেওয়া নয়; এছাড়াও আপনি ভুল প্রয়োজনীয়তা বা খারাপ আর্কিটেকচারকে
রিফেক্টর

কেবলমাত্র সুস্পষ্ট স্পষ্টতার জন্য এই উত্তরটিতে আমাকে যুক্ত করতে হবে যে দ্বিতীয় সিস্টেমটি দ্বিতীয় উত্পাদন ব্যবস্থাকে বোঝায়।
থমাস Owens

0

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

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

সম্ভাব্যতা বিশ্লেষণ - ব্যবসায়ের প্রয়োজনীয়তা আবিষ্কার করুন। প্রকল্পের জন্য একটি ব্যবসায়িক কেস তৈরি করুন।

প্রকল্প পরিকল্পনা - পরিষ্কারভাবে আপনার প্রাথমিক সুযোগটি সংজ্ঞায়িত করুন, কীভাবে সমাধানটি সরবরাহ করা হবে তা পরিকল্পনা করুন, একটি বেসলাইন তৈরি করুন, পরিকল্পনায় আটকে থাকুন। সমালোচনামূলক পথে নয় এমন কিছুতে সময় ব্যয় করবেন না।

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

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

বাস্তবায়ন - নকশার মতো সফ্টওয়্যারটি কোড করুন। সমস্ত কোড অবশ্যই এসডি থেকে উপাদানগুলির সাথে লিঙ্ক করা উচিত।

বৈধতা - ইউনিট পরীক্ষা, সংহতকরণ পরীক্ষা, কর্মক্ষমতা, ... (আরআর থেকে সমস্ত ব্যবহারের ক্ষেত্রে এখন পরীক্ষা করা প্রয়োজন)

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

আরও ভাল সফ্টওয়্যার তৈরি করতে এবং প্রথমবার এটিকে সঠিকভাবে পেতে এই শর্তাদি দেখুন:

  • সম্ভাব্যতা বিশ্লেষণ (উদাহরণস্বরূপ কীভাবে ব্যবসায়িক কেস তৈরি করা যায়)
  • প্রকল্প পরিচালনা (উদাহরণস্বরূপ, প্রকল্প পরিকল্পনা এবং ঝুঁকি প্রশমন সহ ঝুঁকি নিবন্ধক)
  • প্রয়োজনীয়তা ইঞ্জিনিয়ারিং (elication, বিশ্লেষণ, নির্দিষ্টকরণ, বৈধকরণ)
  • সফ্টওয়্যার ডিজাইন (ইউএমএল এবং উপাদান-ভিত্তিক সফ্টওয়্যার ইঞ্জিনিয়ারিং)
  • সফ্টওয়্যার নির্মাণ (নকশার নিদর্শন, ফ্রেমওয়ার্ক, রক্ষণাত্মক প্রোগ্রামিং)
  • সফ্টওয়্যার বৈধকরণ (ইউনিট টেস্টিং, ইউএটি, ইত্যাদি)

1
প্রয়োজনীয়তা পরিবর্তনের সাথে সাথে সবসময় পুনরায় কাজের প্রয়োজন হবে। তবে সু-নকশিত সিস্টেমে এই সম্পর্কগুলি নিরবিচ্ছিন্ন অংশগুলিকে প্রভাবিত না করে ক্রমবর্ধমান এবং পরিষ্কারভাবে করা যেতে পারে।
জেস্পের ই

স্বপ্ন. আপনি গ্রাহকটি কী চান / প্রয়োজন তা আগে থেকেই জেনে রাখবেন বলে আপনি আশা করেন। এটি ঘটে না; এই কারণেই আমাদের চটপটে পদ্ধতি রয়েছে।
মনিকা পুনরায় ইনস্টল করুন - এম। শ্রাইডার

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