ফ্রেড ব্রুকস

ফ্রেডরিক ফিলিপস ব্রুকস, জুনিয়র (১৯ এপ্রিল, ১৯৩১ – ১৭ নভেম্বর, ২০২২) ছিলেন একজন কম্পিউটার আর্কিটেক্ট, সফটওয়্যার প্রকৌশলী এবং কম্পিউটার বিজ্ঞানী। তিনি আইবিএমের সিস্টেম/৩৬০ কম্পিউটার ফ্যামিলির হার্ডওয়্যার এবং পরবর্তীতে ওএস/৩৬০ এর উন্নয়ন কাজ পরিচালনার জন্য সবচেয়ে বেশি বিখ্যাত। পরবর্তীতে তিনি এই প্রক্রিয়ার অভিজ্ঞতা নিয়ে তাঁর কালজয়ী গ্রন্থ 'দ্য মিথিক্যাল ম্যান-মান্থে অত্যন্ত স্পষ্টভাবে লিখেছিলেন। ব্রুকস ১৯৯৯ সালে টুরিং পুরস্কার এবং আরও অনেক পুরস্কার লাভ করেন।
উক্তি
[সম্পাদনা]- আর্কিটেকচার শব্দটি এখানে একজন প্রোগ্রামারের দৃষ্টিতে একটি সিস্টেমের বৈশিষ্ট্যসমূহ বর্ণনা করতে ব্যবহৃত হয়েছে, অর্থাৎ এর ধারণাগত কাঠামো এবং কার্যকারী আচরণ; যা ডেটা প্রবাহ ও নিয়ন্ত্রণ বিন্যাস, লজিক্যাল ডিজাইন এবং ফিজিক্যাল ইমপ্লিমেন্টেশন থেকে সম্পূর্ণ আলাদা।
- জিন আমডাহল, গেরিট ব্লাউ এবং ফ্রেড ব্রুকস (১৯৬৪) "আর্কিটেকচার অফ দ্য আইবিএম সিস্টেম।" আইবিএম জার্নাল অফ রিসার্চ অ্যান্ড ডেভেলপমেন্ট খণ্ড ৮ (২) পৃষ্ঠা ৮৭-১০১।
- ধীরগতির সিস্টেমের বিরুদ্ধে অন্তহীন যুদ্ধে একজন প্রোগ্রামারের প্রাথমিক অস্ত্র হলো মডিউলের অভ্যন্তরীণ কাঠামো পরিবর্তন করা। আমাদের প্রথম প্রতিক্রিয়া হওয়া উচিত মডিউলগুলোর ডেটা স্ট্রাকচার পুনর্গঠন করা।
- ব্রুকস (১৯৭৫, অধ্যায় ৯); স্টিভ সি. ম্যাককনেল রচিত কোড কমপ্লিট: এ প্র্যাকটিক্যাল হ্যান্ডবুক অফ সফটওয়্যার কনস্ট্রাকশন।
- একটি প্রকল্পে আপনি যে সময়ের অর্ধেকেরও বেশি (প্রায় ৭০ শতাংশ) ব্যয় করেন তা আসলে চিন্তা করার পেছনে ব্যয় হয়, এবং কোনো সরঞ্জাম, তা যতই উন্নত হোক না কেন, আপনার হয়ে চিন্তা করে দিতে পারে না। ফলস্বরূপ, কোনো সরঞ্জাম যদি আপনার হয়ে চিন্তা করা বাদে বাকি সব কাজও করে দেয় যদি এটি ১০০ শতাংশ কোড লেখে, ১০০ শতাংশ ডকুমেন্টেশন তৈরি করে, ১০০ শতাংশ টেস্টিং করে, সিডি-রম বার্ন করে, বক্সে ভরে গ্রাহকদের কাছে পাঠিয়েও দেয় তবুও আপনি বড়জোর উৎপাদনশীলতায় ৩০ শতাংশ উন্নতির আশা করতে পারেন। এর চেয়ে ভালো কিছু করতে হলে, আপনাকে আপনার চিন্তা করার পদ্ধতি পরিবর্তন করতে হবে।
- টুলবক্স, জাভা ওয়ার্ল্ড, জুলাই ১৯৯৯ [ভাবানুবাদ] থেকে উদ্ধৃত।
- কেউ কেউ বইটিকে "সফটওয়্যার প্রকৌশলের বাইবেল" বলে অভিহিত করেছেন। আমি একটি বিষয়ে এর সাথে একমত: তা হলো, সবাই এটি উদ্ধৃত করে, কিছু মানুষ এটি পড়ে এবং খুব অল্প সংখ্যক মানুষ এটি মেনে চলে।
- ১৬ ডিসেম্বর ২০০৫ এ ফরচুন ম্যাগাজিনে প্রকাশিত কোটেড অফেন, ফলোড রেয়ারলি নিবন্ধে উদ্ধৃত; ১৯৭৫ সালে প্রকাশিত বই দ্য মিথিক্যাল ম্যান-মান্থ প্রসঙ্গে। [১]
- জব কন্ট্রোল ল্যাঙ্গুয়েজ (জেসিএল) হলো আজ পর্যন্ত যেকোনো স্থানে, যেকোনো ব্যক্তির দ্বারা, যেকোনো উদ্দেশ্যে তৈরি করা সবচেয়ে জঘন্য প্রোগ্রামিং ভাষা।
- দ্য আইবিএম সিস্টেম/৩৬০ রেভোলিউশন, কম্পিউটার হিস্ট্রি মিউজিয়াম কর্তৃক রেকর্ডকৃত, ৭ এপ্রিল ২০০৪
দ্য মিথিক্যাল ম্যান-মান্থ: এসেস অন সফটওয়্যার ইঞ্জিনিয়ারিং (১৯৭৫, ১৯৯৫)
[সম্পাদনা]মূলত ১৯৭৫ সালে প্রকাশিত; পৃষ্ঠাসংখ্যা ১৯৯৫ সালের বর্ধিত অ্যানিভার্সারি এডিশন (২য় সংস্করণ) থেকে নেওয়া হয়েছে, অ্যাডিসন-ওয়েসলি, আইএসবিএন 0-201-83595-9
- একজন প্রোগ্রামার, একজন কবির মতো, বিশুদ্ধ চিন্তার উপাদান থেকে সামান্য দূরে থেকে কাজ করেন। তিনি কল্পনার পরিশ্রমে বাতাস থেকে বাতাসে তাঁর আকাশকুসুম দুর্গ নির্মাণ করেন। সৃষ্টির খুব কম মাধ্যমই এত নমনীয়, ঘষেমেজে নতুন রূপ দেওয়া এত সহজ, এবং মহৎ ধারণাগত কাঠামো বাস্তবায়নে এত সহজে সক্ষম।
তবুও প্রোগ্রাম কাঠামো কবির শব্দের মতো নয়; এটি এই অর্থে বাস্তব যে এটি চলে এবং কাজ করে, এবং কাঠামোটি থেকে আলাদা দৃশ্যমান ফলাফল তৈরি করে। পৌরাণিক কাহিনী ও কিংবদন্তির জাদু আমাদের সময়ে সত্য হয়ে উঠেছে। কেউ কীবোর্ডে সঠিক মন্ত্র টাইপ করে, আর অমনি একটি ডিসপ্লে স্ক্রিন প্রাণবন্ত হয়ে ওঠে, এমন কিছু দেখায় যা আগে কখনও ছিল না বা হতে পারত না।- পৃষ্ঠা ৭।
- একটি সন্তান ধারণের জন্য নয় মাস সময় লাগে, সেখানে কতজন নারীকে নিযুক্ত করা হলো তা কোনো বড় বিষয় নয়।
- পৃষ্ঠা ১৭; দ্রষ্টব্য থিওডোর ফন কারমান (১৯৫৭): "সবাই জানে যে একজন মহিলার সন্তান হতে নয় মাস সময় লাগে। কিন্তু তোমরা আমেরিকানরা মনে করো যদি তোমরা নয়জন নারীকে গর্ভবতী করো, তবে তোমরা এক মাসেই একটি সন্তান পেতে পারো।"
- ব্রুকসের সূত্র: একটি বিলম্বিত সফটওয়্যার প্রকল্পে জনবল যোগ করলে সেটি আরও বিলম্বিত হয়।
- পৃষ্ঠা ২৫ (মূলে বাঁকা অক্ষরে, এখানে গাঢ় করা হয়েছে)।
- "দ্বিতীয় সিস্টেম প্রভাব":
একজন আর্কিটেক্টের প্রথম কাজ সাধারণত পরিমিত এবং পরিচ্ছন্ন হয়। তিনি জানেন যে তিনি কী করছেন তা নিয়ে তিনি পুরোপুরি নিশ্চিত নন, তাই তিনি এটি সাবধানে এবং খুব সংযমের সাথে করেন।
যখন তিনি প্রথম কাজটি ডিজাইন করেন, তখন একের পর এক বাড়তি সুবিধা এবং অলঙ্করণের ধারণা তাঁর মাথায় আসতে থাকে। এগুলো "পরের বার" ব্যবহারের জন্য জমা করে রাখা হয়। শীঘ্র বা বিলম্বে প্রথম সিস্টেমটি শেষ হয়, আর আর্কিটেক্ট দৃঢ় আত্মবিশ্বাস এবং সেই শ্রেণির সিস্টেমে তাঁর দক্ষতা প্রমাণের মাধ্যমে একটি দ্বিতীয় সিস্টেম তৈরির জন্য প্রস্তুত হন।
এই দ্বিতীয় সিস্টেমটি হলো একজন মানুষের ডিজাইন করা সবচেয়ে বিপজ্জনক সিস্টেম। যখন তিনি তাঁর তৃতীয় এবং পরবর্তী সিস্টেমগুলো করেন, তখন তাঁর পূর্ব অভিজ্ঞতাগুলো একে অপরকে নিশ্চিত করবে যে এই ধরনের সিস্টেমের সাধারণ বৈশিষ্ট্যগুলো আসলে কী; এবং তাদের মধ্যকার পার্থক্যগুলো তাঁকে বুঝতে সাহায্য করবে তাঁর অভিজ্ঞতার কোন অংশগুলো বিশেষ এবং কোনগুলো সাধারণীকরণের যোগ্য নয়।
সাধারণ প্রবণতা হলো দ্বিতীয় সিস্টেমটিকে অতিরিক্ত ডিজাইন করা, যেখানে প্রথম সিস্টেমে সাবধানতার সাথে সরিয়ে রাখা সমস্ত ধারণা এবং বাড়তি সুবিধাগুলো ব্যবহার করা হয়। এর ফলাফল, ওভিড-এর ভাষায়, একটি "বিশাল স্তূপ"।- পৃষ্ঠা ৫৫।
- একটি প্রাচীন প্রবাদ সতর্ক করে, "কখনও দুটি ক্রোনোমিটার নিয়ে সমুদ্রে যেও না; হয় একটি নাও, নয়তো তিনটি।"
- পৃষ্ঠা ৬৪।
- আমাকে তোমার ফ্লোচার্ট দেখাও আর টেবিলগুলো লুকিয়ে রাখো, আমি বিভ্রান্ত হতেই থাকব। আমাকে তোমার টেবিলগুলো দেখাও, তখন সাধারণত আমার আর তোমার ফ্লোচার্টের প্রয়োজন হবে না; সেগুলো এমনিতেই স্পষ্ট হয়ে যাবে।
- পৃষ্ঠা ১০২–৩।
- তাই ব্যবস্থাপনার প্রশ্নটি এটি নয় যে, আপনি একটি পরীক্ষামূলক সিস্টেম তৈরি করে সেটি ফেলে দেবেন কি না। আপনি সেটি করবেনই। সুতরাং, একটি ফেলে দেওয়ার পরিকল্পনা আগে থেকেই করুন; আপনি যেভাবেই হোক তা করবেনই।
- পৃষ্ঠা ১১৬ (মূলে বাঁকা অক্ষরে)।
- একটি প্রকল্প কীভাবে এক বছর পিছিয়ে যায়? প্রতিদিন একদিন একদিন করে।
- পৃষ্ঠা ১৫৩ (মূলে বাঁকা অক্ষর এবং উপবৃত্ত চিহ্ন ব্যবহার করা হয়েছে)।
- সাংগঠনিক কাঠামোটি প্রাথমিকভাবে প্রথম সিস্টেম ডিজাইনের প্রতিফলন ঘটাবে, যা নিশ্চিতভাবেই সঠিক নয়। একজন মানুষ শেখার সাথে সাথে তার ডিজাইন পরিবর্তন করে সিস্টেম পরিবর্তনের সাথে সাথে ব্যবস্থাপনা কাঠামোও পরিবর্তন করা প্রয়োজন।
নো সিলভার বুলেট (১৯৮৬)
[সম্পাদনা]পৃষ্ঠাসংখ্যা উপরে উল্লিখিত দ্য মিথিক্যাল ম্যান-মান্থ, অ্যানিভার্সারি এডিশনএর ১৬তম অধ্যায় থেকে নেওয়া হয়েছে।
মূলত ইনফরমেশন প্রসেসিং ১৯৮৬, প্রসিডিংস অফ দ্য আইএফআইপি টেনথ ওয়ার্ল্ড কম্পিউটিং কনফারেন্স, এইচ. কে. কুগলার সম্পাদিত, এলসেভিয়ার সায়েন্স, ১৯৮৬, পৃষ্ঠা ১০৬৯-১০৭৬ এ প্রকাশিত। এছাড়াও এটি আইইইই ম্যাগাজিন কম্পিউটার, ২০, ৪ (এপ্রিল, ১৯৮৭), পৃষ্ঠা ৪৩-৫৭ এ পুনঃমুদ্রিত হয়েছে।
- একটি সফটওয়্যার সত্তার সারমর্ম হলো পরস্পর সংযুক্ত ধারণাসমূহের একটি কাঠামো: আমি বিশ্বাস করি সফটওয়্যার তৈরির কঠিন অংশটি হলো এই ধারণাগত কাঠামোর স্পেসিফিকেশন, ডিজাইন এবং টেস্টিং; এটিকে উপস্থাপন করার পরিশ্রম বা সেই উপস্থাপনার নির্ভুলতা যাচাই করা নয়।
- পৃষ্ঠা ১৮২ (মূলে বাঁকা অক্ষরে)।
- সফটওয়্যারের জটিলতা একটি অপরিহার্য বৈশিষ্ট্য, কোনো আকস্মিক ঘটনা নয়। তাই, কোনো সফটওয়্যার সত্তার বর্ণনা থেকে যদি এর জটিলতাকে বাদ দিয়ে দেওয়া হয়, তবে তা প্রায়শই এর সারমর্মকেও বাদ দিয়ে দেয়।
- পৃষ্ঠা ১৮৩।
- আইন্সটাইন বারবার যুক্তি দিয়েছিলেন যে প্রকৃতির অবশ্যই সরলীকৃত ব্যাখ্যা থাকতে হবে, কারণ ঈশ্বর খামখেয়ালি বা উদ্দেশ্যহীন নন। সফটওয়্যার প্রকৌশলীর ভাগ্যে এমন কোনো বিশ্বাস জোটে না। তাকে যে বিপুল জটিলতা আয়ত্ত করতে হয়, তার বেশিরভাগই হলো উদ্দেশ্যহীন জটিলতা কারণ সেগুলো ঈশ্বরের বদলে বিভিন্ন মানুষের দ্বারা ডিজাইন করা হয়েছে।
- পৃষ্ঠা ১৮৪।
- এমনকি নিখুঁত প্রোগ্রাম যাচাইকরণ কেবল এটিই প্রতিষ্ঠিত করতে পারে যে একটি প্রোগ্রাম তার স্পেসিফিকেশন বা শর্তাবলি পূরণ করে। একটি প্রোগ্রাম তৈরির মূল সারমর্মের অনেকটা জুড়েই থাকে আসলে সেই স্পেসিফিকেশনের ত্রুটি সংশোধন করা।
- পৃষ্ঠা ১৯৫।
- একের পর এক গবেষণা দেখাচ্ছে যে, সেরা ডিজাইনাররা এমন কাঠামো তৈরি করেন যা দ্রুততর, ক্ষুদ্রতর, সরলতর, অধিকতর স্পষ্ট এবং কম পরিশ্রমে তৈরি। একজন মহান ডিজাইনার এবং একজন সাধারণ ডিজাইনারের কাজের মধ্যে পার্থক্য প্রায় দশ গুণ।
- পৃষ্ঠা ২০২।
- সামান্য অতীতচারণা করলেই দেখা যায় যে, যদিও অনেক চমৎকার এবং দরকারী সফটওয়্যার সিস্টেম কমিটির দ্বারা ডিজাইন করা হয়েছে এবং বহুমুখী প্রকল্পের অংশ হিসেবে তৈরি করা হয়েছে, তবুও সেই সফটওয়্যার সিস্টেমগুলোই অনুরাগী সমর্থকদের মধ্যে প্রবল উদ্দীপনা সৃষ্টি করেছে যেগুলো একজন বা খুব অল্প কয়েকজন মহান ডিজাইনারের মস্তিষ্কপ্রসূত।
- পৃষ্ঠা ২০২।