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