ডিজাইনের পছন্দগুলি কেন ভাল তা কীভাবে ব্যাখ্যা করবেন? [বন্ধ]


26

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

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

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


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

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

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

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

1
Reading প্রস্তাবিত পাঠ: আমি কীভাবে $ {কিছু} কে $ {কাউকে explain ব্যাখ্যা করব? - সময়ের শুরু থেকে
gnat

উত্তর:


41

এটি আপনার প্রশ্নের সরাসরি উত্তর নাও দিতে পারে তবে এটি আপনাকে আকর্ষণীয় দিকে নিয়ে যেতে পারে।

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

আপনার সিইও-র সময়-বাজারের মূল বিষয়টি হতে পারে, আপনার ম্যানেজারের জন্য এটি আরও অনুমানযোগ্য সময়সূচি হতে পারে, আপনার প্রোগ্রামিং সহকর্মীদের জন্য এটি দ্রুত কোডিং (বা সহজ টেস্টিং / ডকুমেন্টেশন / ডিবাগিং / যাই হোক না কেন) হতে পারে এবং আপনার সংস্থার গ্রাহকদের জন্য এটি হতে পারে ... ?

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


5

আপনার প্রশ্নের সত্যিই আমার সমাধান নেই তবে কিছু সময় আগে আমি ঠিক একই ধরণের সমস্যার মুখোমুখি হয়েছি এবং ঠিক একই প্রশ্নের উত্তর খুঁজছিলাম।

আমি নিজেকে যুক্তির একপাশে এবং অন্য কাউকে খুঁজে পেয়েছি এবং যদিও আমার শরীরের প্রতিটি ফাইবার আমাকে সঠিক ডিজাইনটি এক্স বলে জানিয়েছে, আমি এটি শব্দ ব্যবহার করে ব্যাক করতে পারিনি।

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

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

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

  1. আপনি র‌্যাঙ্কটি টানতে চেষ্টা করতে পারেন (আমি আমার বসের কাছে গিয়ে র‌্যাঙ্ক চাইছিলাম কারণ আমি এই মৃত-শেষ যুক্তিগুলিতে খুব ক্লান্ত ছিলাম)
  2. আপনি সমর্থন করতে দলের বেশিরভাগ লোকের পক্ষে লবি করার চেষ্টা করতে পারেন।
  3. যদি প্রকল্পটি সামর্থ্য রাখতে পারে (অর্থাত্ উত্পাদনশীলতায় খুব বেশি ক্ষতি না হয়) তবে আপনার মতে এটি একটি খারাপ সিদ্ধান্ত, অন্য ব্যক্তিকে যুক্তিটি জিততে দিন। দুটি জিনিস এক ঘটবে:
    • কিছু ক্ষেত্রে (আশা করি খুব ছোট অংশ), আপনার স্বজ্ঞাততা ভুল হবে এবং আপনি কিছু শেখার শেষ করবেন। তোমার জন্য ভালো.
    • বেশিরভাগ ক্ষেত্রে (আবার ... আশাবাদী), আপনি এবং যে ব্যক্তি "খারাপ" ডিজাইনের পক্ষে ছিলেন, তিনি বুঝতে পারবেন যে এটি খারাপ কেন; সবকিছুর পরেও সর্বদা 20/20। আশা করি, এই ব্যক্তির পক্ষে এটি একটি শিক্ষা হবে যে সম্ভবত আপনি জানেন যে আপনি কী সম্পর্কে কথা বলছেন এবং পরের বার তারা তাদের মামলায় দুবার তর্ক-বিতর্ক করবেন।

4

ঠিক আছে, এই উত্তরটি প্রোগ্রামিংয়ের পক্ষে সুনির্দিষ্ট সুনির্দিষ্ট নয় যতটা আপনি ভাবেন। তারা এগুলি তাদের কাছে ফিরে আসে।

যদি এটি উত্তরাধিকারের তুলনায় রচনার মতো কিছু হয় তবে আপনাকে সম্ভবত বলতে হবে যে বর্তমানে সম্ভবত 90% বিকাশকারী বিবেচনা করবেন যে একটি সেরা অনুশীলন (একটি বুনো অনুমান, আংশিকভাবে যে 100% বিকাশকারী প্রায় কোনও কিছুইতেই একমত নয়) এর ভিত্তিতে এবং আপনি সম্মত হন এবং কেন যেতে খুশি হবে।

কী বিতর্কিত, এবং বিকাশকারীদের কত শতাংশ আমার সাথে একমত হবে সে সম্পর্কে আমি যতটা সম্ভব সাধ্য হওয়ার চেষ্টা করি।

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

ডিজাইনের মতো জিনিসের জন্য আরও পরীক্ষামূলক হওয়ার জন্য, যদি তারা সম্মতি না দেয় যে এটি আরও পরীক্ষামূলক then তবে এটি প্রথম উদাহরণের মতো প্রায় একই। যদি তারা সম্মত না হন যে এটি আরও পরীক্ষার জন্য উপযুক্ত ble তবে আপনার সেগুলি তাদের বোঝার জিনিসগুলিতে ফিরিয়ে আনতে হবে। এটি সম্ভবত পরিচালনা হবে, এবং আপনি দীর্ঘমেয়াদে কম উন্নয়ন ব্যয়, কম কিউএ, আরও অনুমানযোগ্য প্রক্রিয়া (যেহেতু পুনরাবৃত্ত QA চক্রের দৈর্ঘ্য পূর্বাভাস দেওয়া কঠিন) ইত্যাদি সম্পর্কে কথা বলতে পারেন etc.

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


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

@ টেলাস্টিন - আমি মনে করি যে "উত্তর দিয়ে কাজ করার জন্য আরও ভাল শিক্ষিত লোকদের থাকার সুযোগ রয়েছে"
psr

3

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

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

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

আপনি কার সাথে ডিল করছেন তার উপর নির্ভর করে আপনাকে বিভিন্ন কৌশল চেষ্টা করতে হবে; অর্থ / সময় / প্রচেষ্টা সাশ্রয় হতে পারে এবং গুণমানের উন্নতি হতে পারে এমন পরামর্শ দেওয়া অ প্রযুক্তিগত পরিচালকদের দৃষ্টি আকর্ষণ করার একটি ভাল উপায়; এবং প্রায়শই একই পরীক্ষার স্প্রেডশীটগুলিতে বারবার একই সময় কাটাতে ব্যয় করতে পারে না এমন অনেক বিকাশকারীকে সহজে স্বয়ংক্রিয় পরীক্ষার আবেদন করার প্রতিশ্রুতি দেওয়া হয়।


0

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

আপনার দেওয়া কোনও নকশার উন্নতি হয় তা কেস করতে সক্ষম হবেন

  • সংস্থার জন্য অর্থ সাশ্রয় করুন
  • কোম্পানির জন্য অর্থ উপার্জন

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

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