معضلة المطور

الاختيار بين استخدام خدمة أو نظام أساسي قائم ، وبناء منصتك الخاصة

هناك مشكلة كبيرة أواجهها الآن.

أحاول العديد من المنصات لمعرفة ما إذا كانت مناسبة بشكل جيد لتكون المكان الذي يمكنني فيه استضافة الدورات التدريبية الخاصة بي في المستقبل.

تعتمد المنصة التي أستخدمها الآن على موقع ثابت يتداخل مع تكامل مخصص وأدوات بدون تعليمات برمجية (مثل Airtable). تتم إدارة المدفوعات والاشتراكات في الدورة باستخدام خدمات Node.js يمكنك تسميتهجامستاكوخادم، أو أي مصطلح خيالي هو الورك اليوم.

في الواقع ، لدي العديد من منصات SAAS ، جميعها متشابهة ، لكل دورة من دوراتي. أحب أن أبقي الأمور بسيطة ومباشرة قدر الإمكان. عندما بدأت لأول مرة ، أنشأت موقعًا إلكترونيًا لدورة تدريبية.

ثم عندما حان وقت إعداد دورة تدريبية أخرى ، قمت بنسخ هذا الموقع ، وعملت "نسخة" أخرى منه.

الآن قفز عدد الدورات إلى 7 ، وقد حان الوقت لإعادة النظر في البنية التحتية الشاملة التي أستخدمها.

كان فكرتي الأولى هي استخدام منصة يمكنني استخدامها ، والتي يمكن أن تكون بمثابة محور مركزي لمواد الدورة التدريبية ، وتوفر وظائف لم يكن عليّ أن أبنيها بنفسي.

لذلك خرجت وجربت بعض الخدمات الشعبية ، بما في ذلك Teachable و Podia والعديد من الخدمات الأخرى.

لكنني واجهت ما أسميه معضلة المطور.

للوهلة الأولى هذه المنصات مذهلة. مصممة جيدًا ، واجهتهم رائعة ، وتسويقهم يتألق ويبدو رائعًا حقًا.

ثم بدأت في استخدامها.

وبدأت في تسلق مقياس الإحباط.

  1. "هذا يبدو رائعًا"
  2. "يعجبني بشكل عام ، ولكن هذا الشيء قد يكون مختلفًا"
  3. "المحرر بائس"
  4. "أتمنى أن أتمكن من استخدام تخفيض السعر"
  5. "هناك خطأ ، كيف يمكن أن أكون الوحيد الذي واجه هذا؟"
  6. "مرحبًا أيها الدعم ، واجهت هذه المشكلة" - "لقد رفعناها إلى الفريق الهندسي ، وسنوافيك بالمعلومات"
  7. "يا إلهي ، لقد فقدت الكثير من الوقت في هذا بالفعل"

أنا مطور كسول. أنا أعتبر هذا أفضل ما لدي من قدرات فنية.

إن المبالغة في هندسة البرمجيات ، عندما تكون مطورًا كسولًا ، لا يمثل مشكلة. لم يحدث أبدا. أنا أكتب فقط الحد الأدنى من التعليمات البرمجية اللازمة لأداء مهمة ما.

أنا أقاوم التعقيد.

لماذا هذا عظيم؟ لا يمكنك توقع احتياجات الغد ، مشاكل الغد. وتعلمت هذا مع مرور الوقت.

بصفتي مقاولًا ، عملت على قواعد برمجية معقدة للغاية لدرجة أنني أردت البكاء وكلما استطعت ، أفضل المبالغة في التبسيط على التعقيد المفرط.

كوني مطورًا كسولًا يجعلني أفكر كثيرًا قبل كتابة البرامج.

لأن كتابة البرمجيات هي مسؤولية.

أنت تكتب الوزن الذي ستأخذه معك في المستقبل.

لنفترض ، مع متابعة ما كتبته أعلاه حول اختيار منصة الدورات التدريبية ، أنني قررت كتابة منصة الدورة التدريبية الخاصة بي.

هذا يعني أنني يجب أن أكتبها أولاً.

أنا بحاجة لاتخاذ قرارات. قرارات قد تكون صحيحة ، قرارات قد تكون خاطئة.

وبعد أن أنشأت البرنامج الذي أحلم به ، أحتاج إلى الحفاظ على الكود في المستقبل. أنا مسؤول عن ذلك. لم يعد هناك زر "طلب الدعم".

بصفتنا مطورًا ، لدينا هذه القدرة المذهلة على إنشاء الأدوات التي نحتاجها. على حساب المسؤولية.

لكنها أيضًا معضلة ملكية. هل أرغب في الاعتماد على هذه المنصة المحددة لمدة 5-10 سنوات قادمة؟ ماذا لو كانت القرارات التي يتخذونها لا تتوافق مع قراري؟ ماذا لو رفعوا أسعارهم؟ هل سأتمكن من الابتعاد عنها بسهولة؟

في السيناريو المثالي ، سأختار دائمًا النظام الأساسي الخاص بي على منصة يديرها أشخاص آخرون. لكنني سأختار دائمًا الطريق الأسهل أيضًا.

أكبر وأثمن مورد بالنسبة لي هو الوقت. كان بإمكاني الحصول على مزيد من الوقت باختيار حل موجود.

هل يجب أن أمضي شهرًا واحدًا في كتابة منصة الدورات التدريبية الخاصة بي؟

هذا هو المثال الحالي لمعضلة المطور التي أواجهها.

لقد جربت كل الحلول الممكنة المعدة مسبقًا لذلك.

لقد فشلوا جميعًا في الوفاء بوعدهم (أو الصورة التي كانت لدي عنهم في ذهني) بطريقة أو بأخرى.

قررت أنني سأكتب الحل الخاص بي. أبسط حل بالطبع.


المزيد من الدروس المعملية: