আপনি কীভাবে একটি জটিলতা লাফাই পরিচালনা করবেন?


13

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

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

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

এই ধরণের কার্যকরী পরিবর্তনগুলির সাথে মোকাবিলার জন্য আপনার কী কৌশল রয়েছে - যা প্রায়শই স্পেসিফিকেশন পরিবর্তনের পরিবর্তে পরিবেশগত কারণগুলির ফলস্বরূপ - পরে উন্নয়ন প্রক্রিয়াতে বা পরীক্ষার ফলস্বরূপ? আপনি কিভাবে অকাল অপ্টিমাইজেশান / YAGNI / এড়ানো একটি সমাধান নকশা ঝুঁকি overengineering মধ্যে সামঞ্জস্য বজায় রাখা যে সম্ভব কিন্তু অগত্যা বিরুদ্ধে হ্রাস সম্ভাব্য বিষয় হিসেবে একটি সহজ এবং সহজ সমাধান সম্ভবত কার্যকর হতে কিন্তু না ইনকর্পোরেট প্রস্তুতি করে উন্নয়নশীল উল্টোদিকে প্রতিটি সম্ভাব্য ঘটনা?

সম্পাদনা: ক্রেজি এডি এর উত্তরে "আপনি এটি স্তন্যপান করেন এবং নতুন জটিলতা বাস্তবায়নের সর্বনিম্ন ব্যয়বহুল উপায় খুঁজে পান" includes এটি আমাকে এমন কিছু সম্পর্কে ভাবতে বাধ্য করেছিল যা প্রশ্নের মধ্যে অন্তর্ভুক্ত ছিল তবে আমি বিশেষভাবে উত্থাপন করি নি।

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

উত্তর:


8

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

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


6

আপনার উদাহরণ প্রোগ্রামিংয়ের বেশ কয়েকটি চ্যালেঞ্জিক দিকগুলিকে স্পর্শ করেছে, যেমন বিতরণ করা কম্পিউটিং এবং সমবর্তী প্রোগ্রামিং , যা আরও বেশি ব্যবহৃত হচ্ছে এবং প্রোগ্রামারদের আরও বেশি কঠিন করে তুলছে।

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

বিতরণ করা কম্পিউটিং এবং সমবর্তী প্রোগ্রামিং "জটিলতা" স্থানের আকারের সাথে আরও দুটি মাত্রা যুক্ত করে, যা "স্বাভাবিক" প্রোগ্রামিংয়ের তুলনায় কমপক্ষে ঘনক (স্প?) (এন ^ 3) এ বৃদ্ধি পায়। কেবল উদাহরণস্বরূপ, আমাদের सामना করতে হবে এমন কয়েকটি নতুন সেট এবং সমস্যাগুলি সম্পর্কে চিন্তা করুন । এমনকি এই ধারণার সাথে খেলতেও যে আপনি এই স্কেলটিতে আন্তঃসংযোগ এবং পার্শ্ব প্রতিক্রিয়াগুলি বুঝতে পারেন la

আমার কাছে স্পষ্টত কোনও রূপালী বুলেট নেই, তবে আমি নিশ্চিত যে সবচেয়ে বড় ভুলটি হ'ল আপনি এগুলি বোঝেন এবং এটি সমাধান করেছেন বলে ভাবা to

কীভাবে এই সমস্তগুলি মোকাবেলা করতে হবে সে সম্পর্কে কিছু ধারণাগুলি ছাড়াও অন্যান্য উত্তরগুলি ইতিমধ্যে কভার করেছে:

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

আমার ধারণা আমি আরও এগিয়ে যেতে পারতাম could খুব আকর্ষণীয় বিষয় :)


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

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

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

ঠিক আছে. পরিবর্তনীয় স্থিতি এবং অন্যান্য নাগেটগুলি এড়াতে আপনার সর্বোচ্চ চেষ্টা করার জন্য আমি আপনাকে একটি +1 দিচ্ছি । আমার বক্তব্যটি হ'ল যদি আপনার ম্যানেজার আপনাকে জটিলতা হ্রাস করার বিষয়ে কাজ করে থাকেন তবে আপনি অবশ্যই অবশ্যই সমস্যাটিতে ওকামের রেজার প্রয়োগ করবেন এবং কাজ করতে পারবেন। আমি মনে করি না যে আপনি বা অন্য কেউ তাত্ক্ষণিক সমস্যার জন্য সহায়তার জন্য "জীববিজ্ঞানের দিকে নজর রাখবেন"।
জিম জি।

2

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

ওপির প্রশ্নটি একটি ভাল এবং এটি অনেকগুলি সফ্টওয়্যার বিকাশের দোকানগুলির একটি সমস্যার সাথে কথা বলে।

এখানে আমি কীভাবে সমস্যাটি মোকাবিলা করব:

  1. ফ্রেড ব্রুকসের পরামর্শ অনুসরণ করুন এবং আপনার বিকাশকারীদের একটি সার্জারি দলের মতো সংগঠিত করুন ।
  2. একজন জ্ঞানী এবং "দানশীল" মাস্টার-সার্জন চয়ন করুন যা উভয়ই করতে পারে: ক) তার / তার সহকর্মীদের বিশ্বাস এবং শ্রদ্ধা অর্জন করুন; এবং খ) সময় মতো কঠিন সিদ্ধান্ত গ্রহণ করুন।
  3. মাস্টার-সার্জনকে আশা করা যায় যে অগ্রগতি এবং অগ্রগতির প্রান্তের শেষে জটিলতা হ্রাস পাবে।

# 3 পয়েন্টে আরও:

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

আইপিএইচও-র ক্ষেত্রে আইএমএইচওর উচিত ছিল তাদের পূর্বের পরীক্ষা করা শুরু করা উচিত, বাস্তব জীবনের পরিস্থিতিতে তাদের স্থাপত্যটি কীভাবে (এবং যদি) কাজ করে unc BTW একটি "মাস্টার সার্জন" আছে পরামর্শ করে, আপনি মূলত পরোক্ষভাবে যে মনে হয় সঠিক বিন্দু আপনার সাথে ভিন্নমত পোষণ করার দাবী - যারা প্রকল্পের প্রযুক্তিগত ঝুঁকি দূরদর্শন পারবেন না।
পিটার টারিক

@ পিটার তারেক: ... "মাস্টার সার্জন" থাকার পরামর্শ দিয়ে আপনি মনে করছেন মূলত এমন কিছু লোক রয়েছে যারা এই প্রকল্পের প্রযুক্তিগত ঝুঁকির পূর্বাভাস দিতে পারেন : না, আমি তা করি না। আমি বলছি যে এই লোকেরা উভয়ই: ক) প্রথমদিকে জটিলতা এড়াতে সেরা উপযুক্ত ; এবং খ) কোডটি প্রেরণের পরে কোনও দলকে জটিলতার বাইরে নিয়ে যাওয়ার জন্য উপযুক্ত।
জিম জি।

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

1
এটি আমাকে দেরী, দুর্দান্ত, ঘোড়া প্রশিক্ষক রে হান্টের একটি উক্তিটির কথা মনে করিয়ে দেয়: "আপনি কীভাবে ভাল রায় পাবেন? অভিজ্ঞতা। আপনি কীভাবে অভিজ্ঞতা পাবেন? খারাপ রায়?"
গ্লেনাট্রন

1

ইন্টারফেস কোড

অন্যান্য কার্যকারিতার সাথে ইন্টারফেসিংয়ে নতুন কার্যকারিতা লেখার সময়, একটি ইন্টারফেস (জাভা ধরণের) আকারে একটি সীমানা তৈরি করুন যার মাধ্যমে সমস্ত পাস হয়। এটা হবে

  1. কোন কার্যকারিতা ব্যবহার করা হচ্ছে তার উপর আপনার সম্পূর্ণ নিয়ন্ত্রণ রয়েছে তা নিশ্চিত করুন
  2. আপনি একই কার্যকারিতা একাধিক বাস্তবায়ন করতে অনুমতি দেয়।
  3. সামগ্রিক জটিলতা নিচে রাখুন কারণ মডিউলগুলি সম্পূর্ণ জড়িত হওয়ার পরিবর্তে কেবল পাতলাভাবে সংযুক্ত থাকে।

0

একটি সাধারণ অনুমান এবং মডেল দিয়ে শুরু করতে পারেন এবং হঠাৎ করে প্রকল্পের উন্নয়নে জটিলতার বর্ধন ঘটতে পারে

বিস্ময়কর না.

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

মাঝখানে সামান্য মাঠ আছে।

আপনি যদি নতুন কিছু আবিষ্কার করছেন তবে অবশ্যই কমপক্ষে একটি বৈশিষ্ট্য থাকতে হবে যা আপনি পুরোপুরি বুঝতে পারবেন না। ( এটি পুরোপুরি বুঝতে, আপনার একটি কার্যকর বাস্তবায়ন করতে হবে, যা আপনি কেবল ব্যবহার করবেন))

এটি কিভাবে পরিচালনা করবেন?

  1. বাস্তব প্রত্যাশা আছে। আপনি নতুন কিছু আবিষ্কার করছেন। এমন কিছু অংশ থাকতে হবে যা আপনি বুঝতে পারেন না।

  2. বাস্তব প্রত্যাশা আছে। যদি মনে হয় এটি প্রথমবারের মতো কাজ করে, আপনি কিছু উপেক্ষা করেছেন।

  3. বাস্তব প্রত্যাশা আছে। এটি যদি সহজ ছিল তবে অন্য কেউ প্রথমে এটি করত এবং আপনি কেবল সমাধানটি ডাউনলোড করতে পারেন।

  4. বাস্তব প্রত্যাশা আছে। আপনি ভবিষ্যতের ভবিষ্যদ্বাণী খুব ভাল করে করতে পারবেন না।


2
অপেক্ষা করুন, সুতরাং আপনি যা বলছেন তা: বাস্তব প্রত্যাশা আছে?
গ্লেনাট্রন

0

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


0

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


0

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

তবে এখানে স্থানীয়, নির্দিষ্ট কারণ রয়েছে যা এখানে কার্যকর হতে পারে of

  • এই সিস্টেমের জন্য লক্ষ্য। এটা কি একপেশে জিনিস? আপনি কি মাঝারি থেকে দীর্ঘমেয়াদে এই ব্যবস্থাটি চালিয়ে যাওয়ার মনস্থ করেন?

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

  • দলের গোল। এটি কোনও "যে কোনও মূল্যে এখনই এটি করুন", বা "চলুন এটি সঠিকভাবে করা" ধরণের জিনিসগুলির চেয়ে বেশি?

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

  • আপনার সমস্যা বোঝার। আগের সমাধানটি কেন কার্যকর হয়নি?

সত্যিই গুরুত্বপূর্ণ. ত্রুটি বা সমস্যা কী এবং এটি কেন ঘটছে তা ভেবে দেখুন। এই ধরণের পরিস্থিতি ত্রুটিযুক্ত (বা অনুপস্থিত) অনুমান, সীমাবদ্ধতা এবং মিথস্ক্রিয়াগুলি খুঁজে পাওয়ার দুর্দান্ত সুযোগ। সাধারণভাবে, সর্বদা আপনার সমস্যাটি বর্তমান সমস্যার সমাধান না করে আরও ভালভাবে বোঝার পক্ষে। এটি সম্ভবত YAGNI / অতিরিক্ত রক্ষণাবেক্ষণের বিরুদ্ধে আপনার বৃহত্তম প্রতিরক্ষা। আপনি যদি নিজের সমস্যাটি যথেষ্ট পরিমাণে বুঝতে পারেন তবে আপনি এটি সমাধান করবেন অন্য সমস্যাগুলি নয়।

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

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