agile2017 - trends in agile software development
TRANSCRIPT
MybookandmysessionatAgile2017
• MysessionwasaboutRefactoringtoCleanCode.
• PresentedanupdatedversionoftheRefactoringRoadmap,whichIfirstpresentedin2013atthesameconference.
• Registeronthebookpage:https://leanpub.com/RefactoringToCleanCode
TheSDLC- ChangingtheWorldofWorktoCreateBusinessAgilityMattAnderson,StephenDenning,AhmedSidky
TheEntrepreneurialOrganizationatScale
FidelityInvestments,restructuredthecompanydepartmentsaroundtheircustomerpersonas!
TheydonothaveIT,HR,Finance,andmarketinganymore.Instead,theyhaveadepartmentwhichservesthisspecificpersona:)
Usingvalue-streammappingtomapadayofanemployee,forthesakeofmakinghisworkdaybetterandcreatemoretimeforhomeandpersonallife.
Atruestoryofacompanywhichmanagedtoreducetheturnoverratefrom40%toaverylowpercentage(couldn'tbedisclosed)
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
@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
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
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/
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"
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.