জোড় প্রোগ্রামিংয়ের সময় আপনি কীভাবে প্রবাহ অর্জন করতে এবং বজায় রাখতে পারবেন?


17

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

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

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

জোড় প্রোগ্রামিংয়ের সময় আপনি কীভাবে প্রবাহ অর্জন করতে এবং বজায় রাখতে পারবেন?


4
আমি একমত নই যে অন্য জোড়াগুলি যে কোনও সময়ে কেবল ইন্টারুপেট করতে পারে।
জেফো

3
প্রবাহের বিকল্প হ'ল বাল্মার পিকের অবস্থান চিহ্নিত করা এবং বজায় রাখা । এটি অর্জনে ভাল পরিমাণ পরীক্ষা-নিরীক্ষা, সময় এবং স্কচ নিতে পারে।
অফ হোলক্রাফ্ট পূর্ণ

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

উত্তর:


15

সম্পাদনা: অস্বীকৃতি - আমি এইভাবে "জোন" সংজ্ঞা দিই: A state of extreme focus, in which one is able to understand how many intricate details connect together, regardless of whether these do so elegantly (or simply) or not.

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

ক্লিন কোডারটিতে একটি সুন্দর অধ্যায় রয়েছে যেখানে চাচা বব দৃu়ভাবে ব্যাখ্যা করেন যে "জোনে gettingুকতে" কেন একটি বিভ্রান্তিকর ধারণা।

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

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

ফ্লিপ দিকে ... আপনার মাথা সোজা করার জন্য আপনার যদি কিছুটা সময় প্রয়োজন হয় (আমরা সকলেই মাঝে মাঝে করি) তবে এটি নিন। আপনার চিন্তা একসাথে পেতে। প্রথমে আপনার মাথায় সমস্যাটি সমাধান করুন।

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


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

7
@ এইচএলজিইএম - আমি মনে করি না যে যখন প্রয়োজন হয় তখন কাজ করার জন্য যথেষ্ট জায়গায় অ্যাক্সেস থাকা খুব বেশি প্রয়োজন বলে মনে হয়।
জেফো

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

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

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

5

জুড়ি প্রোগ্রামিং কখনও কখনও আপনার সঙ্গী থেকে পিরিয়ড বিচ্ছিন্নতা প্রয়োজন।

উদাহরণ

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


জোড়া প্রোগ্রামিংয়ে বাস্তবায়ন কেন করা উচিত নয়?
শেষের দিকে

5

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

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

হ্যাঁ, এটি ভয়াবহ সম্ভাবনা হ্রাস করে যে কোনও দেবতা কর্মদিবসের সময় স্ট্যাকেক্সচেঞ্জ বিরতি নিতে পারে।

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


1
জুড়ি প্রোগ্রামিং এর পয়েন্ট একে অপরকে বন্ধ হয়ে যাওয়া বন্ধ করে দিচ্ছে না; এটি কার্যকর হবে না। পয়েন্টটি রিয়েল টাইমে কোড পর্যালোচনা করে।
লেভ

3
@ লাইভ: প্রতিশ্রুতি দেওয়ার আগে একটি কোড পর্যালোচনা করা আরও কার্যকর: পর্যালোচনাটি পুরো কার্যদিবসের পরিবর্তে কয়েক মিনিট থেকে অর্ধ ঘন্টা সময় নেয়।
জর্জিও

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

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

অবশ্যই কোনও গ্যারান্টি নেই তবে এটি সাহায্য করতে পারে can
লেভ

3

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

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


0

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

  • কোড ডিজাইন

  • টাইপিং

  • ডোমেন এবং কোড সম্পর্কে নতুন জিনিস শিখছে

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

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

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