agile2017 - trends in agile software development

46
Agile2017: Trends in Agile Software Development Amr Noaman Principal Consultant, Agile Academy

Upload: amr-noaman

Post on 21-Jan-2018

329 views

Category:

Engineering


2 download

TRANSCRIPT

Agile2017:TrendsinAgileSoftwareDevelopment

AmrNoamanPrincipalConsultant,AgileAcademy

MybookandmysessionatAgile2017

• MysessionwasaboutRefactoringtoCleanCode.

• PresentedanupdatedversionoftheRefactoringRoadmap,whichIfirstpresentedin2013atthesameconference.

• Registeronthebookpage:https://leanpub.com/RefactoringToCleanCode

TheSDLC- ChangingtheWorldofWorktoCreateBusinessAgilityMattAnderson,StephenDenning,AhmedSidky

TheEntrepreneurialOrganizationatScale

Copernicus

Galileo

Kepler

The Copernican Revolution in Management

Firm

Customer

Customer

Firm Firm X

Firm Y

The future is already here – its just not very evenly distributed

Delighting Customers

FidelityInvestments,restructuredthecompanydepartmentsaroundtheircustomerpersonas!

TheydonothaveIT,HR,Finance,andmarketinganymore.Instead,theyhaveadepartmentwhichservesthisspecificpersona:)

Descaling the Work

Usingvalue-streammappingtomapadayofanemployee,forthesakeofmakinghisworkdaybetterandcreatemoretimeforhomeandpersonallife.

Atruestoryofacompanywhichmanagedtoreducetheturnoverratefrom40%toaverylowpercentage(couldn'tbedisclosed)

Enterprise-wide Agility

HowtogofromZerotoSixtyin19years- AcceleratedlearningonthepathtoAgileWoodyZuill,inventorof#NoEstimates and#MobProgramming

A very inspiring diagram. The paper's title is: Nobody ever gets credit for fixing problems that never happened!

This affects our traditional ways with appraisal and improvement

http://web.mit.edu/nelsonr/www/Repenning=Sterman_CMR_su01_.pdf

#MobProgramming isn'tacauseforteamsuccess.Rather,itemergedwhileateamwastryingtoworkwelltogether

KnowingwhatbadcodelookslikeLlewellynFalco

PlayalongatSlides:llewellynfalco.blogspot.com/p/sparrow-decks.html

Phonegame:bit.ly/sparrowdecks

@LlewellynFalco

DoSomethingEvilTo

Database()

Foo()ParseXml

AndStoreFlightToDatabase

AndLocalCacheAndStart

Processing()

StoreFlightToDatabaseAndStart

Processing()

BeginTrackingFlight()

IntentHonest Honest&Complete

DoestheRightThing Domain

Abstraction

MonitoringPanel

.Add(flight)

The 7 stages of naming

StartStructural

Refactoring

By ArloBelshee

Missing

Nonsense

@LlewellynFalco

Foo()Missing

Nonsense

// If a license key has been located...if (licenseKey != null) {

// DecryptlicenseKey = ActiproLicenseProvider.DecryptString(licenseKey, encryptionKey);

// Find the licensee and license keystring[] licenseKeyData = licenseKey.Split(new Char[] { ';' });if (BrowserInteropHelper.IsBrowserHosted) {

// XBAP licensing uses required assembly / licensee / license key

// Ensure that the specified assembly is in the AppDomainstring requiredAssemblyName = licenseKeyData[0].Trim();Assembly[] assemblies = AppDomain.CurrentDomain.GetAssemblies();bool assemblyFound = false;foreach (Assembly loadedAssembly in assemblies) {

if (loadedAssembly.FullName.StartsWith(requiredAssemblyName + ",", StringCompariassemblyFound = true;break;

}}

if ((assemblyFound) && (plainTextLicensee == licenseKeyData[2]) && (String.Compare// Assembly was found so use license datalicensee = licenseKeyData[2];licenseKey = licenseKeyData[1];sourceLocation = ActiproLicenseSourceLocation.AssemblySavedContext;

}}else {

// Regular licensing just uses licensee / license keylicensee = licenseKeyData[1];licenseKey = licenseKeyData[0];sourceLocation = ActiproLicenseSourceLocation.AssemblySavedContext;

}

The 7 stages of naming

@LlewellynFalco

DoSomethingEvilTo

Database()Honest

The 7 stages of naming

Nonsense Foo()

@LlewellynFalco

ParseXmlAndStoreFlightToDatabase

AndLocalCacheAndStart

Processing()

The 7 stages of naming

Honest Honest&Complete

DoSomethingEvilTo

Database()

@LlewellynFalco

StoreFlightToDatabaseAndStart

Processing()

The 7 stages of naming

Honest&Complete

DoestheRightThing

StartStructural

Refactoring

ParseXmlAndStoreFlightToDatabase

AndLocalCacheAndStart

Processing()

@LlewellynFalco

The 7 stages of naming

IntentDoestheRightThing

StoreFlightToDatabaseAndStart

Processing()

BeginTrackingFlight()

@LlewellynFalco

The 7 stages of naming

Intent DomainAbstraction

BeginTrackingFlight()

MonitoringPanel

.Add(flight)

@LlewellynFalco

DoSomethingEvilTo

Database()

Foo()ParseXml

AndStoreFlightToDatabase

AndLocalCacheAndStart

Processing()

StoreFlightToDatabaseAndStart

Processing()

BeginTrackingFlight()

IntentHonest Honest&Complete

DoestheRightThing Domain

Abstraction

MonitoringPanel

.Add(flight)

The 7 stages of naming

StartStructural

Refactoring

By ArloBelshee

Missing

Nonsense

ScaffoldingalegacyappwithBDDscenariosusingSpecFlow/CucumberGasparNagy,authorofSpecFlow

Copyright © Gaspar NagyCopyright © Gaspar Nagy

Pic: http://gasparnagy.com/2017/02/balancing-scenarios-and-unit-tests-case-study-with-specflow/

Timeout Scenario

Srv-UI

Functional

Usability

Strategic

Edge case

Argument check

Timeout Test

Happy Path

Copyright © Gaspar NagyCopyright © Gaspar Nagy

Scenario

Srv-UI

Functional

Usability

Strategic

Edge case

Argument check

Ext call timeout

Forrás: http://gasparnagy.com/2017/02/balancing-scenarios-and-unit-tests-case-study-with-specflow/

TransformationalInnovation:HowAgileMethodscanBenefitfromSystemsThinkingKishau Rogers

Iceberg Model! Address the real-problem by

thinking beyond the event-level

! Identify opportunities to deliver the highest value

! Clarifying the real issue drives design

CASE: Elevate The Help desk

Your discovery team are the thinkers responsible for

identifying patterns, structural issues and mental models, not

responding to “events”

• TheIcebergModel,anexcellentguidingtoolforrootcauseanalysisinasystemicway.

• Theideaistodirectyourthinkingtowardsdeeperfundamentalproblemsinyoursystembeforeyourushandimplementasolutionforashallowproblem.

• "Asoftwareengineerisnotacoderordeveloper,butratheraproblemsolver"

PsychologyofCoaching:UnderstandingScienceofChangePavelDabrytski

Implementing Agile is oddly similar to helping people quit smoking or start eating healthy…

Neuroplasticity

chemical

structural

Brann, Amy. Neuroscience for Coaches : How to Use the Latest Insights for the Benefit of Your Clients. London ; Philadelphia, PA, Kogan Page, 2014.

Practice 2: Reflections

Simple reflections

Amplified reflections

Double-sided reflections

Shifted-focus reflectionsMoore, Margaret. Coaching Psychology Manual. 2nd ed., Wolters Kluwer, 2016.

Simple Reflections

Client:How would you know what I am going through? You’ve probably never even done an Agile transformation in an organization of our size.

Interviewer:You feel that I don’t have enough expertise to help you.

Amplified Reflections

Client:How would you know what I am going through? You’ve probably never even done an Agile transformation in an organization of our size.

Interviewer:You feel that it is impossible for your company to implement Agile.

Double-Sided ReflectionsClient:This company is gigantic, and it is full of red tape. It will probably take too much effort to get the full benefits of Scrum. We might need to do a hybrid approach.

Interviewer:You know that it will be a challenge to implement Agile in this company, and you also know it is important to increase your teams’ efficiency.

Shifted-Focus ReflectionsClient:You are an expert in the field. I pay you. Now, tell me what I have to do.

Interviewer:I am more interested in what you want to do. I’d like to find a way to help you get through this situation. Tell me what is important to you.

Shifted-Focus ReflectionsClient:You are an expert in the field. I pay you. Now, tell me what I have to do.

Interviewer:I am more interested in what you want to do. I’d like to find a way to help you get through this situation. Tell me what is important to you.

ContinuousDeliveryinAgileJezz Humble,AuthorofContinuousDelivery

HighPerformanceviaPsychologicalSafetyJoshuaKerievsky,HeidiHelfand

Psychologicalsafety…

WhyandhowwearemovingbeyondtheProductOwnerMindsetatRiotGamesMichaelRobillard,AhmedSidky