5 Ağustos 2019 Pazartesi
AZURE DEVOPS SONARQUBE GRADLEW BUILD ( android mobile build gradlew gradle )
Build Definiton
Build definition Variable settings
Sonarqube Prepare analysis Configuration Task Settings
Gradle build task settings 1/2
Gradle build task settings 2/2
12 Ekim 2018 Cuma
Could not add application insights to project.
<?xml version="1.0" encoding="utf-8"?>
ERROR
System.IO.InvalidDataException:
An error occurred while applying transformation to 'web.config' in project 'YnaWebApp' No element in the source document matches '/configuration/system.web'
---> Microsoft.Web.XmlTransform.XmlNodeException: No element in the source document matches '/configuration/system.web'
at Microsoft.Web.XmlTransform.XmlTransformationLogger.LogErrorFromException(Exception ex)
at Microsoft.Web.XmlTransform.XmlTransformation.Apply(XmlDocument xmlTarget)
at NuGet.ProjectManagement.XdtTransformer.<PerformXdtTransformAsync>d__2.MoveNext()
19 Nisan 2018 Perşembe
VSTS - BITNAMI SONARQUBE INTEGRATION WITH HTTPS ( SSL ) SUPPORT
29 Kasım 2017 Çarşamba
SCRUM WORKSHOP ÇALIŞMA NOTLARIM
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan
Scrumà Inovasyon ve sanat içeren yazılım sektörü için uygundur.
Proje ekibi: Eğitimli, sosyal beklentisi olan, başarılı olmaya odaklı, potansiyelinin engellenmemesi gereken bir topluluktur.
Değişiklikleri ne kadar çabuk kabul eder ve benimsersek o kadar çabuk değer üretiriz.
PLANLAR TAŞA YAZILMAZ.
PLANA TAPILMAZ.
⚠ Hata yapıldığında utanç duyulan bir sistem yaratmamak gerekir.
USER STORY
àDEFINITION OF READY
Madde yazıldı. Analizi, iş değeri belirlendi. Talebe başlamak için beklenen bir şey yok. Ekip arkadaşıma ve PO ya sorup devam edebileceğim derinlik yeterlidir.
à DEFINITON OF DONE
Build, Test, Reviev, Otomatik Testler, Sonar, Güvenlik à DONE
BU TANIMLAR MUTLAKA YAPILMALI. TÜM PAYDAŞLAR BU TANIMDA EL SIKIŞMALI VE BU TANIM GÜNCEL TUTULMALIDIR.
Theory of Constraints 3 Bottle Demo to Improve Flow
https://www.youtube.com/watch?v=PMiTVUDiNQ4
SCRUM SERENOMİLERİ
SABAH TOPLANTILARI: àFOCUS ON SPRINT GOAL
Toplantıdan önce ekip üyelerinin maddelerinin son halini TFS de güncellenmesi güzel bir pratiktir. Kalan iş BURNDOWN chart'ın güncel olmasını sağlar.
Hedefe koşarken önümüzdeki engeller nelerdir. Nasıl kaldırırız? Bunlar konuşulmalıdır.
Scrum Master (SM'ye) bu konuda en az 1 madde çıkması lazım.
Sen bu işle uğraşırsan sprint yetişmez. Buna bakalım.
Önemli olan sprintin yetişmesi önündeki engellerin kaldırılmasıdır. Sprint'e koşan faaliyetler konuşulur.
"Sprint için ne yaptım, ne yapacağım, kime bu yolda destek oldum" konuşulur.
Uzayan konu daha sonra ilgililerin kendi arasında halletmesi için kesilir. Sonra onlar devam edebilir.
Sabah toplantıları 15 dakikayı kesinlikle geçmemelidir.
Bir nedenden dolayı beklemeye geçen kişiler, kendi gündeminden veya düşük öncelikli bir işle değil, MEVCUT SPRINT PLANINA dahil bir iş ile uğraşmalıdır. Aksi halde sprint hedefi tutmaz.
SPRINT PLANLAMA TOPLANTISI
Hafta başına 2 saat planlama faaliyeti olmalıdır. Backlog'dan sıradan başlanarak o sprinte alınacak maddeler seçilir.
RETROSPECTIVE TOPLANTISI
PO bulunmaz.
SM ye bir KAIZEN çıkarmalıdır. Bu KAIZEN sonucu yapılacak değişiklik bir sonraki sprinte PBI olarak yansıtılabilir. SM bunu en tepeye koyabilir.
Daha sonra işe yaradı mı yaramadı mı değerlendirilir.
Devreye alımdan sonra değişikliklerin etkisi ne oldu? Hata üretiyor muyuz? Bir sonraki sprinte neleri daha iyi yapabiliriz.
Bu toplantıları stressiz bir ortamda belki yemek söyleyerek, iyileştirme amaçlı yapmak lazım. Ekip kendi içinde rahatça öz eleştiri yapabilmelidir.
SPRINT PERFORMANSI?
Velocity (ekibin planladığı sprintte çıkacak maddelerin iş değeri toplamı) değerinin artırılması performans hedefi olarak verilirse kalite düşebilir. Bununla birlikte ekip tahminleme çalışmasında otomatik olarak maddelere yüksek velocity değerleri verme eğilimine girebilir. Sonuçta çıkan iş aynı olacaktır ama velocity istatistiği bozulmuş olacak. Yani bu işe yaramaz. Önemli olan verimliği düşüren tüm engellerin kaldırılmasıdır.
Önceki sprintte tüm çalışmaya rağmen tamamlanamayan bir USER STORY varsa, ekip planladığı kadarını bir nedenden yapamadıysa, yeni sprintte yapabileceğimiz kadar alalım. Başarılı spirintten sonra bir sonrakinde yapabileceğimiz kadar tekrar planlarız. Yapamayacağımızı bile bile fazla madde planlamanın hiçbir anlamı yoktur. Önemli olan ortadan engelleri kaldırarak, daha verimli bir şekilde sprint amacına yönelik çalışmaktır.
Her takımın kendi hızı vardır. Takımlar arası VELOCITY REKABETİ / karşılaştırması yanlıştır. BUG lar veya diğer olumsuz durumlar işler için kişisel sorumlu aramak ve performans sistemine yansıtmaya çalışmak takım ruhuna zarar verecektir. Cadı avına çıkılmamalıdır.
⚠ BİR SPRINT NASIL "BAŞARISIZ" OLUR?
Given that each Sprint is an experiment and Scrum is an empirical process:
An unsuccessful Sprint is one where at the end we have not learned anything. We did not Inspect and Adapt the results for customizing the Product and Processes.
https://www.scrum.org/resources/blog/what-failed-sprint
BUG CAP
Takımın backlog undaki / havuzundaki açık hata sayısı bir üst sınır koyuyoruz. 30 diyelim. BUG sayısı 30'a ulaştığında ekip kayıt kalemi bırakıp (sprintteki "feature" geliştirimini bırakıp) hata kayıtlarını azaltıyor. Bu isteyemeyen bir durum olduğu için ekip hata sayılarını bu sınırın altımda tutma eğilimine giriyor. Hata adetlerimiz her zaman mümkün olduğunda az olmalıdır.
⚠ TASK/CONTEXT SWITCHING
Kaçınmamız gereken bir durumdur. Bitirebileceğimiz kadar is alalım. Birden fazla isin yarım yarım ilerlemesindense teker teker yapılıp bitirilmesi daha hızlı sürüyor.
--> Bir günden fazla suren TASK olmamalıdır
--> TASK ları hep back log un tepesinden alalım. En değerli iş en önce yapılmalıdır.
GÜÇLÜ PIPELINE, AGILE PROJE
Kod silebilmek yazmaktan daha zordur. Kolayca kod silebilecek güçlü bir pipeline kurmak önemlidir.
Bundan kasıt şudur: unit testler, integration ve ui testlerin olmalı ki kod üzerinde değişiklik yapmaktan veya silmekten çekinmeyelim.
Root Cause Analysis From Juran
https://www.youtube.com/watch?v=IETtnK7gzlE
Fibonacci Sequence in Nature
https://www.youtube.com/watch?v=nt2OlMAJj6o
Scaled Agiled Framework (Enterprise için uyarlanmış bir framework)
http://www.scaledagileframework.com/
Acil / Araya Giren Maddeler
Bunların etiketlenmesi, daha sonra ekip ve SM tarafından etki analizinin yapılması gerekir. Süreç neden araya giren talep üretiyor. Mutlaka bir yerdeki sıkıntıya işaret edecektir. Acil işler kesinti yaratır. Bunların da iyi yönetilmesi gerekir. Bu maddeler için nöbetçi atanabilir.
Acil Talepler için BUFFER
Sprint planında bu gibi maddeler için BUFFER zaman koymak yaygın bir yaklaşımdır. BUFFER dan kullanılmaz ise (mevcut sprintte her şey yolunda ise) yerine bir sonraki sprintten madde çekilebilir. Motivasyon yükselten bir şeydir.
Acil istekler veya BUG lar için nöbetçi de tanımlanabilir. Ekibin toplama TASK SWITCHING kaybını azaltmış oluruz.
⚠ EMAIL HUNTING
Kim ne demişti kendimize kanıt aramak yerine arayıp konuşalım sorunu halledelim. Analiz ve test uzmanları ekibin bir parçası olabilirler. İletişimin artması beklemeleri azaltacaktır.
⚠ BROOKS LAW
Geciken projeye adam almak işleri kötüleştirir.
CHANGE MANAGEMENT
https://www.prosci.com/adkar/adkar-model
Awareness of the business reasons for change. Awareness is the goal/outcome of early communications related to an organizational change
Desire to engage and participate in the change. Desire is the goal/outcome of sponsorship and resistance management
Knowledge about how to change. Knowledge is the goal/outcome of training and coaching
Ability to realize or implement the change at the required performance level. Ability is the goal/outcome of additional coaching, practice and time
Reinforcement to ensure change sticks. Reinforcement is the goal/outcome of adoption measurement, corrective action and recognition of successful change
Value Stream Mapping (VSM)
Süreç iyileştirme yöntemidir.
Ürünün kodlanmasından müşteriye çıkmasına kadar olan süreç sondan başa doğru şemaya aktarılır. Bir işin toplamda beklemeler ile kadar sürdüğü, aslında asıl işin ne kadar sürdüğü karşılaştırılır. Manuel yapılan işler ve beklemelerin tespitine yarar.
Her kırmızı (bekleme/manuel iş) için bir yorum yapmak gerekir.
Kitap
- Implementing Lean Software Development: From Concept to Cash (Addison-Wesley Signature)
- The Toyota Way: 14 Management Principles from the World's Greatest Manufacturer
MAKİGAMİ (Roll of Paper)
Bir Başka Süreç İyileştirme Yöntemidir.
http://www.makigami.info/
NOTLAR
➡ Bir metodun ismine karar verdiğin anda işin (kodun) yarısını yazmış oluyorsun.
➡ https://devopsgames.com/
KAYNAKLAR
--> Scrum eğitimi
http://scrumtrainingseries.com/
--> Hızlıca okumak ve fikir sahibi olmak için.
https://34slpa7u66f159hfp1fhl9aur1-wpengine.netdna-ssl.com/wp-content/uploads/2014/06/The-Basics-of-Scrum.pdf
-->Bütün dokümantasyon
www.scrumguides.org/docs/scrumguide/v2017/2017-Scrum-Guide-US.pdf#zoom=100
-->Spotify
http://www.full-stackagile.com/2016/02/14/team-organisation-squads-chapters-tribes-and-guilds/
https://labs.spotify.com/2014/03/27/spotify-engineering-culture-part-1/ (part-2 de var)
23 Mart 2015 Pazartesi
Entityframework Include İşleminde Many Tablo Üzerinden Dolaşım
Selamlar,
EF Include kullanımı ile join sorgular üretip, nesneleri baştan yükleyebiliyoruz.
Genellikle sorulan kısım; 1-n bir nesneye include tanımladım, ancak hedef nesnede yer alan 1-1 entity için include nasıl tanımlayabilirim şeklinde oluyor.
Çözümlü örnek şu şekilde;
Modelimiz:
var query = ctx.Counties.Include(x => x.Cities.Select(c => c.State))
ilgili linkler:
İyi çalışmalar
Serkan
4 Mart 2015 Çarşamba
21 Ekim 2014 Salı
Visual Studio 2013 Task host node exited prematurely.
Derleme yaparken aşağıdaki hata geliyor ise
ERROR C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(2348,5): Task host node exited prematurely. Diagnostic information may be found in files in the temporary files directory named MSBuild_*.failure.txt.
ERROR C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(2366,7): The "GenerateResource" task's outputs could not be retrieved from the "FilesWritten" parameter. Object does not match target type.
C:\Program Files (x86)\MSBuild\12.0\Bin\MSBuild.exe dosyasını C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe klasorune kopyalıyoruz.