আপনি যে চক্রটি বর্ণনা করেছেন তা স্বাভাবিক। জিনিসগুলির উন্নতির উপায় এই চক্রটি এড়ানো নয়, বরং এটিকে প্রবাহিত করা। প্রথম পদক্ষেপটি তা গ্রহণ করা:
- কোনও এক প্রকল্পের দিনে সমস্ত কিছু জানা প্রায় অসম্ভব ।
- এমনকি আপনি যদি কোনওভাবে সমস্ত কিছু জানেন, তবে আপনি যখন প্রকল্পটি শেষ করেছেন তখন কিছু (ক্লায়েন্টের প্রয়োজনীয়তা, তারা যে বাজারে আসছেন, প্রযুক্তি যার সাথে আপনি কাজ করছেন, তাদের গ্রাহকদের ইচ্ছা) পরিবর্তন হয়ে যাবে এবং এতে তৈরি করা হবে আপনি যা অবৈধ বা ভুল জানতেন তার অন্তত অংশ।
অতএব, সামনের দিকে সবকিছু পরিকল্পনা করা অসম্ভব এবং আপনি যদি পারেনও, সেই পরিকল্পনা অনুসরণ করা আপনাকে অসম্পূর্ণ বা অপ্রচলিত কিছু তৈরি করতে পরিচালিত করবে। এটি জেনে, আমরা আমাদের পরিকল্পনার মধ্যে পরিবর্তনকে সংহত করি। আসুন আপনার পদক্ষেপগুলি দেখুন:
- কয়েকটি ব্যবহারের ক্ষেত্রে শুরু করুন
- কোডিং শুরু করুন
- কয়েকটি জিনিস বুঝতে পারি যে আমি ভালভাবে পরিচালনা করি নি, এবং বর্তমান কোডবেসে ভাল মানায় না।
- কোডের বেশিরভাগ অংশ পুনরায় লিখুন
এটি আসলে একটি দুর্দান্ত সূচনা পয়েন্ট। এখানে আমি কীভাবে এর কাছে যাব:
1. কয়েকটি ব্যবহারের ক্ষেত্রে শুরু করুন
ভাল. "ব্যবহারের ক্ষেত্রে" বলার মাধ্যমে, আপনি কি সফ্টওয়্যার উপর মনোযোগ নিবদ্ধ করছি জন্য । "কয়েক" বলে, আপনি সবকিছু আবিষ্কার করার চেষ্টা করছেন না; আপনি একটি পরিচালনীয় পরিমাণ কাজের উপর লেগে আছেন। আমি এখানে যা যুক্ত করব তা হল তাদের অগ্রাধিকার দেওয়া। আপনার ক্লায়েন্ট বা শেষ ব্যবহারকারীর সাথে, এই প্রশ্নের উত্তরটি তৈরি করুন:
আমি আপনাকে যে সফ্টওয়্যারটি দিতে পারি তার ক্ষুদ্রতম, সহজতম টুকরা কী যা আপনার পরিস্থিতির উন্নতি করতে পারে?
এটি আপনার ন্যূনতম টেকসই পণ্য - এটির চেয়ে ছোট কিছু আপনার ব্যবহারকারীর পক্ষে সহায়ক নয়, তবে বড় কিছু ঝুঁকিপূর্ণ খুব শীঘ্রই পরিকল্পনা করছেন। এটি তৈরির জন্য পর্যাপ্ত তথ্য পান, তারপরে এগিয়ে যান। সচেতন থাকুন যে আপনি এই মুহুর্তে সমস্ত কিছুই জানেন না।
2. কোডিং শুরু করুন।
গ্রেট। আপনি যত তাড়াতাড়ি সম্ভব কাজ পেতে। আপনি কোড লিখিত না হওয়া পর্যন্ত আপনার ক্লায়েন্টরা শূন্য সুবিধা পেয়েছে। আপনি যত বেশি সময় পরিকল্পনা ব্যয় করবেন, ক্লায়েন্টটি আর কোনও ব্যয় ব্যয় না করে অপেক্ষা করতে ব্যয় করেছে।
এখানে, আমি ভাল কোড লিখতে একটি অনুস্মারক যুক্ত করব । সলিড নীতিগুলি মনে রাখবেন এবং অনুসরণ করুন , ভঙ্গুর বা জটিল যেকোন কিছুকে ঘিরে শালীন ইউনিট পরীক্ষা লিখুন, আপনি ভুলে যাবেন এমন কোনও বিষয়ে নোট করুন বা এটি পরে সমস্যা হতে পারে। আপনি আপনার কোডটি কাঠামোবদ্ধ করতে চান যাতে পরিবর্তনের ফলে সমস্যা না ঘটে। এই কাজের জন্য, প্রত্যেক সময় আপনি কিছু গড়ে তুলতে একটা সিদ্ধান্ত নেওয়া এই পথ পরিবর্তে যে পথ, যাতে যত সম্ভব কম কোড যে সিদ্ধান্ত দ্বারা প্রভাবিত হয় আপনি আপনার কোড গঠন। সাধারণভাবে, এটি করার একটি ভাল উপায় হ'ল আপনার কোডকে আলাদা করা:
- সাধারণ, বিচ্ছিন্ন উপাদানগুলি ব্যবহার করুন (আপনার ভাষা এবং পরিস্থিতির উপর নির্ভর করে এই উপাদানটি কোনও ফাংশন, একটি শ্রেণি, একটি সমাবেশ, মডিউল, কোনও পরিষেবা ইত্যাদি হতে পারে You প্রচুর ফাংশন সহ একটি শ্রেণী, বা প্রচুর ক্লাস সহ একটি সমাবেশ assembly)
- প্রতিটি উপাদান একটি কাজ, বা একটি জিনিস সম্পর্কিত কাজ করে
- কোনও উপাদানটির অভ্যন্তরীণ কাজগুলি যেভাবে করে তার পরিবর্তনের ফলে অন্য উপাদানগুলিকে পরিবর্তন না করা উচিত
- উপাদানগুলি তাদের আনতে বা তৈরি করার পরিবর্তে তাদের ব্যবহার করা বা নির্ভর করে এমন জিনিস দেওয়া উচিত
- উপাদান উচিত দিতে অন্যান্য উপাদান তথ্য এবং বদলে কাজ করতে তাদেরকে জিজ্ঞেস আনার সময় তথ্য এবং কাজের নিজেদের করছেন
- উপাদানগুলির অ্যাক্সেস, ব্যবহার বা অন্যান্য উপাদানগুলির অভ্যন্তরীণ কাজগুলির উপর নির্ভর করা উচিত নয় - কেবল তাদের সর্বজনীনভাবে অ্যাক্সেসযোগ্য ফাংশনগুলি ব্যবহার করুন
এটি করে আপনি কোনও পরিবর্তনের প্রভাবগুলি বিচ্ছিন্ন করছেন যাতে বেশিরভাগ ক্ষেত্রেই আপনি এক জায়গায় সমস্যা সমাধান করতে পারেন এবং আপনার বাকী কোডটি লক্ষ্য করে না।
3. নকশায় সমস্যা বা ত্রুটি মোকাবেলা।
এটা ঘটবে। এটি অনিবার্য। এই গ্রহণ করুন। আপনি যখন এই সমস্যার মধ্যে একটি আঘাত করেন, তবে এটি কোন ধরণের সমস্যা তা স্থির করুন।
কিছু সমস্যা আপনার কোড বা ডিজাইনের সমস্যাগুলি যা সফ্টওয়্যারটি যা করা উচিত তা করা কঠিন করে তোলে। এই সমস্যার জন্য, আপনার সমস্যার সমাধান করতে আপনার ফিরে যেতে হবে এবং আপনার নকশাটি পরিবর্তন করতে হবে।
পর্যাপ্ত তথ্য না থাকার কারণে বা এমন কিছু যা আপনি আগে ভাবেননি বলে কিছু সমস্যা দেখা দেয়। এই সমস্যার জন্য আপনাকে আপনার ব্যবহারকারী বা ক্লায়েন্টের কাছে ফিরে যেতে হবে এবং তারা কীভাবে সমস্যাটি সমাধান করতে চান তা তাদের জিজ্ঞাসা করতে হবে। আপনার কাছে যখন উত্তর হবে, তখন আপনি এটি পরিচালনা করতে আপনার ডিজাইনটি আপডেট করুন।
উভয় ক্ষেত্রেই, আপনার কোডের কোন অংশগুলি পরিবর্তন করতে হবে সেদিকে আপনার মনোযোগ দেওয়া উচিত এবং আপনি আরও কোড লেখার সাথে সাথে ভবিষ্যতে কোন অংশগুলি পরিবর্তন হতে পারে সে সম্পর্কে আপনার চিন্তাভাবনা করা উচিত। এটি কোন অংশগুলিকে খুব আন্তঃসংযোগযুক্ত হতে পারে এবং কোন অংশগুলিকে আরও বিচ্ছিন্ন করার প্রয়োজন হতে পারে তা কাজ করা সহজ করে তোলে।
৪. কোডটির কিছু অংশ পুনর্লিখন করুন
আপনার কোডটি কীভাবে পরিবর্তন করতে হবে তা শনাক্ত করার পরে আপনি গিয়ে পরিবর্তনটি করতে পারেন। আপনি যদি আপনার কোডটি সুসংগঠিত করেন তবে সাধারণত এটিতে কেবলমাত্র একটি উপাদান পরিবর্তন করা জড়িত, তবে কিছু ক্ষেত্রে এটিতে কিছু উপাদান যুক্ত করাও জড়িত। যদি আপনি দেখতে পান যে আপনাকে প্রচুর জায়গায় প্রচুর জিনিস পরিবর্তন করতে হচ্ছে তবে তা কেন তা ভেবে দেখুন। আপনি কি এমন একটি উপাদান যুক্ত করতে পারেন যা এই কোডের সমস্তটি নিজের মধ্যে রাখে এবং তারপরে এই সমস্ত জায়গাগুলি কেবল সেই উপাদানটি ব্যবহার করতে পারে? যদি আপনি পারেন তবে তা করুন, এবং পরের বার আপনাকে এই বৈশিষ্ট্যটি পরিবর্তন করতে হবে আপনি এটি এক জায়গায় করতে সক্ষম হবেন।
5. পরীক্ষা
সফ্টওয়্যার সংক্রান্ত সমস্যার একটি সাধারণ কারণ প্রয়োজনীয়তাগুলি যথেষ্ট পরিমাণে জেনে রাখা নয়। এটি প্রায়শই বিকাশকারীদের দোষ হয় না - প্রায়শই ব্যবহারকারী তাদের কী প্রয়োজন তা নিশ্চিত হন না। এটি সমাধানের সবচেয়ে সহজ উপায় হ'ল প্রশ্নকে বিপরীত করা। "এই সফ্টওয়্যারটি করার জন্য আপনার কী দরকার?" জিজ্ঞাসা করার পরিবর্তে, প্রতিবার আপনি এই পদক্ষেপগুলি অতিক্রম করার পরে, ব্যবহারকারীকে আপনি এতদূর যা কিছু তৈরি করেছেন তা দিন এবং তাদের জিজ্ঞাসা করুন "আমি এটি তৈরি করেছি - এটি আপনার যা প্রয়োজন তা কি করে?" যদি তারা হ্যাঁ বলে, তবে আপনি এমন কিছু তৈরি করেছেন যা তাদের সমস্যার সমাধান করে, এবং আপনি কাজ বন্ধ করতে পারেন! যদি তারা না বলে, তবে তারা আপনাকে আপনার সফ্টওয়্যারটিতে কী কী ভুল রয়েছে তা আরও নির্দিষ্ট শর্তে বলতে সক্ষম হবে এবং আপনি সেই নির্দিষ্ট জিনিসটিকে উন্নত করতে পারেন এবং আরও প্রতিক্রিয়া জানাতে ফিরে আসতে পারেন।
6. শিখুন
আপনি এই চক্রটি অতিক্রম করার সময়, আপনি যে সমস্যাগুলি খুঁজে পাচ্ছেন এবং যে পরিবর্তনগুলি করছেন তাতে মনোযোগ দিন। নিদর্শন আছে? আপনি উন্নতি করতে পারেন?
কিছু উদাহরণ:
- আপনি যদি কোনও নির্দিষ্ট ব্যবহারকারীর দৃষ্টিভঙ্গিটি অবহেলা করে থাকেন তবে আপনি কি সেই ব্যবহারকারীকে ডিজাইন পর্যায়ে আরও যুক্ত হতে পারবেন?
- যদি আপনি কোনও প্রযুক্তির সাথে সামঞ্জস্যপূর্ণ হওয়ার জন্য জিনিসগুলি পরিবর্তন করতে থাকেন তবে আপনি নিজের কোড এবং সেই প্রযুক্তির মধ্যে ইন্টারফেসের জন্য এমন কিছু তৈরি করতে পারেন যাতে আপনাকে কেবল ইন্টারফেসটি পরিবর্তন করতে হবে?
- ব্যবহারকারী যদি ইউআই-তে শব্দ, রঙ, ছবি বা অন্যান্য জিনিসগুলি সম্পর্কে তাদের মন পরিবর্তন করে রাখেন, আপনি কি এমন একটি উপাদান তৈরি করতে পারবেন যা অ্যাপ্লিকেশনটির বাকি অংশগুলিকে সরবরাহ করে যাতে তারা সব এক জায়গায় থাকে?
- যদি আপনি দেখতে পান যে আপনার অনেকগুলি পরিবর্তন একই উপাদানটিতে রয়েছে, আপনি কি নিশ্চিত যে উপাদানটি একটি মাত্র কাজকে আঁকড়ে ধরেছে? আপনি এটি কয়েক ছোট টুকরা বিভক্ত করতে পারেন? আপনি অন্য কাউকে স্পর্শ না করে এই উপাদানটি পরিবর্তন করতে পারেন?
চটপটি হন
আপনি এখানে যেদিকে যাচ্ছেন তা হ'ল Agile হিসাবে পরিচিত কাজের স্টাইল। চতুরতা কোনও পদ্ধতি নয়, এটি পুরো পদ্ধতিতে কিছু কিছু বোঝাতে (স্ক্রাম, এক্সপি, কানবান,) একত্রিত করে এমন পদ্ধতির একটি পরিবার, তবে যে বিষয়গুলির মধ্যে তাদের সবার মিল রয়েছে তা হল ধারণাটি পরিবর্তন হয় এবং সফ্টওয়্যার বিকাশকারী হিসাবে আমরা পরিবর্তনগুলি এড়ানো বা উপেক্ষা করার পরিবর্তে অভিযোজন করার পরিকল্পনা করা উচিত। এর কয়েকটি মূল নীতি - বিশেষত, আপনার অবস্থার সাথে প্রাসঙ্গিক - নিম্নলিখিতগুলি হল:
- আপনি আত্মবিশ্বাসের সাথে পূর্বাভাস দেওয়ার চেয়ে আরও পরিকল্পনা করবেন না
- আপনি যেতে যেতে জিনিসগুলির জন্য ভাতা তৈরি করুন
- একসাথে বড় কিছু তৈরির পরিবর্তে ছোট কিছু তৈরি করুন এবং তারপরে ক্রমান্বয়ে এটি উন্নত করুন
- শেষ ব্যবহারকারীকে প্রক্রিয়াটিতে জড়িত রাখুন এবং দ্রুত, নিয়মিত প্রতিক্রিয়া পান feedback
- আপনার নিজের কাজ এবং অগ্রগতি পরীক্ষা করুন এবং আপনার ভুলগুলি থেকে শিখুন