هذه المقالة هي امتداد للمقال السابق: أتمتة Jira Analytics باستخدام Apache NiFi . الآن أود أن أتوسع في وجهة نظرنا في إعداد التقارير عن Jira Software وتجربة تنفيذها باستخدام R. اللغة هنا ، بالطبع ، ليست عقيدة. اليوم كل شيء لدينا هو مفهوم. الصورة مستعارة هنا .
لنتخيل أداة تعقب المهام. ما هي البيانات التي يمكنني ، كمحلل ، استخلاصها منها؟ أو أي منصة تحليلات جاهزة؟ عدد المهام للفترة ، وإحصائيات التسجيل ، والتقسيم الأساسي للمشاريع ، وبعض الصور حول إنتاجية الموظفين ... وهذا كل شيء ، مرتجل.
لكن كل ما يتم فعله يصبح سمينًا. لذلك ، يمكنك على الأرجح تحديد شيء أكثر عالمية: ما يفعله الفريق وفي أي اتجاه يتحرك.
نعم نحن فعلناها. ومع ذلك ، لم يكن ذلك بدون مساعدة رئيس الوزراء أولاً.
إعادة تنظيم مهمة تعقب
بالطبع ، تختلف كل جيرا بشكل كبير عن أي جيرا أخرى. وقد لا يكون حلنا هو الأكثر فعالية بالنسبة لك ، أو حتى أنه قابل للتطبيق على الإطلاق.
أطلب منكم اعتبار ذلك مجرد فكرة لتنظيم متعقب المهام ، باستخدام مثال شركة التعهيد لدينا.
لقد قمنا بحركتين فقط.
أول وأبسط. تم قبول أن جميع المهام في اتجاه واحد يجب أن تكون مرتبطة بالملحمة بالطبع . الملاحم هي أكبر الأشياء في جيرا ، وتمثل قضايا متعددة. فهي تساعد في بناء التسلسل الهرمي والهيكل ويمكنها أيضًا أن تمتد على عدة سباقات وإصدارات.
أكثر قليلا عن الثانية. سنكون قادرين على رؤية الصورة الكبيرة والإجابة على الأسئلة الاستراتيجية إذاسيتم تقديم سير العمل كنوع من التدفق ، يساهم فيه كل موظف . لهذا ، في حالتنا ، يعتبر مفهوم IT4IT مثاليًا ، حيث يعتمد نموذج التشغيل الخاص به على سلسلة قيمة ذات أربعة تيار: في الواقع ، ما الذي فعلناه. من خلال الاستفادة من IT4IT ، أضفنا شيئًا مثل مكون المهام إلى Jira. لدينا منهم على النحو التالي:
- خدمة المحفظة (الطلب والاختيار) - مرحلة "الانتقاء" ، البحث ، اختيار الخدمة ، التكنولوجيا.
- طلب النشر (التخطيط والتصميم) - المناقشة ، التخطيط للتطوير ، تطوير الخدمات ، الخدمات.
- طلب النشر (تطوير) - تطوير خدمة ، خدمة لشيء ما.
- طلب النشر (النشر) - نشر شيء ما.
- طلب النشر (اختبار) - اختبار خدمة ، خدمة.
- طلب الوفاء - مرحلة تشغيل الخدمات المتقدمة وتقديم الخدمات.
- كشف لتصحيح (تصحيح) - إصلاح ومراجعة الخدمات والخدمات الداخلية.
- كشف لتصحيح (المراقبة والتعليقات) - نفس الشيء ، فقط + التواصل مع العميل.
في هذه المرحلة ، ربما يكون أصعب شيء هو إقناع الموظفين بأن عنصرًا إضافيًا في المتعقب ليس من أجل لا شيء وأنه يجب ملؤه بشكل صحيح.
تحليلات البيانات في R
الآن يجب ألا تكون هناك عقبات أمام تنفيذ التقارير. سأقوم بصياغة تشابه المعارف التقليدية.
نظرًا لأن الفريق يجتمع في بداية كل أسبوع من أجل التخفيف من أجل التخطيط ، يجب أن يكون التقرير أسبوعيًا. من المهم بالنسبة لنا أن نرى إحصائيات حول مظهر وتقدم المهام ، وتسجيل الموظفين ومساهمة كل منهم في الصورة العامة. أجب عن السؤال: ما الذي يفعله الفريق - من حيث الملاحم والمكونات.
بمعرفة ما نحتاج للحصول عليه ، نذهب لتفريغ البيانات. من خلال Jira API ، نطلب جميع المشكلات (المشكلات) التي تم تحديثها الأسبوع الماضي. نقوم باستخراج المفاتيح منها وتحميل سجل التسجيل (سجل العمل) وتاريخ التغييرات (سجل التغيير) لكل مهمة. الانحرافات مع التحميل الزائد ضرورية للالتفاف على قيود الرهبنة.
بعد ذلك ، تبدأ منطقة المسؤولية R ، لأن المعالجة المسبقة للبيانات المستلمة هي أحد مكونات البرنامج النصي لإنشاء التقرير.
لا يوجد شيء ذكي فيه ، ما عليك سوى تحليل JSONs التي جاءت من api وترك الخصائص الضرورية فقط (العناصر الموجودة في Jira). في اللحظة الوحيدة ، عند معالجة سجل التغيير ، نحن مهتمون فقط بتغييرات حالة المهمة ، ويمكن حذف الباقي بأمان.
وأخيرًا ، وصلنا إلى التحليلات.
اكتشف عدد المهام التي تم فتحها وتلك قيد التقدم وإغلاقها وتأجيلها خلال الأسبوع الماضي. ألق نظرة على رمز R:
#
this_week_opened <- jira_changelog_data %>%
filter(issue_type != "Epic") %>%
filter(as.Date(issue_created) >= start_date) %>%
filter(as.Date(issue_created) <= end_date) %>%
select(key, issue_created) %>% unique() %>% nrow()
#
this_week_processed <- jira_worklog_data %>%
filter(as.Date(started) >= start_date) %>%
filter(as.Date(started) <= end_date) %>%
select(key) %>% unique() %>% nrow()
#
this_week_closed <- jira_changelog_data %>%
filter(issue_type != "Epic") %>%
filter(as.Date(issue_resolutiondate) >= start_date) %>%
filter(as.Date(issue_resolutiondate) <= end_date) %>%
select(key, issue_created) %>% unique() %>% nrow()
# /
this_week_holded <- issue_history %>%
filter(change_date >= start_date) %>%
filter(change_date <= end_date) %>%
filter(toString == "Hold" | toString == "Backlog") %>%
select(key) %>% unique() %>% nrow()
هل يذكرك هذا بالرمز الكاذب؟ وإذا قلت أن عامل التشغيل " ٪>٪ " ينقل البيانات من الوظيفة السابقة إلى الوظيفة التالية. وسيتم حفظ التعديل الأخير في السلسلة بأكملها في متغير. تخيل ، لقد صعدنا للتو إلى عتبة الدخول إلى R!
هل وقعت في حبه بعد؟ ثم ، إذا أردت ، سأضيف المزيد من المعلومات.
كلمات من ويكيبيديا:
بشكل عام ، كلغة برمجة ، فإن R بسيطة جدًا وحتى بدائية. أعظم قوتها هو توسعها غير المحدود مع الحزم.
يتضمن تسليم R الأساسي مجموعة أساسية من الحزم ، وفي المجموع ، اعتبارًا من عام 2019 ، يتوفر أكثر من 15،316 حزمة.
وآخر شيء لهذا اليوم. هذا العام ، اقتحمت R أكثر عشر لغات شعبية في العالم ( دليل ). انا فخور به.
أرجوك سامحني على هذا التراجع. يمكنني التحدث عن R لساعات. إنه مجرد أنه يكتنفه الأساطير تمامًا ، وأنا أحب تدميرها - هواية ، كما تعلم.
دعنا نعود إلى التقرير. وجود الأرقام المطلوبة ، نتخيلها. بعد ذلك ، نقوم بتسجيل الموظفين. هكذا يبدو هذا الجزء معنا: سأستمر في عرض الصور النهائية من نفس التقرير الحقيقي لكم. ينعكس خط عملنا في الرسم البياني التالي. كما يسمح لك بتقييم عبء العمل على الموظفين ذوي الأنشطة التشغيلية. وهنا تفصيل لجميع المهام حسب المكون. يعطي الجواب لسؤال ماذا نفعل. أكمل الصورة بالأرقام.
حسنًا ، المساهمة الموعودة لكل موظف في الصورة الكبيرة المذكورة أعلاه.
أنا متأكد من أنك ستلاحظ على الفور مكان مطورنا ، وأين هو المسؤول. كنا نسعى جاهدين من أجل هذا الوضوح. كما يُستكمل التقرير الحقيقي بملخص لحركة المهام. هذا إضافة إلى الإحصائيات العامة المنشورة في البداية ، مع أسماء المهام وأسماء المسؤولين.
إنشاء تقرير
لإعداد إنشاء تقرير تلقائي ، على سبيل المثال ، في أيام الاثنين من برنامج نصي R ، يمكنك استخدام حزمة cronR ، إنها بسيطة للغاية.
معنا ، كل شيء أكثر تعقيدًا وأناقة. استخدمنا Apache NiFi لتنزيل البيانات من Jira API على أساس أسبوعي ، وتشغيل البرنامج النصي لإنشاء التقرير وإرسال تقرير إلى جميع الموظفين عبر البريد الإلكتروني . هذا الموضوع واسع جدًا لدرجة أنه يستحق مقالة منفصلة .
خاتمة
عدد تطبيقات Jira Software ، بالإضافة إلى عدد الشركات التي يتم استخدامها فيها ، كثير. في الوقت نفسه ، يحتاج كل رئيس إلى قاعدة مقاييس فريدة خاصة به للإدارة الصحيحة من الناحية التكتيكية. نعم ، هناك eazyBI ومكونات إضافية أخرى لتحليلات Jira ، ولكن النتيجة هي شراء بدلة في المتجر بدلاً من Bespoke المخصصة.
يتم حياكة التقرير المدروس وفقًا للقوالب. وفقًا للمدير ، فإنه يوفر رؤية إستراتيجية لما تقوم به الوحدة أو الفريق . آمل أن تساعدك هذه المقالة في تنفيذ شيء مماثل في المنزل.
شكر.