আমি সবে স্ক্রাম দিয়ে একটি কাজ শুরু করেছি এবং মনে হচ্ছে কিছু অনুপস্থিত। আমি স্ক্রমে নতুন


23

কোডটি ক্লাসিক এএসপি / এএসপি.এনইটির সংমিশ্রণের একটি সম্পূর্ণ গণ্ডগোল। স্ক্রামটি রয়েছে আমাদের মধ্যে বৃহত্তর জগাখিচুড়ি বা এটিকে যুক্ত করে। পুনরায় লেখার শুরু করতে আমরা সকলেই খুব ব্যস্ত তাই আমি ভাবছি am

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

সুতরাং জিনিসগুলি অ-প্রযুক্তিগত লোকেরা দ্বারা চালিত হচ্ছে যাদের মনে হয় যে তারা পুনরায় লেখার জন্য চাপ দেওয়ার কোন ইচ্ছা পোষন করে না কারণ তারা বুঝতে পারে না যে কোডবেস কতটা খারাপ হয়েছে ..

তাহলে এই বড় পুনর্লিখন পরিবর্তনটি করার দায়িত্বে কে? ডেভেলপাররা? স্ক্রাম মাস্টার?

বর্তমান কৌশল ঠিক সময় খুঁজে এটি নিজেদেরকে ছাড়া জড়িত উচ্চতর আপগুলি না যেহেতু তারা বর্তমান জগাখিচুড়ি আমরা .. রয়েছে জন্য দায়ী বেশিরভাগই হয় <-প্রযুক্তিগত মানুষ কি এখানে কাজ করতে কহন অ প্রযুক্তিগত মানুষ সম্পর্কে সন্নিবেশ গলাবাজি ->


20
শাম চৌকস আবার তার কুরুচিপূর্ণ মাথা উত্থাপন ... অনেক সংস্থা বলে যে তারা "চতুর" এবং "স্ক্রাম" ব্যবহার করে, যখন বাস্তবে তারা কিছুই করে না।
ওদে

4
আপনি

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

12
জোয়েলের ব্লগে বাধ্যতামূলক লিঙ্ক: joelonsoftware.com/articles/fog0000000069.html
মার্কো ফিসেট

8
"<-insert কারিগরি মানুষ কহন অ কারিগরি মানুষ কি এখানে- করতে সম্পর্কে গলাবাজি>" , ম্যানেজমেন্ট 100% শতাংশ কারিগরি মানুষ কহন করা উচিত কি যে কেন তারা ব্যবস্থাপনা এবং জন্য দায়ী করতে হবে, ব্যবসা , যে তারা কি ভালো কিছু কর. তাদের 100% যা করা উচিত নয় তা তাদের কীভাবে এটি করাতে হবে তা বলাই হচ্ছে, প্রযুক্তিবিদদের কীভাবে প্রযুক্তিগতভাবে তাদের কী করতে বলা হয়েছিল তা অর্জন করার সিদ্ধান্ত নেওয়া উচিত on অন্য যে কোনও কিছুই সম্পূর্ণ নাটক !

উত্তর:


7

আমি নিশ্চিত নই কেন এটি মানুষের পক্ষে এত কঠিন। তার ব্যবসায়ের কেসটি এখানেই রয়েছে:

We seem in an endless loop of just patching old code with 'Stories'.

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

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

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

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

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

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


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

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

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

1
আমি বলব যে এটি কোনও কিছুর জন্য একই, ব্যক্তিগতভাবে আমি ইন্টারফেস সংজ্ঞায়িত করতে পরীক্ষাগুলি লিখি।
নিকোডেমাস

1
তারপরে সমস্ত ক্লেডেজের ব্যথা ফিরে আসতে পারে কারণ সেই ছোট ছোট ব্যতিক্রমগুলি সম্ভবত প্রাথমিক বিশ্লেষণ দ্বারা ধরা পড়তে পারে না।
জেবি কিং

33

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

http://blog.objectmentor.com/articles/2009/01/09/the-big-redesign-in-the-sky
http://www.joelonsoftware.com/articles/fog0000000069.html

"পুনরায় লেখালেখিতে প্রসারিত করা ভাল ধারণা নয়":

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


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

3
কিছু জঞ্জাল পরিষ্কার করা প্রয়োজন। জোয়েল নিবন্ধগুলি উদ্ধৃত করে এবং দৃ as়তার সাথে বলা যে পুনর্লিখনগুলি খুব কমই কোনও পরিসংখ্যান ব্যতীত প্যান আউট করে যা সন্দেহজনক হতে পারে (কারণ সফল পুনরায় লেখাগুলি নিয়ে কারা হামলা করে?) এতে পরিবর্তন হয় না।
এরিক রেপেন

3
@ এরিকরেপেন তাই যখন আপনার বসার ঘরটি অগোছালো হয় তখন আপনি ঘরটি ছিঁড়ে নতুন একটি ঘর তৈরি করেন?
এরিকশাফার

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

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

18

আমি সত্যিই কট্টর হতে চলেছি ...

  • আপনি কি এই কাজের বিকাশকারীদের দায়িত্বে আছেন?
  • আপনি কি প্রকল্পের নেতা?
  • প্রকল্পে বিকাশকারীদের কতটা "অংশীদার" রয়েছে?
  • পুনর্লিখনের জন্য আপনার ব্যবসায়ের ন্যায়সঙ্গত কি?
  • কোড বেস সম্পর্কে এটি কী যা এটি সম্পূর্ণরূপে অকেজো এবং অপরিবর্তনযোগ্য করে তোলে?

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

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

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

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

একটি বিকল্প হ'ল দলটি যেমন চলছে তেমনি চালিয়ে যাওয়া এবং ভবিষ্যতে কোনও অলৌকিক প্রত্যাশার প্রত্যাশা। সম্ভবত একটি ভাল ধারণা না এবং সম্ভবত আপনার হতাশা এবং স্ট্রেস বাড়িয়ে তোলে likely

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

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

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


না আমি দায়িত্বে নেই আমি এমন একটি দেব যা পেশাগতভাবে 12 বছর এবং 7 বছর কোড করেছে N নেট। আমি অনেক চুক্তি করেছিলাম এবং কিছুক্ষণ পরে আপনি দ্রুত কোডের মানের জন্য একটি অনুভূতি পেতে পারেন। কত 'স্টেক'? আপনি এর দ্বারা কী বোঝাতে চাইছেন তা আমি নিশ্চিত নই। আমরা এখন পুরানো ক্লাসিক এএসপি স্থির করে রাখতে পারি যা এখন অত্যন্ত নাজুক এবং এই পরিবর্তনগুলি কোনও ভাল আধুনিক আরকিটেকচারের অংশ হলে তার চেয়ে 10x বেশি সময় নিতে পারে। ব্যবসায়ের ন্যায়সঙ্গততা হল যে সাইটটি এখন এমন একটি মডিউলের কারণে উত্পাদনে ক্রাশ হচ্ছে যা উচ্চ টার্নওভারের কারণে কেউ বুঝতে পারে বলে মনে হচ্ছে না
পাঙ্কাউটার

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

শুরু করার জন্য আমি যা করছি তা হ'ল এমন দলে থাকা লোকদের সন্ধান করা যাঁদের কোডিংয়ের কিছুটা আগ্রহ আছে এবং অবশেষে এই অধিকার পাওয়ার অংশ হতে আগ্রহী। ... লোকেদের পক্ষে খুঁজে পাওয়া সহজ নয় ... brucefwebster.com/2008/04/11/…
পাঙ্কাউটার

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

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

13

অফিসিয়াল স্ক্রাম গাইড থেকে স্ক্র্যাম ডেভলপমেন্ট টিমের আনুষ্ঠানিক সংজ্ঞা এখানে দেওয়া আছে । আপনাকে সরাসরি যে উদ্বেগগুলি উদ্বেগের দিকে আমি জোর দিয়েছি:

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

  • তারা স্ব-সংগঠিত হয়। কেউ (এমনকি স্ক্রাম মাস্টারও নয়) বিকাশকারী টিমকে কীভাবে সম্ভাব্য পুনরুদ্ধারযোগ্য কার্যকারিতা বৃদ্ধির জন্য পণ্য ব্যাকলগকে পরিবর্তন করবেন তা বলে না;

  • ডেভলপমেন্ট টিমগুলি ক্রম-কার্যকরী, একটি পণ্য বর্ধনের জন্য প্রয়োজনীয় দল হিসাবে সমস্ত দক্ষতা সহ;

  • স্ক্রাম কোনও ব্যক্তি কর্তৃক সম্পাদিত কাজ নির্বিশেষে বিকাশকারী ছাড়া ডেভলপমেন্ট টিমের সদস্যদের জন্য কোনও পদবি স্বীকৃতি দেয় না; এই নিয়মের ব্যতিক্রম নেই;

  • স্বতন্ত্র উন্নয়ন দলের সদস্যদের বিশেষ দক্ষতা এবং ফোকাসের ক্ষেত্র থাকতে পারে তবে জবাবদিহিতা পুরোপুরি ডেভলপমেন্ট টিমের অন্তর্ভুক্ত; এবং,

  • উন্নয়ন দলগুলিতে পরীক্ষা বা ব্যবসায়িক বিশ্লেষণের মতো নির্দিষ্ট ডোমেনগুলিকে উত্সর্গীকৃত উপ-দল থাকে না।

বিকাশকারী দল তাই নিজস্ব গণ্ডগোলের জন্য দায়বদ্ধ এবং দলের বাইরে কাউকে জিজ্ঞাসা না করেই এটিকে নিজেই সম্বোধন করা উচিত।

আপনার ভবিষ্যতের প্রতিটি অনুমানের ক্ষেত্রে একটি প্রযুক্তিগত debtণ নির্ধারণের সময় অন্তর্ভুক্ত করুন এবং নিশ্চিত করুন যে আপনি সরবরাহ করেছেন সফ্টওয়্যারটির গুণমান শীর্ষতম।

আপনার যদি সত্যিই একটি সম্পূর্ণ পুনর্লিখন করতে হয় তবে আপনাকে অবশ্যই স্ক্র্যাম রিস্ট্রোস্পেক্টিভের সমস্যার সমাধান করতে হবে। পণ্য মালিক শেষ পর্যন্ত প্রকল্পটি বাতিল করে একটি নতুন শুরু করতে পারে। পণ্য মালিক এছাড়াও একমাত্র একটি স্প্রিন্ট বাতিল করতে সক্ষম।


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

6
@ ব্রায়ান ওকলি: স্ক্র্যাচ থেকে পুনরায় লেখা আমার পরামর্শটি নয়। উন্নয়নের দল সংশ্লিষ্ট অঞ্চলে কাজ করার কারণে আমি প্রযুক্তিগত debtণ ক্রমান্বয়ে হ্রাস করার পরামর্শ দিচ্ছি। এবং আমি সেগুলি অনুসারে তারা অনুমান করারও পরামর্শ দিই।

1
এটি খুব ভাল তবে কী দরকার যদি আমাদের নতুন সার্ভার, নতুন ডাটাবেস, নতুন সফ্টওয়্যার দরকার হয় যাতে ডিভাইসকে আমাদের পুনর্লিখনের জন্য প্রয়োজনীয় সমস্ত সরঞ্জাম থাকতে হয়? যখন কেবলমাত্র 'গল্পগুলি' বর্তমান সমস্যাগুলি সংশোধন করার বিষয়ে এবং কখনই পুনর্লিখনের অনুমতি দেওয়ার ধারণার বিষয়ে নয় তখন পুনর্লিখনটি কীভাবে শুরু হবে?
পাঙ্কাউটার

1
@ পঙ্কাউটার: আপনার যদি নতুন করে লিখতে হয়, তবে স্ক্রামের পূর্বের দিকে সমস্যাটি সমাধান করুন। তারপরে পণ্য মালিক বর্তমান প্রকল্পটি বাতিল করার জন্য এবং একটি নতুন প্রকল্প শুরু করার দায়িত্ব নেবে।

5
ধরে নেবেন না যে পুনর্লিখনের সিদ্ধান্তটি 'ডান' একমাত্র কারণ এটি ডেভসকে সবচেয়ে বেশি আবেদন করে। প্রযুক্তিগত increaseণ বাড়তে থাকলেও কখনও কখনও এখন বৈশিষ্ট্যগুলি সরবরাহ করার জন্য একটি ভাল ব্যবসায়ের কারণ রয়েছে।
ডিজেক্লেওয়ার্থ

8

হিসাবে আপনি এই বর্ণনা আমি বলতে আমি কিছুই স্ক্রাম সাথে কিছু আছে, অথবা আপনার পণ্যের উন্নয়ন দল একটি সমস্যা হচ্ছে যে দেখছি না আছে বর্তমানে

এই স্বাভাবিক

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

সম্পূর্ণ নিখুঁত গ্রিনফিল্ডের দৃশ্যে , আপনি যা করতে পারেন তা হ'ল পরম এনট্রপি থেকে আরও দূরে শুরু করা এবং এটির দিকে ধীরে ধীরে এগিয়ে যাওয়া।

আমি অন্যদের সাথে একমত, কোড বেস মেসটি বিকাশকারীদের কারণে। আমি নিশ্চিত যে এটি বহু বছর ধরে এসসিআরএম গ্রহণের পূর্বে রয়েছে ates

এটি পুনরায় লেখার কোনও প্রযুক্তিগত বা বিকাশকারী সিদ্ধান্ত নয়, এটি একটি ব্যবসায়ের সিদ্ধান্ত।

আপনি কেন পণ্য মালিকরা পুনর্লিখন চান না তা সম্পর্কে গোপনীয় নন। আপনি একজন বিকাশকারী হিসাবে এটির প্রয়োজন বলে মনে করেন তবে এটির জন্য কি কোনও ব্যবসায়িক ঘটনা আছে ?

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

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

প্রুফ - মুনাফা কার্যকর সফটওয়্যার টস আউট ব্যবসায়ের সিদ্ধান্ত ড্রাইভ, একটি পরিষ্কার কোড বেস জন্য কিছু OCD প্রয়োজন হয় না

যদি আপনি সত্যিই প্রমাণ হিসাবে দেখাতে পারেন তবে কেবল তত্ত্বই নয় তবে হার্ড প্রমানের যে Xগ্রিনফিল্ড পুনরায় লেখার জন্য ডলার ব্যয় করা সময়ের জন্য ব্যবসায়ের জন্য ডলার তৈরির নিশ্চয়তা দেওয়া হবে (যেখানে উচ্চতর এবং সংক্ষিপ্ত), আপনি পরিচালনা থেকে কিছুটা পেতে পারেন । এটি একটি অত্যন্ত সম্ভাবনাযুক্ত কেস যা আপনি উপস্থাপন এবং প্রমাণ করতে পারেন।X * NYNY

অন্যথায় আপনার কেবল এটি মোকাবেলা করা দরকার, এটি বাস্তবতা। আপনার দৃama় দৃ as় বিবৃতির বিপরীতে যে এই দুর্দান্ত নিষ্কলুষ পুনরায় লেখা ব্যতিরেকে এগিয়ে যাওয়ার একেবারেই উপায় নেই, আমি অর্থের সাথে বাজি ধরব যে আপনি যে কোড বেজ সম্পর্কে অভিযোগ করছেন এখন থেকে 5+ বছর পরেও কোথাও কাজ করবে এবং কাউকে কার্যকারিতা প্রদান করবে এবং অনেক পরে মান দেবে money আপনি সংস্থা ছেড়ে চলে গেছেন।


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

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

1
আউটসোর্সড ডেভস হ'ল একটি ম্যানেজমেন্ট সমস্যা। ভেতরের লোকেরা আরও ভাল জানত। ম্যানেজমেন্ট ভান করতে পছন্দ করে যে তারা 200 ডিভ ভাড়া দিয়ে অর্থের বোতাম লোড করছে যখন তারা সম্ভবত 20 দক্ষ লোকের সাথে দুর্দান্ত করতে পারত। অনেকগুলি স্ক্র্যাম বাস্তবায়ন যেমন আমি দেখেছি তার মতো, গৃহীত কৌশলটি ছিল অযোগ্যতার পণ্য এবং প্রকৃতপক্ষে কোম্পানির কর্মীরা যে ডেভস ছিলেন তার কোনও নিয়ন্ত্রণ ছিল না।
এরিক রেপেন

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

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

7

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

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


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

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

আমি রাজী. তবে আইভ যেমন বলেছিলেন (এবং নিশ্চিত নয় যে তারা সকলেই পাচ্ছেন) .এটি এখন প্রায় 9 টি পৃথক ওয়েব অ্যাপ্লিকেশনগুলির অর্ধেকের সংগ্রহ যা ক্লাসিক এএসপি এবং অন্যান্য অর্ধেকটি এএসপি.এনইটির ভিন্নতর রূপ forms সমস্ত ডেটা অ্যাক্সেস ইত্যাদি হ্যান্ডেল করার জন্য সম্পূর্ণ পৃথক উপায় ব্যবহার করে .. সুতরাং যে বিষয়ে কথা বলা হচ্ছে তা করার একমাত্র উপায় হ'ল নতুন কোডটি পুরানো কোডের অংশ হিসাবে দেখতে ইউআইকে জাল করা .. সুতরাং হ্যাঁ .. তবে তারপরে একটি রয়েছে ডাটাবেস .. এক টেবিলের 400 ক্ষেত্র রয়েছে!
পাঙ্কাউটার

আমি কৌতুহলী. এই টেবিলটি কী উপস্থাপন করে? আমি যেহেতু আই ++ দেখেছি তার থেকে এটি সবচেয়ে খারাপ জিনিস; doSomething (ঝ); কোনও কোডে এক ডজনেরও বেশি বার পুনরাবৃত্তি হয়েছিল যা একটি ফাঁকা জেএসপি ট্যাগ থেকে ছড়িয়ে পড়ে।
এরিক রেপেন

5

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

আপনি কোথায় আছেন সেই পরিস্থিতি সম্পর্কে আমি জানি না তবে এখানে যদি আমরা স্ক্র্যাচ থেকে আবার শুরু করতে চাইতাম তবে এটি পণ্য মালিকের সাথে বসে এবং কেন তাদের এবং পরে পুনরায় তৈরি করার জন্য গল্পের একটি গাদা লেখার বিষয়টি হবে a কার্যকারিতা।

খারাপ এবং / অথবা লিগ্যাসি কোডটি ব্যবহার করার চেষ্টা করার জন্য এবং অন্যান্য কাজগুলি ব্যবহার করার জন্য ব্যবহারকারীর গল্পগুলি বের করার সময় পুনর্নির্মাণের কাজগুলি অন্তর্ভুক্ত করা ছিল।


তাহলে ডেভসরা 'গল্প' লিখে তাদের জমা দিতে পারে? সমস্যাটি পুনরায় লেখার কারণগুলি হ্যান্ডেল করার জন্য খুব প্রযুক্তিগত কারণগুলি ব্যাখ্যা করছে ... আমি কেবল এতটাই বলতে পারি যে ... 'বর্তমান কোডটি পরিচালনা করা কঠিন এবং বিরতি' ..
পাঙ্কাউটার

6
@ পঙ্কাউটার: যদি নতুন করে লেখার ইচ্ছাগুলি কারণগুলি নিখুঁতভাবে প্রযুক্তিগত হয় (অর্থাত্ ব্যবসায়ের অর্থ ব্যয় নয়) তবে আপনার কাছে পুনর্লিখনের পর্যাপ্ত কারণ নেই।
মাইকেল বর্গওয়ার্ট

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

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

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

4

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

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

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

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


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

1
ইতিমধ্যে যা বলা হয়েছে তা কেবল পুনরাবৃত্তি করতে পারি; সাধারণভাবে, আপনি সিদ্ধান্ত নিতে পারবেন না যে এখন বড় পুনর্লিখনের সময় এসেছে for আমার ধারণা আপনি আপনার কোডবেসকে ক্রমান্বয়ে কিছুটা কম বেদনাদায়ক অবস্থায় পরিণত করতে কতটা প্রচেষ্টা নিচ্ছেন তা স্টেকহোল্ডারদের দেখানোর চেষ্টা করতে পারেন, এবং এটি সম্পূর্ণ পুনর্লিখনের জন্য যে প্রচেষ্টা করা হয় তার সাথে তুলনা করুন।
বুহব

3

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

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


যেমনটি আমি উল্লেখ করেছি .. 6 ক্লাসিক এএসপি সাইট + 4। নেট 1.1 সাইটগুলির সংগ্রহের সাথে এগিয়ে যাওয়ার কোনও উপায় নেই যা সমস্তই এক সাইটে সংযুক্ত। সমস্ত বিভিন্ন উপায়ে কোড করে।
পাঙ্কাউটার


এটি আসতে প্রায় বছরগুলিতে হতে পারে তবে উত্তরাধিকারের স্বাদে ভিন্ন ভিন্ন স্বভাব রয়েছে। নেট সাইটগুলি একসাথে মিলিত হয়ে সেই বছরগুলিতে খুব বেশি দূরে সরে যাওয়ার সম্ভাবনা নেই।
এরিক রেপেন

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

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

2

তুমি জিজ্ঞেস করেছিলে:

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

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

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


1
আমি যদি এখানে লাইনগুলির মধ্যে সঠিকভাবে পড়ছি, মনে হচ্ছে আপনি নতুন ভাড়া নেওয়াতে অক্ষমতা নিয়ে কিছুটা তিক্ত হন bitter যদি আমি ভুল না হয়, আপনি কী ভেবেছেন যে নতুন ভাড়া যাদের দক্ষতাগুলি আপনার সংস্থায় কাজ করা পছন্দ করেন না তাদের পক্ষে চলার যথেষ্ট চাহিদা আছে তবে তারা এই সমীকরণের একমাত্র অ-স্থায়ী?
এরিক রেপেন

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

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

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

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

1

আমি আপনার ব্যথা অনুভব করছি তবে স্ক্র্যামের সাথে এটির কী কী আছে তা আমি নিশ্চিত নই। কোডটি পুনরায় লেখার সিদ্ধান্তটি উন্নয়ন প্রক্রিয়ার উপর নির্ভর করে না।


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

1

কিসের অপেক্ষা?

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

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