চতুর পদ্ধতি: দ্রুত এবং নোংরা বা প্রথমে পরিকল্পনা?


10

চটজলদি প্রশ্ন: চটপটে কি জিনিস উঠা এবং "দ্রুত এবং নোংরা পথে" চালাতে বিশ্বাস করে - বা চৌকস কি স্থলভাগ থেকে দৃ building়ভাবে বিল্ডিং পছন্দ করে? বা এটি কি কোনও পদ্ধতিগত প্রশ্ন নয় এবং এমন একটি প্রশ্ন যা আপনি কেস কেস কেসে মূল্যায়ন করেন?

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

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




7
আমি প্রায়শই দেখতে পেয়েছি পরিচালকরা একটি 'traditionalতিহ্যবাহী' প্রকল্প পরিকল্পনার সমস্ত পরীক্ষার এবং পরিকল্পনার সময়টি দেখে এবং জিজ্ঞাসা করে "" আমরা কি কেবলমাত্র সমস্ত কিছু কাটিয়ে উঠতে পারি না এবং পরিবর্তে চটপটি ব্যবহার করতে পারি না "... যা পয়েন্টটি বিস্তৃতভাবে মিস করে না মার্জিন।
জেফুক

1
এটি সাহায্য করতে পারে। i.redd.it/bxsitfseWo01.png
জেফুক

উত্তর:


46

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

কীটি কোডটি লিখতে হয় যা পরিবর্তনটি গ্রহণ করে যাতে আপনি শেষ পর্যন্ত যখন "পুরো প্রবাহটি কীভাবে চলতে হবে" দেখেন তখন আপনি কোডটি পরিবর্তন করতে পারেন। "প্রবাহের চলার পথে" (বা যাই হোক না কেন) যখন আবার পরিবর্তন হয় তখন তা আঘাতজনিত নয়।

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

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

দীর্ঘমেয়াদে, আপনার আরও স্মার্ট হওয়ার পরিকল্পনা করা উচিত। নমনীয় কোড লিখুন। তারপরে স্মার্ট হয়ে আফসোস হয় না।


1
+1, তবে আমি বিশেষ দ্রষ্টব্য রাখতে চাই যে "নমনীয়" এর অর্থ অবশ্যই "আরও বিমূর্ততা" নয়। নমনীয়তা বাড়ানোর অন্যতম উপায় হ'ল কোডটি কাছে পৌঁছনীয় (তা পঠনযোগ্য, বোঝার পক্ষে সহজ) তা নিশ্চিত করা।
jpmc26

1
না, আধুনিক "প্রবল চতুর" উপায় সমস্ত পরিকল্পনা নিয়ে। আসল চৌকস দ্রুত এবং নোংরা এবং ধ্রুব পুনরাবৃত্তি এবং উন্নতি সম্পর্কে। আপনি এমন কিছু দিয়ে কাজ শুরু করেন যা (ইশ) কাজ করে এবং তারপরে এটি আরও ভাল করার জন্য পুনরাবৃত্তি করে। আপনি যেভাবে চিত্তে ওঠার পরিকল্পনার পরিকল্পনা করছেন সেটি হ'ল "প্রচুর জলপ্রপাত" বলার উপায়।
gbjbaanb

5
+1 চটজলদি দায়বদ্ধ এবং নমনীয় কোডটি স্বাচ্ছন্দ্য বোধ করার জন্য যথেষ্ট পরিকল্পনা করছেন । আর কিছু হ'ল সম্পদের অপচয়। এটি "পরিকল্পনা নয়", এবং এটি "সবকিছু পরিকল্পনা" নয়, তবে কোথাও কোথাও।
এরিক কিং

23

আমি পছন্দ করি না এটি বেশিরভাগ মানুষের পক্ষে এটি "দ্রুত এবং নোংরা" বা "বড় নকশা আপ সামনে"। এমনকি তারা অন্যান্য বিকল্প আছে বিবেচনা করবেন না।

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

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

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

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


6

আমরাও।

এটি "আপনি সরানোর সময় সহজ শুরু করুন এবং উন্নতি করুন"।

দ্রুত এবং নোংরা ভঙ্গুর, তবে দ্রুত (যদি প্রকল্পটি যথেষ্ট ছোট এবং স্বল্পস্থায়ী হয়)।

পরিকল্পনাটি প্রথমে অনমনীয়, তবে স্থিতিশীল (যদি প্রকল্পটি আর্থিক বা অস্থায়ী বাধাগুলির মধ্যে চলে যাওয়ার আগে শেষ হয়)।

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


2

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

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


1

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

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

অন্য কথায়, তাত্ক্ষণিক কাজের জন্য পরিকল্পনা করুন, তবে আরও কিছু করার জন্য পরিকল্পনা করবেন না।

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