Artikel ini merupakan perpanjangan dari artikel sebelumnya: Mengotomatiskan Jira Analytics dengan Apache NiFi . Sekarang saya ingin memperluas pandangan kami tentang pelaporan tentang Jira Software dan pengalaman penerapannya menggunakan R. Bahasa di sini, tentu saja, bukanlah dogma. Hari ini segalanya kami adalah konsep. Gambarnya dipinjam di sini .
Bayangkan pelacak tugas. Data apa yang bisa saya, sebagai analis, ekstrak darinya? Atau platform analitik siap pakai apa pun? Jumlah tugas untuk periode tersebut, statistik pencatatan, rincian dasar proyek, beberapa gambar tentang produktivitas karyawan ... dan hanya itu, begitu saja.
Tapi semua yang dilakukan akan menjadi lemak. Oleh karena itu, Anda mungkin dapat memilih sesuatu yang lebih global: apa yang dilakukan tim dan ke arah mana tim bergerak.
Ya, kami berhasil. Namun, ini bukannya tanpa bantuan PM dulu.
Reorganisasi pelacak tugas
Tentu saja, setiap Jira spesifik berbeda secara signifikan dari yang lain. Dan solusi kami mungkin bukan yang paling efektif untuk Anda, atau bahkan dapat diterapkan sama sekali.
Saya meminta Anda untuk menganggap ini hanya sebagai gagasan untuk mengatur pelacak tugas, dengan menggunakan contoh perusahaan outsourcing kami.
Kami hanya membuat dua gerakan.
Pertama dan paling sederhana. Diakui bahwa semua tugas dalam satu arah harus dikaitkan dengan epik , tentu saja . Epik adalah objek terbesar di Jira, yang mewakili berbagai masalah. Mereka membantu membangun hierarki dan struktur dan juga dapat menjangkau banyak sprint dan versi.
Sedikit lagi tentang yang kedua. Kami akan dapat melihat gambaran besarnya dan menjawab pertanyaan strategis jikaalur kerja akan disajikan sebagai semacam alur, yang disumbangkan oleh setiap karyawan . Untuk ini, dalam kasus kami, konsep IT4IT sangat ideal, dengan model operasinya berdasarkan pada rantai nilai empat aliran: Sebenarnya, apa yang telah kami lakukan. Memanfaatkan IT4IT, kami menambahkan hal seperti itu sebagai komponen tugas ke Jira. Kami memiliki yang berikut:
- Layanan untuk Portofolio (Permintaan dan Seleksi) - tahap "memilih", pencarian, pilihan layanan, teknologi.
- Permintaan untuk Menyebarkan (Rencana dan Desain) - diskusi, perencanaan pengembangan, pengembangan layanan, layanan.
- Request to Deploy (Develop) - pengembangan layanan, layanan sesuatu.
- Request to Deploy (Deploy) - penerapan sesuatu.
- Request to Deploy (Test) - menguji layanan, layanan.
- Permintaan untuk Memenuhi - tahap pengoperasian layanan yang dikembangkan, menyediakan layanan.
- Detect to Correct (Benar) - perbaiki, revisi layanan dan layanan internal.
- Detect to Correct (Monitor & Feedback) - hal yang sama, hanya + komunikasi dengan klien.
Pada tahap ini, mungkin hal yang paling sulit adalah meyakinkan karyawan bahwa item tambahan di pelacak ini tidak sia-sia dan harus diisi dengan benar.
Analisis data di R
Sekarang seharusnya tidak ada kendala dalam pelaksanaan pelaporan. Saya akan merumuskan kesamaan TK.
Karena di awal setiap minggu tim bertemu untuk mitigasi perencanaan, laporan harus mingguan. Penting bagi kami untuk melihat statistik penampilan dan kemajuan tugas, pencatatan karyawan dan kontribusi masing-masing dari mereka untuk gambaran keseluruhan. Jawab pertanyaannya: apa yang dilakukan tim - dalam hal epos dan komponen.
Mengetahui apa yang kami butuhkan, kami pergi untuk membongkar data. Melalui Jira API, kami meminta semua issue (issues) yang diupdate minggu lalu. Kami mengekstrak kunci dari mereka dan memuat riwayat logging (log kerja) dan riwayat perubahan (changelog) untuk setiap tugas. Penyimpangan dengan kelebihan muatan diperlukan untuk menghindari larangan kera.
Selanjutnya, area tanggung jawab R dimulai, karena preprocessing data yang diterima merupakan komponen dari skrip pembuatan laporan.
Tidak ada yang pintar di dalamnya, Anda hanya perlu mengurai JSON yang berasal dari api dan hanya menyisakan properti yang diperlukan (item di Jira). Satu-satunya saat, saat memproses changelog, kami hanya tertarik pada perubahan status tugas, sisanya dapat dihapus dengan aman.
Dan akhirnya, kami sampai ke analitik.
Cari tahu berapa banyak tugas yang telah dibuka, sedang berlangsung, ditutup dan ditunda selama seminggu terakhir. Lihatlah kode 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()
Apakah ini mengingatkan Anda pada pseudocode? Dan jika saya mengatakan bahwa operator ' %>% ' mentransfer data dari fungsi sebelumnya ke fungsi berikutnya. Dan modifikasi terakhir di seluruh rantai akan disimpan ke variabel. Bayangkan, kita baru saja naik ke ambang masuk ke R!
Apakah kamu sudah jatuh cinta padanya? Kemudian, jika Anda mau, saya akan menambahkan beberapa informasi lagi.
Kata-kata dari Wikipedia:
Secara umum, sebagai bahasa pemrograman, R cukup sederhana dan bahkan primitif. Kekuatan terbesarnya adalah ekspansi tak terbatasnya dengan paket.
Pengiriman R dasar mencakup sekumpulan paket inti, dan secara total, pada 2019, lebih dari 15.316 paket tersedia.
Dan hal terakhir untuk hari ini. Tahun ini R masuk ke sepuluh besar bahasa paling populer di dunia ( bukti ). Saya bangga padanya.
Mohon maafkan saya untuk retret ini. Saya dapat berbicara tentang R selama berjam-jam. Hanya saja dia benar-benar diselimuti mitos, dan saya suka menghancurkannya - hobi, Anda tahu.
Mari kembali ke laporan. Memiliki nomor yang diperlukan, kami memvisualisasikannya. Setelah itu, kami mendaftarkan pencatatan karyawan. Beginilah tampilan bagian ini bersama kami: Saya akan terus menunjukkan gambar akhir dari laporan nyata yang sama. Bidang usaha kami tercermin dalam grafik berikut. Ini juga memungkinkan Anda untuk menilai beban kerja karyawan dengan aktivitas operasional. Dan berikut adalah rincian semua tugas berdasarkan komponen. Dia memberikan jawaban atas pertanyaan tentang apa yang kita lakukan. Saya melengkapi gambar dengan gambar.
Nah, kontribusi yang dijanjikan dari setiap karyawan untuk gambaran besar yang diberikan di atas.
Saya yakin Anda akan segera mengetahui di mana pengembang kami, dan di mana adminnya. Kami berjuang untuk kejelasan ini. Laporan riil juga dilengkapi dengan ringkasan pergerakan tugas. Ini adalah tambahan dari statistik umum yang diposting di awal, dengan nama tugas dan nama orang yang bertanggung jawab.
Menghasilkan laporan
Anda dapat mengatur pembuatan laporan otomatis, misalnya, pada hari Senin dari skrip R, menggunakan paket cronR , ini sangat sederhana.
Bersama kami, semuanya menjadi lebih rumit dan elegan. Kami menggunakan Apache NiFi untuk mengunduh data dari Jira API setiap minggu, menjalankan skrip pembuatan laporan, dan mengirim laporan ke semua karyawan melalui Email . Topik ini sangat luas sehingga perlu artikel terpisah .
Kesimpulan
Jumlah implementasi Jira Software, serta jumlah perusahaan yang menggunakannya, sangat banyak. Pada saat yang sama, setiap bos membutuhkan basis metrik uniknya sendiri untuk manajemen yang benar secara taktis. Ya, ada eazyBI dan plugin lain untuk analitik Jira, tetapi hasilnya seperti membeli setelan di toko alih-alih memesan dipesan lebih dahulu.
Laporan yang dipertimbangkan dijahit sesuai dengan templat. Menurut atasan, ini memberikan pandangan strategis tentang apa yang dilakukan unit atau tim . Saya harap artikel ini akan membantu Anda menerapkan sesuatu yang serupa di rumah.
Terima kasih.