Yazılım Geliştirme Yaşam Döngüsü Veri Şablonunuz
Yazılım Geliştirme Yaşam Döngüsü Veri Şablonunuz
- Toplanması önerilen öznitelikler
- İzlenecek temel etkinlikler
- ServiceNow DevOps için veri çıkarma rehberi
Yazılım geliştirme yaşam döngüsü öznitelikleri
| Ad | Açıklama | ||
|---|---|---|---|
| Aktivite adı ActivityName | Development Started veya Code Review Performed gibi, gerçekleşen belirli geliştirme yaşam döngüsü olayının adı. | ||
| Açıklama Bu öznitelik, yazılım geliştirme yaşam döngüsü içinde tamamlanan her kilometre taşının veya taskın adını kaydeder. Bu faaliyetler, oluşturma aşamasından dağıtıma kadar sürecin ardışık adımlarını oluşturur. Bu faaliyetlerin sırasını ve sıklığını analiz etmek, Process Mining'in temel işlevlerinden biridir. Süreç haritası oluşturmanızı, adımlar arasındaki darboğazları belirlemenizi ve uyumsuz ya da verimsiz süreç varyantlarını ortaya çıkarmanızı sağlar. Tanımlanan faaliyetler arasında tasarım, geliştirme, test ve dağıtım gibi temel aşamalar yer alır. Neden önemli? Süreç haritasındaki adımları tanımlar; böylece süreç akışını analiz etmenizi, darboğazları belirlemenizi ve standart SDLC'den sapmaları keşfetmenizi sağlar. Nereden alınır? Bu değer genellikle durum değişiklikleri, olay kayıtları veya denetim izi girdileri standart bir faaliyet adı listesiyle eşleştirilerek türetilir. Örneğin state alanının In Progress olarak değişmesi Development Started faaliyetiyle eşleştirilebilir. Örnekler Geliştirme başladıKod gönderildiQA testi tamamlandıÜretime dağıtıldı | |||
| Başlangıç zamanı EventTime | Belirli bir faaliyetin veya olayın gerçekleştiği anı gösteren kesin zaman damgası. | ||
| Açıklama Bu öznitelik, geliştirme yaşam döngüsündeki her etkinliğin kaydedildiği tarih ve saati belirtir. Olayları kronolojik sıraya koymak ve zamana dayalı tüm analizleri gerçekleştirmek için gereklidir. Process Mining kapsamında başlangıç zamanı, etkinlikler arasındaki süreleri hesaplamak, bekleme sürelerini belirlemek ve sürecin genel çevrim süresini ölçmek için kullanılır. SDLC uçtan uca çevrim süresi analizi gibi performansı inceleyen Dashboardlar ve Kod inceleme teslim süresi gibi temel performans göstergelerinin hesaplanması için önemli bir bileşendir. Neden önemli? Bu zaman damgası, olayları doğru sıraya koymak ve çevrim süreleri, süreler ile bekleme süreleri dahil tüm performans metriklerini hesaplamak için gereklidir. Nereden alınır? Genellikle denetim izi veya task tablolarındaki sys_updated_on ya da sys_created_on gibi sistem tarafından oluşturulan zaman damgası alanlarında bulunur. Örnekler 2023-10-26T10:00:00Z2023-10-27T14:35:10Z2023-11-01T09:15:00Z | |||
| Geliştirme iş kalemi DevelopmentItem | Bir özellik, hata veya görev gibi geliştirme yaşam döngüsü boyunca ilerleyen tek bir iş biriminin benzersiz tanımlayıcısı. | ||
| Açıklama Development Item, izlenen ayrı bir iş birimini temsil eden birincil vaka tanımlayıcısıdır. Bu öğeye ait ilk fikir ve planlama aşamalarından geliştirme, test ve dağıtıma kadar tüm faaliyetleri birbirine bağlar. Process Mining analizinde bu öznitelik, her iş öğesinin uçtan uca yolculuğunu yeniden oluşturmak için temel niteliktedir. Süreç akışlarını görselleştirmenizi, toplam çevrim sürelerini hesaplamanızı ve tek tek özellikler ya da hata düzeltmeleri için süreç varyantlarını belirlemenizi sağlar. Tutarlı bir süreç haritası oluşturmak için günlükteki her olay bir Development Item ile ilişkilendirilmelidir. Neden önemli? Bu temel tanımlayıcı, geliştirmeyle ilgili tüm faaliyetleri tek bir süreç örneğinde birleştirerek her iş öğesinin yaşam döngüsünü eksiksiz biçimde analiz etmenizi sağlar. Nereden alınır? Bu tanımlayıcı genellikle ServiceNow içindeki rm_story, rm_bug veya task tabloları gibi story, bug ya da task kayıtlarını yöneten tabloların birincil anahtarıdır. Örnekler STRY0010015BUG0034092TASK0050118 | |||
| Kaynak sistem SourceSystem | Verilerin hangi sistemden çıkarıldığını belirtir. Bu örnekte kaynak sistem ServiceNow DevOps'tur. | ||
| Açıklama Bu öznitelik, olay verilerinin kaynaklandığı sistemi belirtir. Bu süreçte değer sürekli olarak ServiceNow DevOps olacaktır. Kaynak sistem sabit görünebilir, ancak bu bilgiyi açıkça eklemek veri yönetişimi açısından önemlidir. Jira veya Azure DevOps gibi birden fazla sistemden verilerin birleştirildiği ortamlarda veri kökenini netleştirir ve veri kalitesi ya da çıkarma sorunlarını teşhis etmenize yardımcı olur. Neden önemli? Veri izlenebilirliğini sağlar ve özellikle birden fazla geliştirme aracından veri alınırken veri bütünlüğünü korumak için gereklidir. Nereden alınır? Bu, veri çıkarma ve dönüştürme sürecinde eklenmesi gereken sabit bir değerdir. Örnekler ServiceNow DevOps | |||
| Son veri güncellemesi LastDataUpdate | Bu olay günlüğündeki verilerin kaynak sistemden en son yenilendiği zamanı gösteren zaman damgası. | ||
| Açıklama Bu öznitelik, Veri Setinin ServiceNow DevOps üzerinden en son ne zaman çıkarıldığını veya güncellendiğini kaydeder. Tek tek olaylar yerine Veri Setinin tamamı için geçerlidir. Bu zaman damgası, analizin güncelliğini anlamak açısından çok değerlidir. Kullanıcılara süreç içgörülerinin ne kadar güncel olduğunu gösterir ve veri yenilemelerinin planlanmasına yardımcı olur. Bu bilginin Dashboardlarda gösterilmesi, tüm metriklere ve görselleştirmelere bağlam kazandırır ve kararların güncel verilere dayanmasını sağlar. Neden önemli? Verilerin güncelliği hakkında önemli bir bağlam sağlar ve kullanıcıların süreç analizinin ne kadar güncel olduğunu anlamasına yardımcı olur. Nereden alınır? Bu zaman damgası veri çıkarma sırasında oluşturulur ve eklenir; çıkarma işleminin ne zaman yürütüldüğünü kaydeder. Örnekler 2023-11-15T08:00:00Z | |||
| Atama grubu AssignmentGroup | Faaliyet sırasında Development Item'dan sorumlu ekip veya grup. | ||
| Açıklama Bu öznitelik, Frontend Developers, Backend Services veya QA Team gibi bir iş öğesine atanan ekibi tanımlar. İş öğesi ilerledikçe farklı assignment group'lar arasında devredilebilir. Assignment Group'u izlemek, işlevler arası iş birliğini ve devirleri anlamak için gereklidir. İş bir ekipten diğerine geçtiğinde ortaya çıkan sistemik gecikmeleri belirlemenize yardımcı olur. Bu öznitelik ekip düzeyinde performans ve iş yükü analizini destekler, ayrıca genel akışta hangi ekiplerin darboğaz oluşturduğunu gösterir. Neden önemli? İşten sorumlu ekibi izler; ekip performansını, iş yükü dengesini ve ekipler arasındaki devirlerin verimliliğini analiz etmenizi sağlar. Nereden alınır? Bu bilgi, ServiceNow'da task ile ilgili tablolarda bulunan standart assignment_group alanında saklanır. Örnekler Platform MühendisliğiMobil Uygulama EkibiKalite GüvencesiDevOps | |||
| Atanan geliştirici AssignedDeveloper | Faaliyet sırasında Development Item'a atanan geliştiricinin veya kullanıcının adı ya da kimliği. | ||
| Açıklama Bu öznitelik, belirli bir Task veya etkinliği yürütmekten sorumlu kişiyi belirler. Geliştirme öğesi farklı aşamalar ve ekipler arasında ilerledikçe değişebilir. Bu öznitelik, kaynak tahsisini, iş yükünü ve devir teslimleri analiz etmek için önemlidir. Geliştirici iş yükü ve devir teslimler Dashboardunu ve geliştirici başına etkinlik hacmi temel performans göstergesini doğrudan destekler. Bu alandaki değişiklikleri izleyerek devir teslim sürelerini ölçebilir, geliştiriciler veya geliştirme ve QA ekipleri arasındaki iş birliği darboğazlarını belirleyebilirsiniz. Neden önemli? İş yükü dağılımı, devir verimliliği ve ekiplere özgü performans örüntülerinin belirlenmesi dahil kaynak temelli analizler için gereklidir. Nereden alınır? Bu bilgi genellikle ServiceNow'daki task ile ilgili tablolarda bulunan assigned_to alanında saklanır. Örnekler David MillerAnna WilliamsJames Brown | |||
| Etkilenen modül/bileşen ModuleComponentAffected | Development Item'ın ilişkili olduğu belirli yazılım modülü, uygulama veya bileşen. | ||
| Açıklama Bu öznitelik, geliştirme çalışmasını etkilediği sistem bölümüne göre sınıflandırır. Bu bölüm belirli bir mikro hizmet, kullanıcı arayüzü bileşeni veya arka uç uygulaması olabilir. Süreci modüle veya bileşene göre bölümlere ayırmak, yerel darboğazları belirlemek için önemlidir. Bileşene özel darboğaz içgörüleri Dashboardu ve bileşene göre ortalama aşama süresi temel performans göstergesi, kod tabanının belirli bölümlerinin sürekli olarak daha uzun geliştirme döngüleri, daha yüksek yeniden çalışma oranları veya daha sık dağıtım hatalarıyla ilişkili olup olmadığını belirlemek için bu özniteliğe dayanır. Böylece iyileştirme çalışmalarınızı en çok ihtiyaç duyulan alanlara yönlendirebilirsiniz. Neden önemli? Analizi uygulama veya bileşene göre bölümlere ayırmanızı sağlar ve sistemin belirli bölümlerine özgü darboğazları ya da kalite sorunlarını izole etmenize yardımcı olur. Nereden alınır? Bu genellikle özel bir alandır veya Development Item'ı cmdb_ci kaydına bağlayan Configuration Management Database (CMDB) referansıdır. ServiceNow DevOps belgelerine başvurun. Örnekler Faturalama HizmetiKullanıcı Kimlik Doğrulama ArayüzüRaporlama VeritabanıAPI Gateway | |||
| Geliştirme öğesi çevrim süresi DevelopmentItemCycleTime | Development Item'ın oluşturulmasından son kez kapatılmasına veya dağıtılmasına kadar geçen toplam süre. | ||
| Açıklama Bu öznitelik, tek bir Development Item'ın uçtan uca süresini gösteren hesaplanmış bir metriktir. Her vaka için ilk faaliyetin zaman damgası ile son faaliyetin zaman damgası arasındaki fark bulunarak hesaplanır. Tüm SDLC süreci için temel performans göstergelerinden biridir ve Average SDLC Cycle Time KPI'ını doğrudan destekler. Sürecin hızı ve verimliliği hakkında üst düzey bir ölçüm sunar. Bu metriği zaman içinde ve öncelik ya da ekip gibi farklı boyutlarda analiz ederek süreç iyileştirme çalışmalarının etkisini izleyebilirsiniz. Neden önemli? Bir iş öğesinin uçtan uca toplam süresini temsil eder ve genel süreç verimliliğini ve hızını ölçmek için temel bir metriktir. Nereden alınır? Kaynak sistemde bulunan bir alan değildir. Process Mining aracında her CaseId için minimum StartTime değerinden maksimum StartTime değeri çıkarılarak hesaplanır. Örnekler 15 gün 4 saat3 gün 12 saat32 gün 8 saat | |||
| Geliştirme öğesi durumu DevelopmentItemState | Olay sırasında Development Item'ın durumu, örneğin Open, In Progress veya Closed. | ||
| Açıklama Bu öznitelik, geliştirme öğesinin ServiceNow içindeki resmi durumunu belirtir. Etkinlikler türetilmiş süreç adımlarıyken durum, sistemin iş akışındaki resmi aşamayı gösterir. Etkinlikler çoğu zaman durum bilgisinden türetilir. Bu bilgi, veri doğrulama ve sürecin daha basit, üst düzey görünümlerini oluşturma amacıyla kullanılabilir. Örneğin her durumda geçirilen süreyi analiz etmek, etkinlikler arasındaki süreyi incelemeye kıyasla darboğazlara farklı bir açıdan bakmanızı sağlar. Ayrıca beklemede kalan veya çözümlenen öğeleri belirlemek için de yararlıdır. Neden önemli? Bir iş öğesinin resmi sistem durumunu sağlar. Bu değer genellikle faaliyetlerin türetildiği kaynaktır ve doğrulama ile üst düzey durum analizinde kullanılabilir. Nereden alınır? Bu, ServiceNow'da task ile ilgili tablolarda genellikle state veya stage olarak adlandırılan standart bir alandır. Örnekler BeklemedeDevam EdiyorTest İçin HazırTamamlandı ve Kapatıldı | |||
| Geliştirme öğesi türü DevelopmentItemType | İş öğesinin sınıflandırması, örneğin Feature, Bug, Technical Debt veya Task. | ||
| Açıklama Bu öznitelik, SDLC sürecinden geçen farklı iş türlerini birbirinden ayırır. Örneğin kritik bir hatayı düzeltme süreci, yeni bir özellik geliştirme sürecinden farklı ve daha hızlı olabilir. Süreci iş öğesi türüne göre analiz etmek, performansı daha ayrıntılı biçimde anlamanızı sağlar. Bug kayıtlarının yeni özelliklere göre daha yüksek yeniden çalışma oranına sahip olup olmadığını veya teknik borcu azaltma çevrim süresinin kabul edilebilir düzeyde bulunup bulunmadığını yanıtlamanıza yardımcı olur. Bu bölümlendirme, herkese uyan tek bir süreç görünümünden daha derin içgörüler sunar. Neden önemli? Feature ve Bug gibi farklı iş türlerini birbirinden ayırır. Bu türlerin süreç yolları, öncelikleri ve beklenen süreleri farklı olabilir. Nereden alınır? Bu değer, kaydın kaynak tablosundan, örneğin rm_story veya rm_bug, ya da genel bir task tablosundaki type alanından belirlenebilir. Örnekler ÖzellikHataGörevAraştırma Çalışması | |||
| Öncelik DevelopmentItemPriority | Development Item'a atanan öncelik düzeyi, örneğin High, Medium veya Low. | ||
| Açıklama Bu öznitelik, geliştirme öğelerini iş aciliyetlerine göre sınıflandırır. Öncelik düzeyleri, ekiplerin en önemli Tasklara odaklanmasına yardımcı olur ve genellikle SLA yönetimi ile paydaş beklentilerini karşılamak için kullanılır. Process Mining kapsamında öncelik, karşılaştırmalı analiz için önemli bir boyuttur. Süreç haritasını filtreleyerek yüksek öncelikli öğelerin daha hızlı veya farklı bir yol izleyip izlemediğini görebilirsiniz. Yüksek öncelikli özellik teslim süresi Dashboardu ve temel performans göstergesi için gereklidir. Böylece önemli öğelerin gerçekten hızlandırılıp hızlandırılmadığını doğrulayabilirsiniz. Neden önemli? Farklı öncelik düzeylerindeki süreçleri filtreleyip karşılaştırmanızı sağlar ve yüksek öncelikli öğelerin daha hızlı ve verimli işlenip işlenmediğini doğrulamanıza yardımcı olur. Nereden alınır? Bu, ServiceNow'da task ile ilgili tablolarda genellikle priority olarak adlandırılan standart bir alandır. Örnekler 1 - Kritik2 - Yüksek3 - Orta4 - Düşük | |||
| Yeniden çalışma mı? IsRework | Faaliyetin test sonrasında geliştirmeye geri dönmek gibi bir yeniden çalışma döngüsünün parçası olması durumunda true değerini alan boolean işareti. | ||
| Açıklama Bu, bir süreç önceki bir aşamaya döndükten sonra gerçekleşen etkinlikleri belirleyen türetilmiş bir özniteliktir. Örneğin aynı öğe için QA testi tamamlandı etkinliğinden sonra geliştirme başladı etkinliği gerçekleşirse bu etkinlik yeniden çalışma olarak işaretlenir. Bu işaret, yeniden çalışmayı ölçmek ve görselleştirmek için gereklidir. Yeniden çalışma ve reddedilme akışı analizi Dashboardunu doğrudan destekler ve test sonrası yeniden çalışma oranı temel performans göstergesini hesaplamak için kullanılır. Bu olayları işaretleyerek yeniden çalışmanın sıklığını, nedenlerini ve genel çevrim süresine etkisini kolayca filtreleyip analiz edebilirsiniz. Neden önemli? Bu işaret, yeniden çalışmayı ölçmeyi ve analiz etmeyi kolaylaştırır; süreç kalitesini değerlendirmenize ve tekrarlanan çalışmanın kök nedenlerini belirlemenize yardımcı olur. Nereden alınır? Bu öznitelik, her vaka için faaliyetlerin sırası analiz edilerek süreç akışındaki geriye dönüşleri belirlemek suretiyle Process Mining aracı içinde hesaplanır. Örnekler truefalse | |||
| Bitiş zamanı EventEndTime | Bir faaliyetin tamamlandığı anı gösteren kesin zaman damgası. Anlık olaylarda Start Time ile aynıdır. | ||
| Açıklama Bu öznitelik, geliştirme yaşam döngüsündeki her faaliyetin tamamlandığı tarih ve saati sağlar. Code Review Performed veya QA Testing gibi ölçülebilir süresi olan faaliyetler için özellikle yararlıdır. Process Mining'de hem başlangıç hem de bitiş zamanının bulunması, faaliyetlerin işlem sürelerini kesin biçimde hesaplamanızı ve bunları faaliyetler arasındaki bekleme süresinden ayırmanızı sağlar. Böylece gecikmelerin uzun süren tasklardan mı yoksa kaynak bekleme sürelerinden mi kaynaklandığını belirleyebilirsiniz. Build Triggered gibi anlık kabul edilen olaylarda End Time, Start Time ile aynı olabilir. Neden önemli? Faaliyetlerin işlem süresini kesin biçimde hesaplamanızı sağlar ve çalışmaya ayrılan süreyle beklemeye ayrılan süreyi ayırt etmenize yardımcı olur. Nereden alınır? Bu değer türetilmelidir. Bir sonraki faaliyetin start time zaman damgası kullanılabilir veya kaynak sistemde mevcutsa ayrı bir end date alanından alınabilir. Örnekler 2023-10-26T18:05:00Z2023-10-28T11:20:15Z2023-11-02T10:00:00Z | |||
| Commit ID'si CommitId | Geliştirme çalışmasıyla ilişkili kaynak kodu commit'inin benzersiz tanımlayıcısı. | ||
| Açıklama Bu öznitelik, bir Development Item ile Git gibi kaynak kodu deposundaki belirli kod değişikliği arasında doğrudan bağlantı kurar. Code Committed faaliyeti gerçekleştiğinde kaydedilir. Process Mining'de Commit ID, süreç verilerini mühendislik verileriyle birleştirerek analizi zenginleştirir. Sorunlu bir dağıtımı tam olarak hangi kod değişikliğinin tetiklediğini izleyebilir veya kod karmaşıklığı metriklerini geliştirme çevrim süreleriyle ilişkilendirebilirsiniz. Böylece kök neden analizine daha derin ve teknik bir katman eklenir. Neden önemli? Süreç olayını belirli bir kod değişikliğine bağlar ve süreç metriklerini kod düzeyindeki ayrıntılarla ilişkilendirerek daha derin kök neden analizi yapmanızı sağlar. Nereden alınır? Bu bilgi, ServiceNow DevOps'un Git veya SVN gibi kaynak kodu yönetim sistemleriyle entegrasyonları tarafından alınır. Veriler, Development Item'a bağlı ilişkili tablolarda bulunur. Örnekler a1b2c3d4e5f6f0e9d8c7b6a59a8b7c6d5e4f | |||
| Dağıtım durumu DeploymentStatus | Bir dağıtım faaliyetinin sonucunu belirtir, genellikle Success veya Failure. | ||
| Açıklama Bu öznitelik, belirli bir ortama yapılan dağıtımın sonucunu kaydeder. Sürüm sürecinin güvenilirliğini ve kararlılığını anlamak için önemli bir bilgidir. Bu öznitelik, dağıtım başarı ve başarısızlık eğilimleri Dashboardu ile dağıtım başarısızlık oranı temel performans göstergesi için gereklidir. Dağıtım başarısızlıklarının sıklığını ve eğilimlerini analiz ederek test, altyapı veya sürüm koordinasyonundaki temel sorunları belirleyebilirsiniz. Böylece yazılım teslimatının kalitesini ve güvenilirliğini artırmaya odaklanabilirsiniz. Neden önemli? Dağıtım faaliyetlerinin başarısını doğrudan ölçer; dağıtım hata oranını hesaplamak ve sürüm kararlılığını analiz etmek için gereklidir. Nereden alınır? Bu durum genellikle ServiceNow DevOps ile entegre dağıtım izleme tasklarında veya CI/CD pipeline yürütme kayıtlarında tutulur. Örnekler BaşarılıBaşarısızUyarılarla Tamamlandı | |||
| Planlanan sürüm PlannedReleaseVersion | Development Item'ın teslim edilmesinin planlandığı hedef yazılım sürümü veya versiyonu. | ||
| Açıklama Bu öznitelik, bir geliştirme öğesini Sürüm 2.3 veya 2023 4. Çeyrek Sürümü gibi planlanmış belirli bir sürümle ilişkilendirir. Proje yönetimi ve sürüm planlaması için önemli bir unsurdur. Process Mining açısından bu öznitelik, sürüm planına uyum izleme Dashboardu için gereklidir. Gerçek tamamlanma tarihlerini planlanan sürüm tarihleriyle karşılaştırarak takvime uyumu ölçebilir, bir sürümü kaçırma riski taşıyan öğeleri belirleyebilir ve sürüm gecikmelerinin nedenlerini analiz edebilirsiniz. Bu bilgi, düşük düzeyli geliştirme süreci ile üst düzey iş hedefleri arasında doğrudan bağlantı kurar. Neden önemli? Geliştirme çalışmalarını belirli sürümlere bağlar; takvime uyumu ve süreç gecikmelerinin sürüm zaman çizelgelerine etkisini analiz etmenizi sağlar. Nereden alınır? Bu bilgi genellikle ServiceNow'daki bir sürüm yönetimi tablosuna referans veren release veya planned_release alanında saklanır. ServiceNow DevOps belgelerine başvurun. Örnekler v3.4.12024 1. Çeyrek SürümüPhoenix Projesi Canlıya Geçişi | |||
| Yeniden çalışma nedeni ReworkReason | Bir Development Item'ın test sonrasında neden yeniden çalışılması gerektiğini açıklayan sınıflandırma veya açıklama. | ||
| Açıklama Bir öğe QA veya UAT aşamasında başarısız olduğunda bu öznitelik, başarısızlığın nedenini kaydeder. Neden belirli bir hata kategorisi, gereksinimlerin yanlış anlaşılması veya ortamla ilgili bir sorun olabilir. Bu bilgi, yeniden çalışma ve reddedilme akışı analizi Dashboardu için önemli bir bağlam sağlar. Analistler yalnızca yeniden çalışmanın gerçekleştiğini görmekle kalmaz, neden gerçekleştiğini de anlayabilir. Böylece daha iyi gereksinim tanımlama, geliştirilmiş birim testleri veya daha kararlı test ortamları gibi hedefli iyileştirmeler yaparak genel yeniden çalışma oranını azaltabilirsiniz. Neden önemli? Yeniden çalışmanın neden gerçekleştiğine dair nitel içgörü sağlar; kaliteyi artırmak ve tekrarlanan çalışma döngülerini azaltmak için hedefli süreç iyileştirmeleri yapmanıza yardımcı olur. Nereden alınır? Bu bilgi, bir test başarısız olduğunda close_notes alanında veya özel bir rework_reason alanında tutulabilir. ServiceNow DevOps belgelerine başvurun. Örnekler Gereksinim Yanlış YorumlandıRegresyon HatasıPerformans Testi BaşarısızUI/UX Sorunu | |||
Yazılım geliştirme yaşam döngüsü faaliyetleri
| Aktivite | Açıklama | ||
|---|---|---|---|
| Dağıtım başarısız oldu | Geliştirme iş kaleminin üretime dağıtılma girişiminin başarısız olduğunu gösterir. CI/CD hattı hata bildirdiğinde ServiceNow DevOps tarafından açıkça kaydedilir. | ||
| Neden önemli? Bu, önemli bir başarısızlık bitiş noktasıdır. Sıklığını ve nedenlerini analiz etmek, sürüm kararlılığını artırmak ve dağıtım hatası oranını azaltmak için önemlidir. Nereden alınır? Pipeline Execution [sn_devops_pipeline_execution] kaydının completion_status alanından alınır. Bitiş zamanındaki Failed durumu bu olayı gösterir. Yakalayın Üretim dağıtım hattı Failed durumunu bildirdiğinde kaydedilir. Olay türü explicit | |||
| Geliştirme başladı | Bu etkinlik, geliştiricinin geliştirme iş kalemi için kod yazmaya veya uygulamayı gerçekleştirmeye aktif olarak başladığı noktayı ifade eder. Genellikle iş kaleminin durumunun In Progress, Development veya Coding olarak değişmesinden anlaşılır. | ||
| Neden önemli? Bu önemli kilometre taşı, değer katan geliştirme aşamasının başladığını gösterir. Geliştirici teslim süresini ve kod inceleme döngüsü sürelerini ölçmek için gereklidir. Nereden alınır? Geliştirme iş kalemi kaydındaki, örneğin Story [rm_story] kaydındaki State alanının In Progress veya eşdeğer bir duruma güncellendiği zaman damgasından anlaşılır. Yakalayın Durumun In Progress veya benzer bir değere değiştiği zaman damgasına dayanır. Olay türü inferred | |||
| Geliştirme iş kalemi oluşturuldu | Bu etkinlik, ServiceNow içinde story, bug veya epic gibi yeni bir geliştirme iş kaleminin oluşturulmasını ifade eder. Yeni bir kayıt, Story [rm_story] tablosu gibi ilgili tabloya eklendiğinde bu olay genellikle açıkça kaydedilir. | ||
| Neden önemli? Bu, Yazılım Geliştirme Yaşam Döngüsü sürecinin temel başlangıç olayıdır. Toplam uçtan uca döngü süresini ölçmenizi ve ilk talep alımını izlemenizi sağlar. Nereden alınır? Story [rm_story], Epic [rm_epic] veya Defect [rm_defect] gibi geliştirmeyle ilgili bir tabloda kayıt oluşturulduğunda sys_audit veya sys_history_line tablolarına kaydedilir. Oluşturma zaman damgası genellikle kaydın kendisinde bulunur. Yakalayın Geliştirme iş kalemi kaydının oluşturulma zaman damgasından alınır. Olay türü explicit | |||
| Kod incelemesi yapıldı | Bu etkinlik, genellikle bir pull veya merge request ile ilişkili akran kod incelemesinin tamamlandığını gösterir. Olay, DevOps entegrasyonları üzerinden açıkça alınabilir veya ilişkili kayıtlardaki durum değişikliklerinden anlaşılabilir. | ||
| Neden önemli? Bu, önemli bir kalite kontrol noktasıdır. Süresini analiz etmek, Yazılım Geliştirme Yaşam Döngüsünde yaygın bir gecikme kaynağı olan inceleme sürecindeki darboğazları belirlemeye yardımcı olur. Nereden alınır? ServiceNow Git entegrasyonundaki bir Pull Request kaydının Merged veya Completed olayından alınabilir ya da geliştirme iş kaleminin durumunun Code Review Complete olarak değişmesinden anlaşılabilir. Yakalayın İş kalemine bağlı bir Pull Request birleştirildiğinde kaydedilir. Olay türü explicit | |||
| QA testi tamamlandı | Kalite Güvencesi ekibinin geliştirme iş kalemi için test çalışmalarını başarıyla tamamladığını gösterir. Genellikle iş kaleminin test aşamasından Ready for UAT veya Done gibi bir duruma geçmesiyle anlaşılır. | ||
| Neden önemli? Bu kilometre taşı, önemli bir kalite kontrol noktasının tamamlandığını gösterir. User Acceptance Testing veya sürüm hazırlığı gibi sonraki aşamalar için ön koşuldur. Nereden alınır? Test durumundan, örneğin In QA'dan, test sonrası bir duruma, örneğin Ready for UAT veya Resolved'a geçişin zaman damgasından anlaşılır. Yakalayın Durumun Testing'den sonraki bir duruma değiştiği zaman damgasına dayanır. Olay türü inferred | |||
| UAT onaylandı | İş paydaşlarının User Acceptance Testing sonrasında geliştirme iş kalemini resmî olarak onayladığını gösterir. In UAT durumundan Ready for Release veya Approved durumuna geçiş gibi bir durum değişikliğinden anlaşılır. | ||
| Neden önemli? Bu, iş kaleminin üretime dağıtım için onaylanmasından önceki son iş onayıdır. Önemli bir kalite ve yönetişim kontrol noktasıdır. Nereden alınır? UAT'nin başarıyla tamamlandığını gösteren geliştirme iş kalemi kaydındaki durum geçişinden anlaşılır. Bu geçiş, iş kaleminin etkinlik geçmişine kaydedilir. Yakalayın UAT durumundan onaylanmış veya sürüme hazır bir duruma geçişten anlaşılır. Olay türü inferred | |||
| Üretime dağıtıldı | Bu olay, üretim ortamına dağıtımın başarıyla tamamlandığını gösterir. CI/CD aracı hattın başarıyla tamamlandığını bildirdiğinde ServiceNow DevOps tarafından açıkça kaydedilir. | ||
| Neden önemli? Bu, Yazılım Geliştirme Yaşam Döngüsü sürecinin temel başarılı bitiş noktasıdır. Değer akışını tamamlar ve toplam döngü süresini hesaplamak için gereklidir. Nereden alınır? Pipeline Execution [sn_devops_pipeline_execution] kaydının veya ilişkili Stage Execution Run kaydının completion_status alanından alınır. Bitiş zamanındaki Success durumu bu olayı gösterir. Yakalayın Üretim dağıtım hattı başarıyla tamamlandığında kaydedilir. Olay türü explicit | |||
| Build tetiklendi | Bu olay, çoğu zaman bir kod gönderimiyle tetiklenen CI/CD hattı build'inin başladığını gösterir. ServiceNow DevOps bunu, kaynak geliştirme iş kalemlerine bağlanan bir hat yürütümü olarak kaydeder. | ||
| Neden önemli? Bu etkinlik, geliştirme ile otomatik test veya dağıtım arasındaki bağlantıyı oluşturur. Commit ile build başlangıcı arasındaki süreyi analiz etmek, CI/CD sürecindeki gecikmeleri ortaya çıkarabilir. Nereden alınır? Entegre CI/CD aracında, örneğin Jenkins veya Azure DevOps'ta bir build başladığında Pipeline Execution [sn_devops_pipeline_execution] tablosuna açıkça kaydedilir. Yakalayın Pipeline Execution tablosundaki bir kaydın başlangıç zamanından alınır. Olay türü explicit | |||
| Geliştirme iş kalemi iptal edildi | Bir geliştirme iş kaleminin tamamlanmadan sonlandırılmasını ifade eder. Genellikle iş kaleminin durumunun Cancelled veya Closed Incomplete olarak ayarlanmasından anlaşılır. | ||
| Neden önemli? İptalleri izlemek, boşa harcanan çabayı belirlemenize ve kapsam değişikliklerinin ya da önceliklerin yeniden belirlenmesinin nedenlerini anlamanıza yardımcı olur. Olası tüm süreç sonuçlarına ilişkin daha eksiksiz bir görünüm sunar. Nereden alınır? Geliştirme iş kalemi kaydındaki State alanının Cancelled gibi tamamlanmamış bir son duruma güncellendiği zaman damgasından anlaşılır. Yakalayın Durumun Cancelled veya eşdeğer bir son duruma değişmesinden anlaşılır. Olay türü inferred | |||
| Kod gönderildi | Bir geliştiricinin, geliştirme iş kalemine bağlı sürüm kontrol sistemi deposuna kod göndermesini ifade eder. ServiceNow DevOps, bu olayları Git veya GitHub gibi entegre SCM araçlarından açıkça alır. | ||
| Neden önemli? Gönderilen kodları izlemek, geliştirme ilerlemesi ve etkinlik sıklığı hakkında ayrıntılı görünürlük sağlar. Belirli kod değişikliklerini üst geliştirme iş kalemiyle ilişkilendirmenize yardımcı olur. Nereden alınır? Entegre kaynak kodu yönetim sisteminden gelen webhook'larla doldurulan ServiceNow DevOps Commits [sn_devops_commit] tablosunda açık bir olay olarak kaydedilir. Yakalayın SCM aracından bir commit webhook'u alındığında kaydedilir. Olay türü explicit | |||
| QA testi başladı | Resmî Kalite Güvencesi test aşamasının başlangıcını gösterir. Geliştirme iş kaleminin durumunun In QA, Testing veya Ready for Test gibi bir değere değişmesinden neredeyse her zaman anlaşılır. | ||
| Neden önemli? Bu etkinlik, geliştirici ekipten QA ekibine devri gösterir. Test aşamasının süresini ölçmenize ve test kapasitesindeki darboğazları belirlemenize yardımcı olur. Nereden alınır? Geliştirme iş kalemi kaydındaki, örneğin Story veya Defect kaydındaki State alanının QA'ya özgü bir duruma güncellendiği zaman damgasından anlaşılır. Yakalayın Durumun Testing veya eşdeğer bir değere değiştiği zaman damgasına dayanır. Olay türü inferred | |||
| Sürüm için hazırlandı | Bu etkinlik, geliştirme iş kaleminin tüm kalite kontrol noktalarını geçtiğini ve belirli bir sürüme dahil edildiğini gösterir. İş kalemi bir Release kaydıyla ilişkilendirildiğinde veya durumu Ready for Deployment olarak değiştiğinde anlaşılabilir. | ||
| Neden önemli? Bu adım, iş kaleminin teknik ve işlevsel olarak tamamlandığını gösterir. Bu durumda geçirilen süre, planlanan dağıtım penceresi öncesindeki kuyruk süresini temsil edebilir. Nereden alınır? State alanının Ready for Release olarak değişmesinden veya geliştirme iş kalemi kaydındaki Release alanının doldurulduğu ya da güncellendiği zamanın izlenmesinden anlaşılır. Yakalayın Bir durum değişikliğinden veya Release kaydıyla ilişkilendirilmesinden anlaşılır. Olay türü inferred | |||
| Tasarım başladı | Bu etkinlik, geliştirme iş kalemi için teknik tasarımın veya çözüm mimarisinin oluşturulduğu aşamayı ifade eder. Genellikle geliştirme iş kalemi kaydındaki durum veya state alanının Design ya da Solutioning gibi bir değere değişmesinden anlaşılır. | ||
| Neden önemli? Tasarım aşamasının süresini analiz etmek, geliştirme çalışması başlamadan önce gereksinimlerin çözüme dönüştürülmesindeki ve çözüm planlamasındaki darboğazları belirlemeye yardımcı olur. Nereden alınır? Geliştirme iş kalemi kaydındaki durum geçişlerinden, örneğin Story [rm_story] kaydından anlaşılır. State veya özel Stage alanının tasarımla ilgili bir değere değişmesini inceleyin. Yakalayın Durumun Design veya benzer bir değere değişmesinden anlaşılır. Olay türü inferred | |||
| UAT başladı | İş paydaşlarının işlevselliği doğruladığı User Acceptance Testing aşamasının başlangıcını ifade eder. Bu olay, durumun UAT, In UAT veya User Acceptance Testing olarak değişmesinden anlaşılır. | ||
| Neden önemli? Bu aşama, geliştirilen özelliğin iş gereksinimlerini karşılamasını sağlamak için önemlidir. Süresini analiz etmek, kullanıcı katılımı veya gereksinim uyumsuzluklarıyla ilgili sorunları ortaya çıkarabilir. Nereden alınır? Geliştirme iş kalemi kaydındaki bir durum geçişinden anlaşılır. Bunun için müşterinin durum modelinde UAT'ye özgü ayrı bir durum bulunması gerekir. Yakalayın Durumun UAT olarak değişmesinden anlaşılır. Olay türü inferred | |||
| Üretime dağıtım başladı | Bu etkinlik, üretim ortamına dağıtım hattının başlatıldığını gösterir. ServiceNow DevOps, CI/CD hattının üretim aşaması yürütülmeye başladığında bunu açık bir olay olarak kaydeder. | ||
| Neden önemli? Bu, yaşam döngüsünün son ve çoğu zaman en önemli aşamasının başlangıcını gösterir. İzlenmesi, dağıtım sürelerini analiz etmenize ve otomasyon fırsatlarını belirlemenize yardımcı olur. Nereden alınır? Üretim ortamıyla ilişkili aşamalar filtrelenerek Stage Execution Run [sn_devops_stage_execution] tablosuna açıkça kaydedilir. Yakalayın Pipeline Execution içindeki üretim dağıtım aşamasının başlangıç zamanından alınır. Olay türü explicit | |||
| Yeniden iş belirlendi | Test sırasında bir sorun bulunduğunu ve iş kaleminin geliştirmeye geri gönderilmesi gerektiğini gösterir. Bu olay, In QA durumundan In Progress durumuna geri dönüş gibi süreç akışındaki geriye doğru bir hareket gözlemlenerek anlaşılır. | ||
| Neden önemli? Yeniden işi izlemek, kalite sorunlarını ve süreç verimsizliklerini anlamak için gereklidir. Bu etkinliğin sık görülmesi, geliştirme veya gereksinimlerin netliğiyle ilgili sorunlara işaret eder. Nereden alınır? sys_audit veya sys_history_line tablolarındaki State alanı geçmişi analiz edilerek anlaşılır. Daha sonraki bir aşama durumundan, örneğin Testing'den, önceki bir aşama durumuna, örneğin In Progress'e geçiş yeniden işi gösterir. Yakalayın Geriye doğru bir durum geçişinden anlaşılır, örneğin Testing -> In Progress. Olay türü inferred | |||
Veri çıkarma rehberleri
Adımlar
- Durum modelinizi anlayın: Raporları oluşturmadan önce geliştirme öğenizin durum alanındaki, gerekli etkinliklere karşılık gelen belirli değerleri belgeleyin. Örneğin bu alan Story
[rm_story]veya Defect[rm_defect]tablosunda bulunabilir. 'In Progress' gibi bir durum değeri 'Development Started' etkinliğiyle eşlenebilir. - Rapor oluşturma bölümüne gidin: ServiceNow örneğinize giriş yapın. Filtre gezgininde
Reports > View / Runyolunu izleyin veCreate a reportdüğmesine tıklayın. - Durum değişiklikleri için rapor oluşturun: Duruma dayalı etkinlikleri yakalamak için ilk raporu oluşturun. Raporu şu şekilde yapılandırın:
- Rapor adı:
ProcessMind - State Change Events - Kaynak türü:
Table - Tablo:
Audit [sys_audit] - Tür:
List - Sütunları yapılandırın:
Document key,Created on,Table name,Field name,Old valueveNew valuealanlarını ekleyin. - Filtre:
Table namedeğerini geliştirme öğesi tablolarınızdan biri, örneğinStory, olacak şekilde veField namedeğerini durum alanınız, örneğinState, olacak şekilde ayarlayın. İstediğiniz dönem içinCreated onalanına tarih filtresi ekleyin.
- Rapor adı:
- Öğe oluşturma için rapor oluşturun: İlk oluşturma olayını yakalamak üzere yeni bir rapor oluşturun.
- Rapor adı:
ProcessMind - Item Creation Events - Kaynak türü:
Table - Tablo:
Story [rm_story]veya birincil geliştirme öğesi tablonuz - Tür:
List - Sütunları yapılandırın:
Sayı,Created on,Assigned to,Priority,Stategibi gerekli özniteliklere ait sütunları ekleyin. - Filtre:
Created onalanına tarih filtresi uygulayın.
- Rapor adı:
- Kod işlemeleri için rapor oluşturun: İşlemelerle ilgili açık DevOps olayları için bir rapor oluşturun.
- Rapor adı:
ProcessMind - Commit Events - Kaynak türü:
Table - Tablo:
Commit [sn_devops_commit] - Tür:
List - Sütunları yapılandırın:
Work item,Commit timeveAuthorgibi sütunları ekleyin. - Filtre:
Commit timealanına tarih filtresi uygulayın.
- Rapor adı:
- Derlemeler ve dağıtımlar için raporlar oluşturun: Önceki adımda açıklanan işlemi
Build [sn_devops_build]veDeployment [sn_devops_deployment]tabloları için tekrarlayın. Bu tablolarBuild Triggered,Deployment to Production Started,Deployed to ProductionveDeployment Failedetkinliklerine ait kayıtları içerir. - Tüm raporları dışa aktarın: Oluşturduğunuz her raporu ayrı ayrı çalıştırın. Her rapor için bağlam menüsü simgesine, yani üç noktaya veya aşağı okuna tıklayın ve
Export > CSVya daExport > Excelseçeneğini belirleyin. Tüm dosyaları kaydedin. - Verileri birleştirin ve dönüştürün: Dışa aktarılan dosyaları bir elektronik tablo programında açın veya bir veri hazırlama aracı kullanın. Tüm dosyalardaki verileri tek bir sayfada manuel olarak birleştirin. Gerekli Event Log sütunlarını (
DevelopmentItem,ActivityName,EventTimevb.) oluşturun ve verileri kaynak sütunlardan eşleyin. Örneğin denetim raporundakiDocument keyile story raporundakiSayıdeğeriniDevelopmentItemsütununa eşleyin. - Etkinlik adlarını eşleyin: Kaynak verileri dönüştürerek
ActivityNamesütununu oluşturun. Durum değişikliği raporu içinNew valuegirişlerini etkinlik adlarıyla eşlemek üzere belgelediğiniz durum modelini kullanın. Örneğin 'Testing' durumunu 'QA Testing Started' ile eşleyin. Diğer raporlar için her satıra sabit bir etkinlik adı atayın. Örneğin commit dışa aktarmasındaki tüm satırları 'Code Committed' olarak adlandırın. - Sonlandırın ve kaydedin: Tüm satırlar için sabit değerler içeren
SourceSystemveLastDataUpdatesütunlarını ekleyin. Tüm zaman damgalarının tutarlı bir biçimde olduğundan emin olun. Son birleştirilmiş dosyayı tek bir CSV olarak kaydedin. Dosya artık ProcessMind’e yüklenmeye hazırdır.
Yapılandırma
- Gerekli tablolar: Bu çıkarma işlemi için gereken temel tablolar, çıkarımsal olaylar için
Audit [sys_audit], geliştirme öğelerinize ait tablolar, örneğinStory [rm_story]veDefect [rm_defect], ile temel ServiceNow DevOps tabloları olanCommit [sn_devops_commit],Build [sn_devops_build]veDeployment [sn_devops_deployment]tablolarıdır. - Temel filtreler: En önemli filtre tarih aralığıdır. Bu filtre,
Created on,Commit timeveyaBaşlangıç zamanıgibi bir zaman damgası alanı üzerinden tüm raporlara tutarlı biçimde uygulanmalıdır.sys_auditraporunda verileri yalnızca ilgili durum değişiklikleriyle sınırlamak içinTable name, örneğinrm_story, veField name, örneğinstate, alanlarına filtre uygulamak önemlidir. - Tarih aralığı önerisi: Performans sorunlarına yol açmadan temsili bir Veri Seti elde etmek için 3 ila 6 aylık bir döneme ait verilerin çıkarılması önerilir. Daha büyük sistemlerde verileri aylık gruplar halinde çıkarmayı değerlendirin.
- Durum modeli tanımı: Kuruluşunuzun iş öğesi durum modelini net biçimde anlamanız gerekir.
sys_audittablosunda yakalanan durum değerlerini QA Testing Started veya UAT Approved gibi ilgili iş etkinliklerine doğru şekilde eşlemek için bu gereklidir. - Ön koşullar: Çıkarma işlemini gerçekleştiren kullanıcıların rapor oluşturup çalıştırabilmesi için
report_userrolüne veya eşdeğer izinlere sahip olması gerekir. Ayrıca yukarıda belirtilen DevOps ve uygulama geliştirme tablolarına okuma erişimleri olmalıdır. ServiceNow DevOps eklentisi kurulmuş ve SCM ile CI/CD araçlarınızla etkin biçimde entegre edilmiş olmalıdır.
a Örnek sorgu sql
/*
This extraction method uses the ServiceNow report builder UI. The following sections describe the configuration for each report that must be created and exported.
The exported data must then be manually combined and transformed into a single event log file.
*/
---
-- REPORT 1: Item Creation Events
---
Report_Name: ProcessMind - Item Creation Events
Source_Table: rm_story
Report_Type: List
Columns:
- Number (maps to DevelopmentItem)
- sys_created_on (maps to EventTime)
- 'Development Item Created' (create a formula or static column for ActivityName)
- Assigned to (maps to AssignedDeveloper)
- Priority (maps to DevelopmentItemPriority)
- State (maps to DevelopmentItemState)
- cmdb_ci (maps to ModuleComponentAffected)
- Type (maps to DevelopmentItemType)
- Assignment group (maps to AssignmentGroup)
Filters:
- sys_created_on ON Last 6 months
---
-- REPORT 2: Inferred State Change Events
---
Report_Name: ProcessMind - State Change Events
Source_Table: sys_audit
Report_Type: List
Columns:
- documentkey (maps to DevelopmentItem)
- sys_created_on (maps to EventTime)
- newvalue (maps to ActivityName, requires translation)
- user (maps to AssignedDeveloper)
ActivityName_Mapping_Logic (Example):
- WHEN newvalue IS '[Your Design State]' THEN 'Design Started'
- WHEN newvalue IS '[Your In Progress State]' THEN 'Development Started'
- WHEN newvalue IS '[Your QA State]' THEN 'QA Testing Started'
- WHEN oldvalue IS '[Your QA State]' AND newvalue IS '[Your In Progress State]' THEN 'Rework Identified'
- WHEN oldvalue IS '[Your QA State]' AND newvalue IS '[Your UAT State]' THEN 'QA Testing Completed'
- WHEN newvalue IS '[Your UAT State]' THEN 'UAT Started'
- WHEN newvalue IS '[Your UAT Approved State]' THEN 'UAT Approved'
- WHEN newvalue IS '[Your Release Ready State]' THEN 'Prepared For Release'
- WHEN newvalue IS '[Your Cancelled State]' THEN 'Development Item Cancelled'
Filters:
- tablename = 'rm_story'
- fieldname = 'state'
- sys_created_on ON Last 6 months
---
-- REPORT 3: Code Commit Events
---
Report_Name: ProcessMind - Commit Events
Source_Table: sn_devops_commit
Report_Type: List
Columns:
- work_item.number (maps to DevelopmentItem)
- commit_time (maps to EventTime)
- 'Code Committed' (create a formula or static column for ActivityName)
- author.name (maps to AssignedDeveloper)
Filters:
- commit_time ON Last 6 months
---
-- REPORT 4: Build Events
---
Report_Name: ProcessMind - Build Events
Source_Table: sn_devops_build
Report_Type: List
Columns:
- work_item.number (maps to DevelopmentItem)
- start_time (maps to EventTime)
- 'Build Triggered' (create a formula or static column for ActivityName)
Filters:
- start_time ON Last 6 months
---
-- REPORT 5: Deployment Events
---
Report_Name: ProcessMind - Deployment Events
Source_Table: sn_devops_deployment
Report_Type: List
Columns:
- work_item.number (maps to DevelopmentItem)
- start_time (maps to EventTime for 'Started' activities)
- end_time (maps to EventTime for 'Completed' or 'Failed' activities)
- state (maps to ActivityName, requires translation)
ActivityName_Mapping_Logic:
- WHEN state IS 'in_progress' THEN 'Deployment to Production Started'
- WHEN state IS 'successful' THEN 'Deployed to Production'
- WHEN state IS 'failed' THEN 'Deployment Failed'
Filters:
- start_time ON Last 6 months
- [Filter for production deployments based on your environment configuration]
---
-- Additional events like 'Code Review Performed' may require a separate report
-- on a table like `sn_devops_pull_request` if available and configured.
--- Adımlar
- Ön koşullar: ServiceNow örneğinize ağ erişiminiz olduğundan ve okuma izinlerine sahip özel bir hizmet hesabı edindiğinizden emin olun.
itilvesn_devops.viewerrolleri iyi bir başlangıçtır. Bu kullanıcınınrm_story,sys_auditvesn_devops_*şeması gibi tablolara erişmesi gerekir. ServiceNow ODBC Driver'ı işletim sisteminize uygun şekilde ServiceNow destek portalından indirin. Sağlanan kurulum talimatlarını izleyin. - ServiceNow ODBC Driver'ı kurun: İşletim sisteminize uygun ServiceNow ODBC Driver'ı ServiceNow destek portalından indirin. Sağlanan kurulum talimatlarını izleyin.
- DSN'yi yapılandırın: Sorguyu çalıştıracağınız makinede yeni bir System DSN, yani Data Source Name, oluşturun. ODBC Data Source Administrator'da ServiceNow Driver'ı ekleyin ve örnek URL'niz, örneğin
yourinstance.service-now.com, kullanıcı adınız ve parolanızla yapılandırın. - Bir SQL istemcisiyle bağlanın: Yapılandırdığınız DSN'yi kullanarak ServiceNow'a bağlanmak için DBeaver, Microsoft SQL Server Management Studio, linked server kullanarak, veya ODBC kütüphanesine sahip Python gibi bir betik dili kullanın.
- Durum modelini belirleyin: Sorguyu çalıştırmadan önce geliştirme öğesi tablolarınızdaki, örneğin
rm_storyverm_defect,statealanı için kuruluşunuzun kullandığı kesin değerleri belirleyin. Sağlanan sorguda 'In Progress' veya 'In QA' gibi yaygın örnekler kullanılır. Bunları kendi değerlerinizle değiştirmeniz gerekir. - SQL sorgusunu özelleştirin: Sağlanan SQL sorgusunu istemcinize kopyalayın. Sorgunun başındaki yer tutucuları, veri çıkarma başlangıç tarihi ve geliştirme yaşam döngüsü etkinliklerinize karşılık gelen belirli durum değerleri dahil olmak üzere değiştirin.
- Sorguyu çalıştırın: Tam SQL sorgusunu ODBC bağlantısı üzerinden ServiceNow veritabanında çalıştırın. Süre, tarih aralığına ve veri hacmine bağlı olarak uzun olabilir.
- Verileri inceleyin: Sorgu tamamlandığında dönen veri setini kısaca inceleyin. Çeşitli etkinliklerin bulunduğunu ve
DevelopmentItem,ActivityNameveEventTimegibi temel sütunların beklendiği şekilde doldurulduğunu kontrol edin. - CSV'ye aktarın: Sonuç kümesinin tamamını bir CSV dosyasına aktarın. Dosyanın UTF-8 kodlamasına sahip olduğundan ve sütun başlıklarının ProcessMind'in gerektirdiği öznitelik adlarıyla, örneğin
DevelopmentItem,ActivityNameveEventTime, eşleştiğinden emin olun. - Yüklemeye hazırlayın: Son CSV dosyasının sonunda boş satır bulunmadığından ve
EventTimeileLastDataUpdatetarih biçiminin tutarlı ve ProcessMind tarafından desteklendiğinden emin olun. ÖrneğinYYYY-MM-DD HH:MM:SSbiçimini kullanabilirsiniz.
Yapılandırma
- Ön koşullar: DevOps modülü etkin bir ServiceNow örneğine erişiminiz olmalıdır. Gerekli tablolara okuma izni olan özel bir kullanıcı hesabı gereklidir. ServiceNow ODBC Driver istemci makinesine kurulmuş ve yapılandırılmış olmalıdır.
- ODBC Driver yapılandırması: Bağlantı için örnek URL'si, kullanıcı adı ve parola veya OAuth belirteci gerekir. Karmaşık sorguları çalıştırmadan önce DSN bağlantısını test etmeniz önemlidir.
- Tarih aralığı filtresi: Sağlanan sorguda, çıkarılan veri miktarını sınırlamak için
s.sys_created_on >= '2023-01-01'yer tutucusu bulunur. Yönetilebilir sorgu süreleri sağlamak için son 6 ila 12 ay gibi belirli bir dönemden veri çıkarmanız önerilir. - Durum modeli özelleştirmesi: Çıkarımsal etkinliklerin doğruluğu tamamen durum modeline bağlıdır. Yer tutucu durum değerlerini, örneğin
[Your 'In Progress' State Value]ve[Your 'In QA' State Value], ServiceNow yapılandırmanızda kullanılan kesin değerlerle değiştirmeniz gerekir. Bu değerler büyük/küçük harfe duyarlıdır. - İş öğesi tabloları: Sorgu Story tablosu (
rm_story) için yazılmıştır. Kuruluşunuz Defect (rm_defect), Enhancement (rm_enhancement) veya başka görev türlerini de kullanıyorsa bunlarıUNION ALLkullanarak ilkDevItemsCommon Table Expression'ına (CTE) eklemeniz gerekir. - Performans: Üretim ServiceNow örneğine doğrudan gönderilen sorgular performansı etkileyebilir. Büyük veri çıkarma işlemlerini yoğun olmayan saatlerde çalıştırmanız önerilir. Çok büyük veri setleri için
sys_updated_onalanına dayalı artımlı veri çıkarma stratejisini değerlendirin.
a Örnek sorgu sql
WITH DevItems AS (
-- This CTE selects the base set of development items to analyze.
-- Add other tables like rm_defect or rm_enhancement here using UNION ALL if needed.
SELECT
s.sys_id,
s.number,
s.sys_created_on,
s.sys_updated_on,
s.assigned_to,
s.priority,
s.state,
s.cmdb_ci, -- Module/Component Affected
s.sys_class_name, -- Development Item Type
s.assignment_group,
DATEDIFF(second, s.sys_created_on, s.closed_at) AS cycle_time_seconds
FROM rm_story s
WHERE s.sys_created_on >= '2023-01-01' -- *** Placeholder: Set your desired start date ***
),
StateChanges AS (
-- This CTE unnests the audit trail for state changes, which are used for inferred activities.
SELECT
a.documentkey AS item_sys_id,
a.sys_created_on AS change_time,
a.oldvalue,
a.newvalue,
-- *** Placeholder: Define the numeric order of your states to detect rework. Adjust values and names. ***
CASE a.oldvalue
WHEN '1' THEN 1 -- Open
WHEN '[Your 'Design' State Value]' THEN 2
WHEN '[Your 'In Progress' State Value]' THEN 3
WHEN '[Your 'In QA' State Value]' THEN 4
WHEN '[Your 'In UAT' State Value]' THEN 5
ELSE 0
END AS old_state_order,
CASE a.newvalue
WHEN '1' THEN 1 -- Open
WHEN '[Your 'Design' State Value]' THEN 2
WHEN '[Your 'In Progress' State Value]' THEN 3
WHEN '[Your 'In QA' State Value]' THEN 4
WHEN '[Your 'In UAT' State Value]' THEN 5
ELSE 0
END AS new_state_order
FROM sys_audit a
WHERE a.tablename = 'rm_story' AND a.fieldname = 'state'
)
-- 1. Development Item Created
SELECT
i.number AS DevelopmentItem,
'Development Item Created' AS ActivityName,
i.sys_created_on AS EventTime,
'ServiceNow DevOps' AS SourceSystem,
GETDATE() AS LastDataUpdate,
us.name AS AssignedDeveloper,
i.priority AS DevelopmentItemPriority,
i.state AS DevelopmentItemState,
ci.name AS ModuleComponentAffected,
i.sys_class_name AS DevelopmentItemType,
grp.name AS AssignmentGroup,
i.cycle_time_seconds AS DevelopmentItemCycleTime,
CAST(0 AS BIT) AS IsRework
FROM DevItems i
LEFT JOIN sys_user us ON i.assigned_to = us.sys_id
LEFT JOIN cmdb_ci ci ON i.cmdb_ci = ci.sys_id
LEFT JOIN sys_user_group grp ON i.assignment_group = grp.sys_id
UNION ALL
-- 2. Design Started
SELECT i.number, 'Design Started', sc.change_time, 'ServiceNow DevOps', GETDATE(), us.name, i.priority, sc.newvalue, ci.name, i.sys_class_name, grp.name, i.cycle_time_seconds, CAST(0 AS BIT)
FROM StateChanges sc JOIN DevItems i ON sc.item_sys_id = i.sys_id
LEFT JOIN sys_user us ON i.assigned_to = us.sys_id LEFT JOIN cmdb_ci ci ON i.cmdb_ci = ci.sys_id LEFT JOIN sys_user_group grp ON i.assignment_group = grp.sys_id
WHERE sc.newvalue = '[Your ''Design'' State Value]' -- *** Placeholder: Adjust state value ***
UNION ALL
-- 3. Development Started
SELECT i.number, 'Development Started', sc.change_time, 'ServiceNow DevOps', GETDATE(), us.name, i.priority, sc.newvalue, ci.name, i.sys_class_name, grp.name, i.cycle_time_seconds, CAST(0 AS BIT)
FROM StateChanges sc JOIN DevItems i ON sc.item_sys_id = i.sys_id
LEFT JOIN sys_user us ON i.assigned_to = us.sys_id LEFT JOIN cmdb_ci ci ON i.cmdb_ci = ci.sys_id LEFT JOIN sys_user_group grp ON i.assignment_group = grp.sys_id
WHERE sc.newvalue = '[Your ''In Progress'' State Value]' AND sc.old_state_order < 3 -- *** Placeholder: Adjust state value and order ***
UNION ALL
-- 4. Code Committed
SELECT i.number, 'Code Committed', c.committed_time, 'ServiceNow DevOps', GETDATE(), us.name, i.priority, i.state, ci.name, i.sys_class_name, grp.name, i.cycle_time_seconds, CAST(0 AS BIT)
FROM sn_devops_commit c JOIN DevItems i ON c.work_item = i.sys_id
LEFT JOIN sys_user us ON i.assigned_to = us.sys_id LEFT JOIN cmdb_ci ci ON i.cmdb_ci = ci.sys_id LEFT JOIN sys_user_group grp ON i.assignment_group = grp.sys_id
UNION ALL
-- 5. Build Triggered
SELECT i.number, 'Build Triggered', b.start_time, 'ServiceNow DevOps', GETDATE(), us.name, i.priority, i.state, ci.name, i.sys_class_name, grp.name, i.cycle_time_seconds, CAST(0 AS BIT)
FROM sn_devops_build b JOIN sn_devops_commit_build cb ON b.sys_id = cb.build JOIN sn_devops_commit c ON cb.commit = c.sys_id JOIN DevItems i ON c.work_item = i.sys_id
LEFT JOIN sys_user us ON i.assigned_to = us.sys_id LEFT JOIN cmdb_ci ci ON i.cmdb_ci = ci.sys_id LEFT JOIN sys_user_group grp ON i.assignment_group = grp.sys_id
UNION ALL
-- 6. Code Review Performed
SELECT i.number, 'Code Review Performed', pr.closed_at, 'ServiceNow DevOps', GETDATE(), us.name, i.priority, i.state, ci.name, i.sys_class_name, grp.name, i.cycle_time_seconds, CAST(0 AS BIT)
FROM sn_devops_pull_request pr JOIN DevItems i ON pr.work_item = i.sys_id
LEFT JOIN sys_user us ON i.assigned_to = us.sys_id LEFT JOIN cmdb_ci ci ON i.cmdb_ci = ci.sys_id LEFT JOIN sys_user_group grp ON i.assignment_group = grp.sys_id
WHERE pr.state = 'merged' -- Or 'closed', depending on process
UNION ALL
-- 7. QA Testing Started
SELECT i.number, 'QA Testing Started', sc.change_time, 'ServiceNow DevOps', GETDATE(), us.name, i.priority, sc.newvalue, ci.name, i.sys_class_name, grp.name, i.cycle_time_seconds, CAST(0 AS BIT)
FROM StateChanges sc JOIN DevItems i ON sc.item_sys_id = i.sys_id
LEFT JOIN sys_user us ON i.assigned_to = us.sys_id LEFT JOIN cmdb_ci ci ON i.cmdb_ci = ci.sys_id LEFT JOIN sys_user_group grp ON i.assignment_group = grp.sys_id
WHERE sc.newvalue = '[Your ''In QA'' State Value]' -- *** Placeholder: Adjust state value ***
UNION ALL
-- 8. Rework Identified
SELECT i.number, 'Rework Identified', sc.change_time, 'ServiceNow DevOps', GETDATE(), us.name, i.priority, sc.newvalue, ci.name, i.sys_class_name, grp.name, i.cycle_time_seconds, CAST(1 AS BIT)
FROM StateChanges sc JOIN DevItems i ON sc.item_sys_id = i.sys_id
LEFT JOIN sys_user us ON i.assigned_to = us.sys_id LEFT JOIN cmdb_ci ci ON i.cmdb_ci = ci.sys_id LEFT JOIN sys_user_group grp ON i.assignment_group = grp.sys_id
WHERE sc.new_state_order < sc.old_state_order AND sc.new_state_order > 1 -- Moved to an earlier state
UNION ALL
-- 9. QA Testing Completed
SELECT i.number, 'QA Testing Completed', sc.change_time, 'ServiceNow DevOps', GETDATE(), us.name, i.priority, sc.newvalue, ci.name, i.sys_class_name, grp.name, i.cycle_time_seconds, CAST(0 AS BIT)
FROM StateChanges sc JOIN DevItems i ON sc.item_sys_id = i.sys_id
LEFT JOIN sys_user us ON i.assigned_to = us.sys_id LEFT JOIN cmdb_ci ci ON i.cmdb_ci = ci.sys_id LEFT JOIN sys_user_group grp ON i.assignment_group = grp.sys_id
WHERE sc.oldvalue = '[Your ''In QA'' State Value]' AND sc.new_state_order > sc.old_state_order -- *** Placeholder: Adjust state value ***
UNION ALL
-- 10. UAT Started
SELECT i.number, 'UAT Started', sc.change_time, 'ServiceNow DevOps', GETDATE(), us.name, i.priority, sc.newvalue, ci.name, i.sys_class_name, grp.name, i.cycle_time_seconds, CAST(0 AS BIT)
FROM StateChanges sc JOIN DevItems i ON sc.item_sys_id = i.sys_id
LEFT JOIN sys_user us ON i.assigned_to = us.sys_id LEFT JOIN cmdb_ci ci ON i.cmdb_ci = ci.sys_id LEFT JOIN sys_user_group grp ON i.assignment_group = grp.sys_id
WHERE sc.newvalue = '[Your ''In UAT'' State Value]' -- *** Placeholder: Adjust state value ***
UNION ALL
-- 11. UAT Approved
SELECT i.number, 'UAT Approved', sc.change_time, 'ServiceNow DevOps', GETDATE(), us.name, i.priority, sc.newvalue, ci.name, i.sys_class_name, grp.name, i.cycle_time_seconds, CAST(0 AS BIT)
FROM StateChanges sc JOIN DevItems i ON sc.item_sys_id = i.sys_id
LEFT JOIN sys_user us ON i.assigned_to = us.sys_id LEFT JOIN cmdb_ci ci ON i.cmdb_ci = ci.sys_id LEFT JOIN sys_user_group grp ON i.assignment_group = grp.sys_id
WHERE sc.oldvalue = '[Your ''In UAT'' State Value]' AND sc.new_state_order > sc.old_state_order -- *** Placeholder: Adjust state value ***
UNION ALL
-- 12. Prepared For Release
SELECT i.number, 'Prepared For Release', sc.change_time, 'ServiceNow DevOps', GETDATE(), us.name, i.priority, sc.newvalue, ci.name, i.sys_class_name, grp.name, i.cycle_time_seconds, CAST(0 AS BIT)
FROM StateChanges sc JOIN DevItems i ON sc.item_sys_id = i.sys_id
LEFT JOIN sys_user us ON i.assigned_to = us.sys_id LEFT JOIN cmdb_ci ci ON i.cmdb_ci = ci.sys_id LEFT JOIN sys_user_group grp ON i.assignment_group = grp.sys_id
WHERE sc.newvalue = '[Your ''Ready for Release'' State Value]' -- *** Placeholder: Adjust state value ***
UNION ALL
-- 13. Deployment to Production Started
SELECT i.number, 'Deployment to Production Started', se.start_time, 'ServiceNow DevOps', GETDATE(), us.name, i.priority, i.state, ci.name, i.sys_class_name, grp.name, i.cycle_time_seconds, CAST(0 AS BIT)
FROM sn_devops_step_execution se JOIN sn_devops_artifact_build sab ON se.deployable = sab.sys_id JOIN sn_devops_commit_build cb ON sab.build = cb.build JOIN sn_devops_commit c ON cb.commit = c.sys_id JOIN DevItems i ON c.work_item = i.sys_id
LEFT JOIN sys_user us ON i.assigned_to = us.sys_id LEFT JOIN cmdb_ci ci ON i.cmdb_ci = ci.sys_id LEFT JOIN sys_user_group grp ON i.assignment_group = grp.sys_id
WHERE se.stage_name = 'Production' -- *** Placeholder: Adjust stage name ***
UNION ALL
-- 14. Deployed to Production
SELECT i.number, 'Deployed to Production', se.end_time, 'ServiceNow DevOps', GETDATE(), us.name, i.priority, i.state, ci.name, i.sys_class_name, grp.name, i.cycle_time_seconds, CAST(0 AS BIT)
FROM sn_devops_step_execution se JOIN sn_devops_artifact_build sab ON se.deployable = sab.sys_id JOIN sn_devops_commit_build cb ON sab.build = cb.build JOIN sn_devops_commit c ON cb.commit = c.sys_id JOIN DevItems i ON c.work_item = i.sys_id
LEFT JOIN sys_user us ON i.assigned_to = us.sys_id LEFT JOIN cmdb_ci ci ON i.cmdb_ci = ci.sys_id LEFT JOIN sys_user_group grp ON i.assignment_group = grp.sys_id
WHERE se.stage_name = 'Production' AND se.result = 'SUCCESS' -- *** Placeholder: Adjust stage name and result value ***
UNION ALL
-- 15. Deployment Failed
SELECT i.number, 'Deployment Failed', se.end_time, 'ServiceNow DevOps', GETDATE(), us.name, i.priority, i.state, ci.name, i.sys_class_name, grp.name, i.cycle_time_seconds, CAST(0 AS BIT)
FROM sn_devops_step_execution se JOIN sn_devops_artifact_build sab ON se.deployable = sab.sys_id JOIN sn_devops_commit_build cb ON sab.build = cb.build JOIN sn_devops_commit c ON cb.commit = c.sys_id JOIN DevItems i ON c.work_item = i.sys_id
LEFT JOIN sys_user us ON i.assigned_to = us.sys_id LEFT JOIN cmdb_ci ci ON i.cmdb_ci = ci.sys_id LEFT JOIN sys_user_group grp ON i.assignment_group = grp.sys_id
WHERE se.stage_name = 'Production' AND se.result = 'FAILURE' -- *** Placeholder: Adjust stage name and result value ***
UNION ALL
-- 16. Development Item Cancelled
SELECT i.number, 'Development Item Cancelled', sc.change_time, 'ServiceNow DevOps', GETDATE(), us.name, i.priority, sc.newvalue, ci.name, i.sys_class_name, grp.name, i.cycle_time_seconds, CAST(0 AS BIT)
FROM StateChanges sc JOIN DevItems i ON sc.item_sys_id = i.sys_id
LEFT JOIN sys_user us ON i.assigned_to = us.sys_id LEFT JOIN cmdb_ci ci ON i.cmdb_ci = ci.sys_id LEFT JOIN sys_user_group grp ON i.assignment_group = grp.sys_id
WHERE sc.newvalue = '[Your ''Cancelled'' State Value]'; -- *** Placeholder: Adjust state value *** Başlamaya hazır mısınız?
Yazılım Geliştirme Yaşam Döngünüzü bugün dönüştürmeye başlayın. Gizli verimsizlikleri ortaya çıkarmak ve sürekli iyileştirmeyi desteklemek için bu veri şablonunu kullanın.
Gecikmeyin: Yazılım geliştirme yaşam döngünüzü bugün optimize edin
Verimsizlikleri kesin olarak belirleyerek SDLC çevrim sürenizi %30 veya daha fazla azaltın.
Kredi kartı gerekmez, optimizasyona bugün başlayın