بلا شك هنالك فائدة كبيرة في فريق عمل متكامل، لكن لفريق العمل أعبائه المختلفة، و أعتقد أن من أشهر المقاولات في البرمجة هي: إضافة مبرمج لمشروع متأخر يجعل المشروع يتأخر أكثر.
و في الغالب أي عدد زائد لفريق العمل يمكن بالفعل أن يؤدي لزيادة عمليات التواصل بين أعضاء هذا الفريق بدل التركيز على المهم و الأهم و هو التركيز على العمل نفسه.
في حالة وجود فريق عمل من 18 شخص، لا أعتقد بأن فريق العمل ال18 كلهم دخلوا في المرحلة الأولى من برمجة و تصميم الموقع، أعتقد أن التصميم المبدئي أو الفكرة الأساسية عملت بواسطة 5 مبرمجين كحد أقصى، و من ثم تمت الإستفادة من فريق العمل في عدة جوانب منها إجراء عملية تجربة البرنامج و إيجاد الأخطاء ومن ثم بعد وصول البرنامج إلى متسوى متطور يمكن أن يتم تقسيم فرق العمل على عدد أقسام البرنامج القائمة بالفعل.
أنا مؤمن بأهمية إستخدام طريقة واضحة لعمل أي برنامج و لكن حسب تجربتي البسيطة في هذا المجال أجد أن أفضل طريقة للعمل على برنامج معين لعميل لا يعلم ماذا يريد بالضبط هو أن أقدم له نموذج prototype ومن ثم العمل يأتي على هذا النموذج, في الغالب يمكنك الإستعانة بتصميم بسيط أو ملف HTML يوضح الUI (واجهة المستخدم) حتى من دون حاجة لكون الملف يعمل بشكل فعلي وشرح الفكرة للعميل بأنه عندما يضغط هنا سيظهر هذا الأمر وعندما يكتب هنا سيحدث هذا الأمر. بهذه الطريقة يمكن الوصول إلى شيء أكثر واقعية بين العميل وبين المبرمج.
واجهت مشكلة مع أحد العملاء عندما أخبرني بفكرته و كيف أن يريد برنامج يؤدي مهمات غريبة و عجيبة و كنت على يقين بعدم حاجته إليها، إلا أنن استعنت بأحد الأخوة الذي يملك برنامجاً مشابهاً وعندما عرضته عليه قال بأنه لا يحتاج لهذا البرنامج الضخم!
العمل الذي يجب أن نسير على خطى واضحة في العمل عليه هو العمل الذي يكون بإتفاق واضح بين العميل والمبرمج أو الشركة التي تقدم البرمجة. و حينها لن تكون هنالك مشكلة في أي تغيير مطلوب في المستقبل، حيث أن العقد هو من سيحكم. أما برمجة بسيطة لعميل لا يعرف ماذا يريد بالضبط، أفضل أن أبدء بشيء مصغر و من ثم الإضافة عليه.
حالياً أعمل مع مبرمج آخر على برنامج لإرسال الرسائل النصية القصيرة، في الواقع الآن البرنامج يعمل ولكن لم ننتظر حتى نقوم بإنجاز 100% من الأمور المطلوبة، قمنا بالإنتهاء من الأساسيات و قمنا بتجربة البرنامج على أرض الواقع و مع إستخدام العملاء للبرنامج علمنا بأن هنالك أفكاراً كنا نفهمها بشكل خاطئ على الرغم من أنني مستخدم لهذا البرنامج نفسه. حالياً أستخدم مبادئ كتاب gettingreal من 37Signals. أن اجعل البرنامج يعمل بأقل مميزات ممكنة، ومن ثم إضافة ما يرغب العميل فيه فعلاً بدل تزويده بأمور قد لا يحتاجها العميل وتحتاج لوقت طويل لإنجازها.
أنا لا أشكك في كون 18 مبرمجاً عملوا على البرنامج، و لكن من ناحية منطقية أجد أن البرنامج لا يحتاج لكل هؤلاء لعمله.
حتى لا أتهم بأني هاوي فلدي شهادة في نظم المعلومات الحاسوبية من إحدى الجامعات العربية و شهادة ماجستير في التجارة الإلكترونية من إحدى الجامعات البريطانية العريقة.
__________________
إن كان الكلام من فضة ، فالسكوت من ذهب