আমার জ্যামি জাওনস্কির সফ্টওয়্যার এনভেলপমেন্টের আইন সম্পর্কে একটি সঠিক ব্যাখ্যা দরকার :
প্রতিটি প্রোগ্রাম মেল না পড়া পর্যন্ত প্রসারিত করার চেষ্টা করে। যে প্রোগ্রামগুলি এত প্রসারিত হতে পারে না সেগুলি তাদের দ্বারা প্রতিস্থাপিত হয় can
আমার জ্যামি জাওনস্কির সফ্টওয়্যার এনভেলপমেন্টের আইন সম্পর্কে একটি সঠিক ব্যাখ্যা দরকার :
প্রতিটি প্রোগ্রাম মেল না পড়া পর্যন্ত প্রসারিত করার চেষ্টা করে। যে প্রোগ্রামগুলি এত প্রসারিত হতে পারে না সেগুলি তাদের দ্বারা প্রতিস্থাপিত হয় can
উত্তর:
এখনও অবধি সমস্ত উত্তর (এবং মন্তব্য) পুরো বিবৃতিটির প্রথমার্ধের দিকে পুরোপুরি ফোকাস করবে বলে মনে করে এটি "ব্লাট" সম্পর্কে একটি মন্তব্য করে তোলে যখন গুরুত্বপূর্ণ অর্ধেকটি দ্বিতীয় অর্ধেক: যে প্রোগ্রামগুলি এতটা প্রসারিত করতে পারে না সেগুলি প্রতিস্থাপন করা হয় যা যা করতে পারেন.
এটি সফ্টওয়্যার ব্লাট সম্পর্কে নয়, এটি বাজারের বাস্তবতা সম্পর্কে। লোকেরা বলতে পারে যে তারা একটি সহজ পণ্য চায় তবে আপনি যখন প্রকৃত ব্যবহারের দিকে তাকান তখন যে জিনিসগুলি ব্যবহার করা হয় সেগুলি হ'ল ব্যবহারকারীরা আরও বেশি কিছু করতে দেয় এবং তারা কম-সক্ষম সরঞ্জামগুলির পরিবর্তে শেষ করে।
সমস্যার অংশটি হ'ল "সরল" একটি বিভ্রান্তিমূলক শব্দ। "ক্লিভ," এর মতো এর অর্থ দুটি প্রায় সম্পূর্ণ বিপরীত জিনিস। লোকেরা যা চায় তা হ'ল জটিল কাজগুলি সহজতর করে । এটি "ভাল সরল" এবং সঠিক কাজটি করার জন্য এটির জন্য অনেক জটিলতা প্রয়োজন। কিছু লোক এটিকে কীভাবে ব্যাখ্যা করে তা হ'ল লোকেরা কিছু সরল বা মিনিমালিস্ট চায়। এই ধারণার কিছু কুলুঙ্গি আবেদন থাকতে পারে, কিন্তু সামগ্রিকভাবে এটি কোনও পণ্য ডিজাইনের সময় ফোকাস করার জন্য ভুল ধরণের "সরল"। আপনার কাজটি কত ভাল হোক না কেন, নতুন বৈশিষ্ট্যটির অনুরোধগুলি আসতে থাকে।
একটি উদাহরণ দেওয়ার জন্য, আমি কর্মক্ষেত্রে কাজ করছি এমন প্রোগ্রাম রয়েছে। আপনি সম্ভবত এটি সম্পর্কে কখনও শুনেন নি, তবে আমরা একটি বিশেষ শিল্পের বাজারের নেতা: মিডিয়া নিয়ন্ত্রণ। আমাদের প্রোগ্রাম সম্ভবত আপনার প্রিয় টিভি এবং / বা রেডিও স্টেশন চালায়। গ্রাহকদের এটা ভালবাসা, তারা বলে এটা তাই অনেক অন্য কিছু তারা কাজ করেছি বেশী ভালো।
এটিও প্রচুর । এএসইই আকারের প্রায় 65 মিলিয়ন মাপের বেশি, প্রায় 4 মিলিয়ন লাইনের কোড সহ, প্রায় এক দশকেরও বেশি কাজের সময়কালে তৈরি হওয়া 150 টির বেশি টেবিল সহ একটি ডাটাবেস সমর্থন করে। এবং তবুও এটি মনে হয় প্রতিবারই আমরা এটি কোনও নতুন স্টেশন বা নেটওয়ার্কে ইনস্টল করার চেষ্টা করেছি, এমন একটি বা দুটি জিনিস রয়েছে যা তাদের কর্মপ্রবাহের জন্য একেবারে প্রয়োজনীয়, যা আমাদের কোনও সমর্থন নেই। সুতরাং আমরা নতুন বৈশিষ্ট্যগুলি যুক্ত করে শেষ করি কারণ অন্যথায় গ্রাহকরা ইতিমধ্যে ব্যবহার করা সিস্টেম থেকে স্যুইচ করতে চান না। এবং আমাকে পুনরাবৃত্তি করতে দিন, গ্রাহকরা এটি পছন্দ করে।
আপনাকে বুঝতে হবে যে এটি অনেক দিন আগে ঘটেছে এবং সেই সময় কম্পিউটারগুলি কোনও নির্দিষ্ট ব্যবহারকারীর জন্য এক সময়ে একাধিক প্রোগ্রাম চালাতে সক্ষম হবে এমন মূলধারার কাজটি ছিল না। ব্যক্তিগত কম্পিউটারের জন্য ডস (এবং সম্ভবত উইন্ডোজ 3 শীর্ষে) এবং ইউনিক্স-ব্যবহারকারীদের জন্য অক্ষর ভিত্তিক টার্মিনালগুলি (শুধুমাত্র কয়েকটিকে এক্স 11 ছিল)।
এর অর্থ এই যে আপনি বর্তমানে যা করছেন তার বাইরে বেরিয়ে আসতে হবে কিনা তা পরীক্ষা করার জন্য , মেল প্রোগ্রামটি শুরু করতে, মেলটি পড়তে হবে, মেল প্রোগ্রামটি থেকে বেরিয়ে আসতে হবে এবং আপনার পুরানো প্রোগ্রামটি পুনরায় চালু করতে হবে। আমার ধারণা আপনি দেখতে পাচ্ছেন যে যদি আপনার বর্তমান প্রোগ্রামটি আপনাকে আপনার ইমেলটি পড়তে দেয় তবে আপনি সেগুলি এড়াতে পারেন।
সুতরাং যদি আপনার বর্তমান প্রোগ্রামটি আপনার ইমেলটি না পড়তে পারে তবে আপনি এটির প্রবণতা তৈরি করেছিলেন (মনে রাখবেন এটি এমআইটি শিক্ষার্থী ছিল) বা অন্য কোনওটিতে যেতে পারে যা পারে।
এই দিনগুলি যা কল্পনা করা শক্ত, তবে আপনি নিজেকে একটি একক ব্রাউজার উইন্ডো - কোনও ট্যাব, কোনও অতিরিক্ত উইন্ডো - এবং এমনকি বুকমার্কগুলি ব্যবহার না করে সীমাবদ্ধ রেখে এটি কীভাবে তৈরি হয়েছিল তার একটি কালি পেতে পারেন ।
বাকিদের ইতিমধ্যে "আইন" হিসাবে উল্লেখ করেছে একটি রসাত্মক পর্যবেক্ষণ হল সফ্টওয়্যার ফোলানো এবং স্কোর হামাগুড়ি , এবং এটি খুব অনুরূপ Greenspun এর দশম নিয়ম :
যে কোনও পর্যাপ্ত জটিল সি বা ফোর্টরান প্রোগ্রামে একটি অ্যাডহক রয়েছে, অনানুষ্ঠানিকভাবে নির্দিষ্ট, বাগ-চালিত, কমন লিসপের অর্ধেকের ধীর প্রয়োগ।
আইনটি নেটস্কেপ ব্রাউজার এবং পরে নেটস্কেপ মেল ও নিউজের সাথে জাভিনস্কির কাজকে প্রতিফলিত করে, যেমন এখানে নিজেই বর্ণনা করেছেন:
এরপরে, আমি ডিজাইন করেছি এবং টেরি ওয়েইসম্যান এবং আমি বাস্তবায়ন করেছি, নেটস্কেপ মেল এবং নিউজ ক্লায়েন্টগুলি, সংস্করণ ২.০ থেকে 3.0। এটি সফ্টওয়্যার এনভেলপমেন্টের আইন প্রমাণের জন্য আমাদের অবদান ছিল :
"প্রতিটি প্রোগ্রাম মেল না পড়া পর্যন্ত প্রসারিত করার চেষ্টা করে। যে প্রোগ্রামগুলি এত বেশি প্রসারিত করতে পারে না সেগুলি তাদের দ্বারা প্রতিস্থাপন করা হয়" "
নেটস্কেপ ব্রাউজার, তত্কালীন সর্বাধিক জনপ্রিয় ব্রাউজার, তার নিজের ভালোর জন্য অনেকগুলি বৈশিষ্ট্য থাকার কারণে প্রায়শই সমালোচিত হয়েছিল, যদি আমি ভয়াবহভাবে ভুল না করি তবে এটি সর্বশেষ (জনপ্রিয়) ব্রাউজার যা দুটি রেন্ডারিং ইঞ্জিন, গেকো এবং ট্রাইডেন্টকে সমর্থন করেছিল। উদাহরণস্বরূপ, বেন গুডার নেটস্কেপের ফোলাটিকে ফায়ারফক্স 1 তৈরির দিকে পরিচালিত করে এমন এক (অনেকগুলি) কারণ হিসাবে চিহ্নিত করেছেন :
মজিলার ইউআই ডিসফংশন
যেহেতু নেটস্কেপ পণ্যগুলির জন্য বেশিরভাগ ইউজার ইন্টারফেস ডিজাইন নেটসেন্টার প্রয়োজনীয়তার সাথে কাজ করে নেটস্কেপ কর্মীরা করেছিলেন, তাই মোজিলা ব্যবহারকারী ইন্টারফেসের ক্ষতি হয়েছিল। নেটস্কেপ এমন একটি পরিষ্কার কোর হওয়ার পরিবর্তে যার প্রয়োজন অনুসারে একটি পণ্য তৈরি করতে পারে, মোজিলা স্যুটটি কখনই একেবারেই সঠিক মনে হয়নি; এটি বিশ্রী ইউআই কন্সট্রাক্টসগুলি দিয়ে পূর্ণ ছিল যা কেবলমাত্র নেটস্কেপের ব্যক্তিগত উত্স ভাণ্ডার - "বাণিজ্যিক গাছ" এর ওভারলে দিয়ে পূরণ করতে পারে।
এই কর্মহীনতাটিকে আরও বাড়িয়ে তুলতে, সেই সময় বিভিন্ন সিপিডির মধ্যে প্রায়শই দুর্বল সংযুক্ত বিভাগগুলির এক শতাধিক প্রকৌশলী দ্বারা প্রকল্পটি তৈরি করা হয়েছিল। নেটস্কেপ আগের বছরগুলিতে দ্রুত বৃদ্ধি পেয়েছিল এবং অসম নিয়োগের বার ইঞ্জিনিয়ারদের সাথে দক্ষতা রয়েছে যা তাদের পরামর্শ দেয় যে তাদের অন্যদের কাছ থেকে আরও বেশি সহায়তার প্রয়োজন ছিল বৈশিষ্ট্য নকশা এবং বাস্তবায়নে অনেক বেশি স্বায়ত্তশাসন রয়েছে। ব্যবহারকারীর অভিজ্ঞতা সহায়তা খুব কম ছিল এবং ফলস্বরূপ অ্যাপ্লিকেশনটি দ্রুত ফুলে উঠেছে।
1 বেন গুডারের এখন অদৃশ্য ব্লগের সংরক্ষণাগারিত সংস্করণ থেকে ।
এটি আসল আইন নয়, সফ্টওয়্যার প্রকল্পগুলি (সঠিকভাবে পরিচালিত না হলে) এত বড় এবং জটিল কীভাবে বৃদ্ধি পেতে পারে সে সম্পর্কে এটি একটি ব্যঙ্গাত্মক মন্তব্য, এগুলি শেষ পর্যন্ত কোনও ইমেল পাঠককে অন্তর্ভুক্ত করে (যদিও প্রকল্পের মূল উদ্দেশ্যটির সাথে এটির কোনও সম্পর্ক নেই ) । আমি একবার একজন ম্যানেজারকে অনুরূপ বাক্যাংশটি পছন্দ করেছিলাম "যে কোনও জটিল জটিল ব্যবস্থায় এটির মধ্যে একটি অর্ধ-অ্যাসিড এলআইএসপি বাস্তবায়ন থাকে"।
কিছু সফ্টওয়্যার প্রকল্প কীভাবে আরও বেশি করে বৈশিষ্ট্যগুলি প্রসারণ এবং যুক্ত করে চলেছে বলে মনে হচ্ছে এটি একটি মন্তব্য।
অনেকগুলি প্রকল্প প্রয়োজনীয়তা বা না হওয়া যুক্ত করে বৈশিষ্ট্যগুলি যুক্ত করতে প্রতিরোধ করতে সক্ষম হবে বলে মনে হচ্ছে না।
একটি যৌক্তিক উপসংহারটি হ'ল প্রতিটি সফ্টওয়্যার মেল প্রেরণা শেষ করে।
আরো দেখুন ব্যাপ্তি Creep থেকে ।
আমি এটি দেখার জন্য কমপক্ষে তিনটি উপায় দেখতে পাচ্ছি।
একটি হ'ল মেইল পঠন প্রতি সে সেটিকে উপেক্ষা করা এবং এটিকে একটি বিবৃতি হিসাবে দেখানো যে লোকেরা নমনীয়তার সাথে পণ্যগুলি প্রায় কোনও কাজে সরিয়ে নিতে পছন্দ করে, এটি সরঞ্জামটির মূল অভিপ্রায় যতটা সামান্যই করতে পারে তা নির্বিশেষে। আমরা যদি এইভাবে এটি দেখি তবে ফটোশপের মতো একটি পণ্য যা মেল পাঠকে সমর্থন করে না তা কোনও বিড়ম্বনা নয় কারণ এর প্লাগ-ইন আর্কিটেকচারটি যথেষ্ট নমনীয় যে এটি মেল পাঠকে সমর্থন করতে পারে , যদিও (যতদূর আমি জানি) না যেমন প্লাগ-ইন বিদ্যমান। এই দৃষ্টিভঙ্গিটি আরও পরিষ্কারভাবে সংক্ষিপ্ত করা যেতে পারে তবে মূলত "নমনীয়তা বিশেষায়িত করে" as
এটি দেখার দ্বিতীয় উপায়টি হ'ল জেমি জাওনস্কির এমন সংকীর্ণ দৃষ্টি নিবদ্ধ রয়েছে যে তিনি ফটোশপ, পাওয়ারপয়েন্ট, বেশিরভাগ গেমস ইত্যাদির পণ্যগুলিকে কেবল উপেক্ষা করেন যা প্রায় বছর ধরে চলেছে, মেল পড়ার পক্ষে সমর্থন করে না এবং ডন ' টি যে কোনও কিছু দ্বারা প্রতিস্থাপিত হচ্ছে বলে মনে হচ্ছে না।
তৃতীয়টি দ্বিতীয়টির সামান্য কিছুটা পাল্টা বিন্দু হয়ে দাঁড়াবে যে বলে যে, মূলত, পণ্যগুলির মধ্যে সংমিশ্রণ এমন একটি মাত্রায় ঘটেছিল যে মেল পাঠকে কার্যকরভাবে সমস্ত কিছুতে সংহত করা হয় কারণ বেশিরভাগ লোকেরা এখন পটভূমিতে মেল রিডার চালিয়ে যাচ্ছেন, সমস্ত সময় এবং এটি দ্রুত / সহজেই যথেষ্ট পরিবর্তন করতে পারে, কাটাতে এবং অন্য যে কোনও কিছু দিয়ে আটকানো যায় ইত্যাদি, যে মেল পাঠককে পৃথক অ্যাপ্লিকেশন হিসাবে প্যাকেজ করা হয়েছে তার ছোটখাট বিবরণ অপ্রাসঙ্গিক হয়ে পড়েছে।