الإيجنتس ما بتفشلش في الكود. بتفشل لما ما تعرفش.
Caddy بياخد فكرة سوفتوير ويبنيها بفريق من إيجنتس مخصّصين. واللي مختلف هو مكان التفكير: كله من الأول، فبحلول الوقت اللي إيجنت يكتب فيه سطر كود، يكون كل قرار محتاجه اتاخد بالفعل.
فكرتك
الأول، بيسأل.
بتدّي Caddy فكرة. لو شكلها الكامل جاهز، Caddy يبدأ. ولو مش كده، وده حال أغلب الأفكار، يقعد يسألك. بيسأل عن المنتج، والناس اللي هتستخدمه، والداتا اللي شايلها، وإيه اللي لازم يعمله، وإيه اللي المفروض ما يعملهوش أبدًا. ويفضل يسأل لحد ما الفراغات تتقفل.
لو اللي محتاجه هو الشكل الكامل لمنتج والشركة اللي حواليه، Caddy هيوجّهك لـOrivon الأول. مقابلة Caddy أقصر عن قصد. هي عشان توصل لفكرة ينفع تتبني، مش لخطة بيزنس.
مين يفتح ده في يوم عادي، وبيحاول يعمل إيه؟
بيحصل إيه لو اتنين غيّروا نفس الحاجة في نفس الوقت؟
أنهي معلومات هنا خاصة، ومين المفروض ما يشوفهاش أبدًا؟
إيه اللي المنتج ده المفروض ما يعملهوش أبدًا؟
فكرتك
- المنتج، واضح
- الناس، واضح
- الداتا، واضح
- اللي ممنوع يعمله أبدًا، لسه مفتوح
لسه: أسئلة تانية
واضح كفاية للبناء
كل قرار، بيتاخد مرة واحدة، على الارتفاع الصح.
لما الفكرة توضح، Caddy يفتّتها: المنتج لأجزاء، والأجزاء لميزات، والميزات لمهام، وكل مهمة معاها المهام اللي بتعتمد عليها. وإيجنتس مخصّصين بيعملوا كل نوع من الفتّ ده، وكل واحد بيحسم القرارات اللي بتخص مستواه.
إزاي النظام كله يتركّب مع بعض بيتقرر من فوق. وإزاي شاشة واحدة تتصرف بيتقرر قرب تحت. ومفيش حاجة بتتسيب لجلسة بعدين تخمّنها.
والنتيجة شجرة. كل مهمة عارفة الأب بتاعها، وكل أب عارف ليه أولاده موجودين.
المنتج
بيتقرر هنا: إزاي الأجزاء تتركّب مع بعض
بيتقرر هنا: كل جزء بيملك إيه
بيتقرر هنا: إزاي ميزة تتصرف
بيتقرر هنا: ولا حاجة. بس اتبني
جلسة بتبدأ وهي عارفة كل حاجة.
دي الحتة اللي تهمني أكتر حاجة. أي حد بيبني بإيجنتس كود عارف المشكلة. الجلسة الجديدة ما تعرفش حاجة. تشرح المنتج تاني، وهي تخمّن في كل حاجة نسيت تقولها، وتخميناتها تتحول لباجز عندك. ومهندسين خبرة بيخسروا ساعات فيها كل أسبوع.
في Caddy، كل مهمة بتبقى باكدج جاهز لبداية باردة: تعمل إيه، وليه موجودة، وأنهي قرارات بتنطبق عليها بالفعل، وانهي ملفات ينفع تلمسها، وإزاي تثبت إنها خلصت. والجلسة اللي بتاخدها مش عندها حاجة تقررها ولا حاجة تخمّنها. بس بتبني.
الشخص اللي مشغّل Caddy بالعافية بيكتب. دوره حصل في الأول، لما قال عايز إيه.
تعمل إيه
مهمة واحدة، مكتوبة بحيث ما ينفعش تتقرا غلط.
ليه موجودة
الميزة والجزء اللي بتخدمه.
قرارات بتنطبق
كل حاجة اتحسمت فوقها بالفعل.
ملفات ينفع تلمسها
واللي لازم تسيبها في حالها.
إزاي تثبت إنها خلصت
الفحوصات هي اللي تقرر، مش الإيجنت.
جلسة عادية
- اشرح المنتج
- بيخمّن
- صلّح التخمين
- اشرح تاني
- بيخمّن
جلسة Caddy
- افتح الباكدج
- ابني
- أثبته
- خلص
فوق في الشجرة، فيه دايمًا حد مسؤول.
الجلسات ما بتشتغلش لوحدها. كل جلسة بتتبع جلسة أب عارفة الجزء اللي بتبنيه. ولما مهمة تخلص، الأب بيتفحصها على أساس الجزء ده محتاج إيه قبل ما أي حاجة تكمّل. وكل أب مسؤول قدام أبوه، لحد قمة الشجرة، اللي فيها المنتج كله.
خلص يعني اتثبت. مش خلص عشان إيجنت قال كده.
قمة الشجرة
الجلسة الأب
لناس عمرها ما كتبت سوفتوير.
أدوات كتير بتوعدك إنها تحوّل جملة لتطبيق. بيتخطّوا التفكير، ويسلّموك حاجة تتفكّك أول مرة تغيّر فيها.
Caddy لناس من غير خلفية هندسية، وبرضه يستاهلوا سوفتوير مبني بالطريقة اللي فريق حريص هيبنيه بيها: يتفهم الأول، ويتقرر مرة واحدة، ويتفحص لحد فوق. وكل دور في الفريق ده بيبقى إيجنت مبني للمهمة الواحدة دي.
فكرتك
الشكل من Orivon الأول
والبناء من Caddy بعد كده
الكود هو الجزء السهل، لما محدش يبقى مضطر يخمّن.
مكان واحد تشغّل فيه كل إيجنت برمجة بتستخدمه، وتشوف كلهم بيعملوا إيه.
اللي قبله: Orivon