يبدو أنه في فرق التطوير الصغيرة (أكثر من 20 شخصًا) لا ينبغي أن تكون هناك مشاكل تتعلق بالانقسام ، والعمل على مدونة موحدة واتخاذ القرارات الفنية. لكننا نعلم جميعا أن هذا ليس كذلك (ناهيك عن فرق مثل فريقنا ، حيث يوجد أكثر من 80 شخصًا). قبل ثلاث سنوات ، لحلها ، بدأنا في عقد مؤتمر مطور DevForum داخلي أسبوعي. سوف تتعرف تحت القطة على كيفية مساعدتنا ، ولماذا لا تعمل التنسيقات الأخرى (مثل الاجتماعات الأسبوعية أو مراجعة Sprint) والتعليمات الخاصة بإنشائها دائمًا.

لمدة ثلاث سنوات تراكمت لدينا الكثير من المحتوى الجيد. لذلك ، ستكون هناك سلسلة من المقالات المكتوبة على أساس الخطب في DevForum :
1. القط شرودنجر دون مربع: مشكلة التوافق في النظم الموزعة.
2. البنية التحتية كرمز: التعارف الأول.
3. البنية التحتية كرمز: كيفية التغلب على مشاكل XP.
4. كيف تتوافق الخوادم مع بعضها: وزعت خوارزمية توافق الآراء.
5. الحصان ميت - صرخة: الانتقال من tslint إلى eslint.
6. جيل من عقود Typescript لنماذج ج #. (قيد التقدم ...)
...
ما هي DevForum وما هي المشاكل التي يحلها؟
DevForum هو
حدثنا الأسبوعي الداخلي لمطوري Dodo IS. لقد تم تشغيل يوم الخميس لمدة ثلاث سنوات. يجتمع المطورون معًا ويكرسون ساعة للتواصل مع بعضهم البعض.

في هذا الاجتماع ، نناقش القضايا الفنية المتعلقة بالفريق بأكمله. ساعة من الوقت ، تقريرين عن نصف ساعة ، وقت للأسئلة والأجوبة.
ما هي المشاكل التي يحلها المؤتمر الداخلي؟
من أجل التقدم نحو تحقيق هدف مشترك ، من المهم بالنسبة لنا الحفاظ على التركيز على القضايا الهامة للشركة. من أجل التزامن العام لجميع Dodo ، لدينا اجتماعات أسبوعية يوم الاثنين. جميع الموظفين والشركاء / أصحاب الامتياز موجودون فيها ، ويمكن الاطلاع
على تسجيلات الاجتماعات
في المجال العام . لمزامنة العمل والشركاء ، نقوم بترتيب
مراجعة Sprint نصف أسبوعية. للتركيز الفردي والمزامنة المنتظمة لفريق تكنولوجيا المعلومات ، ستحتاج إلى مزيد من الانغماس في "اللحوم" التقنية. هذا هو ما نقوم به على DevForum.
فيما يلي قائمة بالمشكلات وحلولها:
- تقاسم المعرفة . الآن لدينا 80+ مطورين في فريقنا. كل واحد منهم لديه خلفية خاصة به ، وتفاصيل العمل الخاصة به ، ومستوى الانغماس الخاص به. فرقنا مقسمة حسب المنتج. وقد يحدث أن فريقين مستقلين بحاجة إلى الذهاب من خلال نفس البرية. عندما تتاح لهم الفرصة لمشاركة أفضل ممارساتهم أو أفكارهم أو نجاحاتهم أو العكس مع بعضهم البعض ، يصبح الأمر أفضل. هناك فرصة صغيرة لعدم الوقوع على أشعل النار شخص ما.
بالإضافة إلى ذلك ، يتوسع فريقنا باستمرار ، ويأتي أشخاص جدد ويحصلون على أداة جاهزة للترقية ومشاركة المعرفة بشكل منتظم. - التدريب . هنا يمكنك معرفة ما إذا كان لا يمكنك القيام بذلك بنفسك وتعليم ما إذا كان يمكنك ذلك. التدريب هو نقطة متداخلة بشكل وثيق مع تبادل المعرفة. سواء أحببنا ذلك أم لا ، يجب علينا تحسين مستواك الفني باستمرار.
- المزامنة الفنية للأوامر (يجب عدم الخلط بينها وبين المزامنة اليومية للأوامر) . من السهل مواكبة كل شيء عندما تكون ثلاثة أشخاص فقط. الآن نحن أكثر من ذلك بكثير. في بعض الأحيان نواجه مثل هذه المشكلة: عملت الفرق بشكل متوازٍ على منتج واحد ، لكننا لم نعرف ما الذي يفعله كل واحد. نتيجة لذلك ، نشأت تعارضات أو أعدت كتابة رمز شخص آخر ، إلخ. عندما يفعل البعض ، في حين يلقي الآخرون ، قد تنزلق عملية التطوير. في DevForum ، نركز أيضًا على التزامن التقني للفرق ونواجه صعوبات.
- أداة للتغيير . يمكنك المجيء إلى هنا وتغيير مسار التاريخ. هنا تحتاج أن أقول من خلال المثال.
مثال دعنا نقول لدينا أوليغ. يجلس في البنية التحتية ويقوم بمشروع الحكم الذاتي مع اللاعبين. عندما يبدأ المشروع بكامل طاقته ، ستصبح حياة المطورين البسيطة أسهل. سوف تتوقف عن سحب البنية التحتية وسوف تفعل كل شيء بأنفسهم. أنت تفعل كل شيء بنفسك ، ولا تعتمد على أي شخص بخير.
أوليغ مستعدة لإجراء تغييرات في الشركة. لكنه يعلم أن مجرد الكتابة عن التغييرات التي تم إجراؤها على سلاك ليست كافية. من الضروري أن تخبر في العلن ، وتشرح ، تجيب على الأسئلة ، وتكتب مقالة ، وتنفذ سلسلة من الإجراءات ، وإلا لن يتغير شيء. يأتي Oleg إلى DevForum ويستخدمه كأداة للتغيير.
- التدريب قبل الأداء . هنا يمكنك التدرب قبل الأداء الكبير. مرة أخرى ، خذ أوليغ كمثال.
مثال أوليغ يريد التحدث في مؤتمرات كبيرة. إنه يحتاج إلى الشرف والشهرة وآلاف وجهات النظر على يوتيوب.
إنه يأتي إلينا ويتحدث بصدق عن أهدافه الطموحة. نحن ، بدوره ، نوفر له منصة لتدريب مؤلم (عمليا). إذا لزم الأمر ، نساعد ، موجه ، دليل.
الحد الأدنى لدخول DevForum (على عكس mitap أو المؤتمر) هو الحد الأدنى. يحتاج Oleg إلى إعداد موضوع وإعداد شرائح لمدة نصف ساعة وتأتي في الوقت المناسب. هذا هو مكان عظيم لبروفة محاكمة. التدريب على القطط ، أي علينا سنقدم ملاحظات ، ونذهب من خلال الشرائح ، ويمكنك التحقق من النكات علينا.
بعد DevForuma ، يمكن بالفعل طرح التقرير على mitap المحلية. وعلى الأرجح سوف يأخذونه.
قليلا الرجعية: كيف جاء DevForum
من أين جاء هذا التنسيق؟ Korotenechko. قبل ثلاث سنوات ، قامت شركتنا بأول محاولة لتقديم مراجعة Sprint بشكل منتظم.
بدا الأمر هكذا: الجميع اجتمعوا في غرفة واحدة ، كل شيء تمامًا وتناوبوا لإخبار بعضهم البعض الذين فعلوا ما حدث خلال الأسابيع الماضية. في ذلك الوقت ، كان هناك 20 منا فقط ، ولكن فقط تخيل ما تشعر به للاستماع إلى رمز ممثل الأعمال والمطور للنظر في مباني البيتزا. لقد أدركنا بسرعة كبيرة أن الناس يستمعون فقط إلى الموضوعات التي تهمهم ، وفي المواضيع الأخرى عالقون في الهاتف بشكل مؤلم.
نحن نواجه حقيقة أن مظاهرة فنية عميقة لأولئك الناس الذين هم بعيدون عن هذا هو مثل هذا. لقد جاءوا ليروا كيف يبدأ مكتب النقد ، ونخبرهم عن تجربة استخدام Polly Framework لتنفيذ عمليات إعادة التوجيه بين الخدمات. لقد أدركنا سريعًا أن هذا التنسيق لم يكن مفيدًا للناس ، ورفضت Sprint Review ذلك النموذج. في مرحلة ما ، تم إلغاء ذلك ببساطة ، وظل الاجتماع على التقويم.
لقد فكرت مجموعة من الأشخاص: من الرائع جدًا عرض الأشياء التقنية لأولئك الموجودين في هذا الموضوع. هناك اجتماع ، الناس ، هناك رغبة ، هناك مواضيع. لذلك بدأنا نجتمع مرة واحدة في الأسبوع ونواصل القيام بذلك حتى يومنا هذا.
لمدة ثلاث سنوات ، مر التنسيق ببعض التغييرات.- بدأنا في تسجيل عروضنا. التنسيق نفسه مستمر منذ ثلاث سنوات ، ولدينا سجلات منذ عامين. يتم تخزين كل منهم في مكان واحد ، إذا كنت ترغب في ذلك ، يمكنك مراجعة.
- لقد تركنا شكل العرض التوضيحي لأننا توصلنا إلى استنتاج مفاده أن الإعداد والعرض التوضيحي نفسه يستغرق وقتًا أكثر من تنسيق العرض التقديمي.
- انتقلنا إلى تنسيق العرض التقديمي ، الذي يسهل الإعداد له ، مع إعطائه حرفيًا 40 دقيقة من الوقت (على الرغم من أنه هنا ، بالطبع ، يعتمد على تعقيد الموضوع والمتحدث).
- في البداية ، تحدث كل مطور في DevForum. في وقت ما ، افترضنا أنه ليس كل فرد يتحدث ، بل ممثل من الفريق.
- ثم ذهبنا أبعد من ذلك وتوقفنا عن الإقتراح باقتراح التحدث إلى تلك الفرق التي لديها الآن "لا يحدث شيء".
- في البداية ، وضعنا أربعة موضوعات في الساعة ، ولكن توصلنا إلى استنتاج مفاده أنه بغض النظر عن مدى اهتمام التقارير ، فقد بقيت العصيدة في رأسي بنهاية الساعة. لذا ، نأخذ الآن موضوعًا أو موضوعين في DevForum ، و 25 دقيقة من التقرير و 5 دقائق للأسئلة.
- في الآونة الأخيرة ، قررنا توسيع نطاق الموضوعات قليلاً وأحيانًا دعوة مكبرات صوت خارجية.
نحن نعلم أن DevForum لدينا ليس تنسيقًا فريدًا من نوعه ، فقد حاول العديد من زملائنا القيام بشيء مماثل. لكن ، لسوء الحظ ، غالبًا ما لا تترسخ مثل هذه الاجتماعات المنتظمة ، وسرعان ما أصبحت قديمة وتذبل. يعيش DevForum لدينا لمدة ثلاث سنوات - وهذا وقت طويل من أجل تحليل وجمع الخبرات ومشاركتها معك تجربة إنشاء هذا التنسيق والحفاظ عليه.
كيفية تنظيم DevForum في شركتك
ستحتاج 6 أشياء أساسية:
1. فهم مهام وأشكال DevForum.
مزيد من التفاصيللفهم ما إذا كان من الضروري تشغيل DevForum في المنزل ، يمكنك الرجوع إلى المهام التي يحلها هذا التنسيق في Dodo الخاص بنا.
هذه هي مهام التواصل والتدريب وتحقيق الذات للمبرمجين. DevForum هي آلية مرنة ويمكنها في وقت واحد أو آخر العمل أكثر لتحقيق أهداف مختلفة.
يوجد تنسيقان خطابان تم التحقق منهما قمنا بتطويرهما على مدار ثلاث سنوات. يمكنك اعتماد:
تقرير : يعد أحد المطورين ويتحدث ، بينما يطرح آخرون أسئلة.
مثال بمجرد أن كان هناك موضوع يسمى "التسجيل الهيكلي" ، والذي تحدث عن serilog ، واستخدامه في مشاريعنا ، وكيف يساعد على العمل بشكل أفضل مع سجلات في Kibana. كما تطرق إلى موضوع التسجيل الهيكلي عبر NLog واستخدام واجهات ILogging الشائعة لمشاريع .NET CORE.
بعد العرض التقديمي ، كانت هناك جلسة أسئلة ، وفهم جميع المشاركين مدى سهولة إضافة هذه ليب إلى مشروع جديد. استغرقنا 30 دقيقة. لمدة نصف ساعة أخرى ، ناقشنا مستويات تسجيل الدخول في ذلك اليوم مثل Debug و Info و Warn و Error وغيرها ، وعلى وجه التحديد ، ما هي المستويات التي تصف المواقف في النظام. في جلسة الأسئلة ، أثيرت مشكلة أخطاء الضوضاء في السجلات ، خاصة تلك المتعلقة بإعادة التدوير. منذ DevForum ، تستخدم جميع مشاريع الخدمات المصغرة الجديدة Serilog تمامًا ، وقد ظهرت أيضًا في قالب خدماتنا.
صنع القرار : هناك مشكلة تؤثر بطريقة ما على الجميع. يأتي الناس مع الحلول الممكنة للتركيز على شيء واحد.
مثال لقد جمعنا DevForum لمناقشة تعريف عمله وأردنا تثبيت جودة الكود المقدم للإنتاج. ولكن كيف نفعل ذلك عندما يكون لديك العديد من الأوامر التي تعمل على كود مشترك في آن واحد؟ كان الحل هو جعل جميع قصص تعريف المستخدم تتم بشكل مشترك. كانت وزارة الدفاع المقترحة نقطة مثيرة للجدل. التقينا وناقشنا ما إذا كنا بحاجة إليه أم لا. تم اتخاذ قرار عام. لتنفيذه ، أضفنا عنصرًا إلى قائمة التحقق في تعقب المهام (Kaiten) وجعلناه عنصرًا إلزاميًا عند إغلاق المهام. ثم عززت بعض الفرق وزارة الدفاع من خلال إضافة نقاط خاصة بهم مهمة لهم.

2. المنظمين قوية ومشحونة.
مزيد من التفاصيلما يجب أخذه في الاعتبار هو وجود أشخاص يشاركون باستمرار في الحدث - المنظمون. من المهم أن يكونوا من المطورين أو الأشخاص الذين يفهمون الجزء الفني. سيتعين عليهم مساعدة المشاركين في صياغة الموضوعات والبحث عن متحدثين جدد وحتى في بعض الأحيان الحفاظ على المناقشة من خلال طرح أسئلة جيدة.
في حالتنا ، لدينا 3 منظمين من المطورين ، بالإضافة إلى فريق العلامة التجارية المساعدة بنشاط تكنولوجيا المعلومات.
3. موافقة من إدارة قسم تكنولوجيا المعلومات لديك.
مزيد من التفاصيلبالإضافة إلى الأهداف والمنظمين ، يتمثل أحد العناصر المهمة لنجاح الحدث في عدم وجود معارضة من الأعلى. هذه العملية هي مبادرة شعبية بحتة ، يمكننا أن نقول أن المتحمسين يفعلون ذلك. المساعدة من الإدارة يمكن أن تكون مفيدة ، والمعارضة ستكون كارثية. ومع ذلك ، يجتمع الناس خلال ساعات العمل ، ويستخدمون المباني والمعدات المكتبية. هذا ، على الأقل ، لا ينبغي حظره.
4. توفر المساحة والمعدات للاجتماعات.
مزيد من التفاصيليمكن أن تكون المساحة إما غرفة اجتماعات في المكتب ، أو مكانًا افتراضيًا للاجتماعات ، أو مكالمة عامة في Skype أو Google meeting.
نجتمع دائمًا في غرفة اجتماعات واحدة محجوزة "إلى الأبد في هذا الوقت" في المكتب ، ولكن في نفس الوقت نبث كل شيء بشكل عام في Google ، وهو نفس الشيء ولا يتغير بين الاجتماعات.
مفاوضاتنا كبيرة ، تستوعب من 20 إلى 30 شخصًا. يوجد جهاز عرض ونظام إخراج صوت للاتصال عن بُعد. يعلم الجميع أن يوم الخميس من الساعة 4:00 مساءً وحتى 5:00 مساءً. يتم عقد DevForum في قاعة الاجتماعات هذه.

نظرًا لحقيقة أن لدينا تطويرًا موزعًا جزئيًا ، فإننا على يقين من جلب العمال عن بُعد إلى مكالمة مشتركة. كما يسمح للمتحدثين بعرض شاشتهم من أجهزة الكمبيوتر الخاصة بهم ، والاتصال باجتماع عام. يمكن أن يكون المتحدثون في غرفة الاجتماعات العامة أو في أي مكان آخر مناسب لهم. سوف نسمعهم جميعًا ، ونرى أيضًا شاشتهم.
المساحة الدائمة المعينة تجعل هذا الاجتماع أكثر موثوقية ويمكن التنبؤ به للمشاركين.
5. حضور جمهور من المستمعين.
مزيد من التفاصيللجمع المشاركين ، لدينا قناة دائمة في الركود #devforum ، حيث يجلس جميع المطورين بالتأكيد. لقد قمنا حتى بإدراج هذه القناة في قائمة القنوات المطلوبة في قائمة المراجعة الخاصة بالمطور الجديد. بالإضافة إلى ذلك ، يضمن المعلمون المبتدئون وقوعهم في قناة #devforum.
هناك إعلانات عن الاجتماعات ، ومناقشة بعد ، واختيار الموضوعات ومناقشة المواضيع.
لكي يشارك الأشخاص في حياة المنتدى ، ننظم استطلاعات الرأي ، ونطلب من المتحدثين تقديم ملاحظات ، وكذلك نشر تسجيل للاجتماع في اليوم التالي في الصباح.
من المهم أيضًا أن يكون الحدث اختياريًا. نعم ، يتم عقده خلال ساعات العمل ، ولكن إذا أراد شخص ما العمل أو لديه أشياء أكثر أهمية في هذا الوقت ، فقد يفوتك ذلك.
مثال منشور ما بعد الحدث:

مثال على المناقشة بعد الاجتماع:

6. حضور المتحدثين ومواضيع المناقشة.
مزيد من التفاصيلهذا هو الجزء الأكثر أهمية والأكثر صعوبة في المنظمة. نحن هنا نواجه مشاكل ، كلاً من البحث عن مكبرات الصوت وتوافر الموضوعات.
فيما يلي قائمة قصيرة بالأنشطة التي يقوم بها المنظمون لإشراك الناس:
- نحن نبحث عن الموضوعات مقدما ، ووضع خطة الأداء لأكثر من أسبوع. في البداية ، بحثنا عن مواضيع في بداية الأسبوع ، وكان علينا التحدث يوم الخميس.
- نذهب إلى قنوات الأوامر ونطلب صراحة: هل هناك أي مواضيع ل DevForum؟
- نجري محادثات شخصية مع المبرمجين ، ونشجعهم على الأداء. نحن نثبت قيمة مشاركة المتحدث: فهم أعمق للموضوع ، تجربة التحدث ، المنفعة العامة ، مادة لمقال مقبل ، مؤتمر.
- نحن نلقي نظرة على مواضيع القناة للمناقشة والتي سيكون الناس مهتمين بالاستماع إليها. يمكن للمطورين المطلعين الاستجابة والعمل كمتحدثين.
- نرد على الأحداث المهمة اجتماعيًا ، وننظم بشكل مستقل مناقشات حول موضوعات التنمية الإشكالية.
- نشاهد المؤتمرات السابقة مع المشاركين. بعد حضور المؤتمرات ، هناك دائمًا ما يمكن إخباره.
- بعد نتائج المؤتمرات المهمة بالنسبة لنا ، والتي حضرها العديد من الأشخاص منا ، نقوم بتنظيم مناقشة في شكل "أفضل 3 تقارير من أحدث إصدار عالي الحمل ++".
- نحن ندعو مكبرات صوت خارجية.
شيء آخر مهم
قد يبدو أن كل شيء بسيط (أو بالعكس لا يوجد شيء واضح) ، لذلك سأدرج بعض الميزات الإضافية للمنظمة التي يجب أخذها في الاعتبار وأخذها في الاعتبار.
يحتاج المنظمون إلى العمل مع مكبرات الصوت. نحن نحل الخوف من التحدث من خلال المساعدة في التحضير للخطاب. يتم إيقاف الكسل أو عدم التنظيم بناءً على طلب لصياغة الموضوع مقدمًا ، حتى في شكل مسودة ، وفي الموعد المحدد للكلمة.
في بعض الأحيان لا يوجد شيء. هناك أوقات تم فيها العثور على الكثير ، وأحيانًا يكون هناك القليل. في هذه الحالة ، لا يمكنك إلغاء الحدث بشكل قاطع. يجب أن نحاول العثور على مواضيع أو التحدث عن أنفسنا. المنظمون هم أيضًا مطورون ، لذلك لدينا دائمًا ما نخبره. يمكنك اللجوء إلى الحيل ، وترتيب المزيد من المناقشات المجانية.
جودة الفيديو والصوت. إنها لحظة فنية بحتة ، ولكن من المهم بالنسبة للأشخاص أن يكون الصوت جيدًا (تحقق من الاتصال والإنترنت مقدمًا) ، ويمكن قراءة العرض التوضيحي للرمز الموجود على الشاشة. حتى الموضوع الأكثر إثارة للاهتمام ، والمزود بعيوب فنية ، يمكن أن ينفر المشاهدين.
نتراكم المواد. يجب تسجيل الاجتماعات. لدينا أرشيف لمقاطع الفيديو مع عروض تقديمية ومواد إضافية مرفقة بها. هناك قوائم تشغيل على YouTube. نضع جميع السجلات في نظامنا للتوثيق ، حيث يوجد بحث كامل النص ويمكنك العثور على موضوع الاهتمام بعد والتعرف عليه.
مكرسة لفرق التطوير التي لا يوجد فيها مدراء تعملون فيها على كود واحد ، يهتم المطورين بمعرفة ما يجري ، ولأولئك الذين يرغبون في تطوير ومساعدة الآخرين على النمو ، فهذه الفرق التي تثق بها من أجلهم مهمة.
من دودو بيتزا الهندسة مع الإنسانية