SlideShare a Scribd company logo
1 of 27
Download to read offline
Infrastructure code in agile  software development Elad Sofer – Agile coach blog.thescrumster.com [email_address] Twitter:  @ eladsof
What is infrastructure code? ,[object Object]
Infrastructure code is Good! ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Software infrastructure  The traditional way - Common problems
#1 - It’s never DONE
#2 - Too big to handle
#3 – Who’s code is this?
#4 – Becomes the bottleneck
#5 – Too much functionality
#6 – House of cards
#7 – Hero culture
#8 –  Component Teams Component A Component B Component C Infrastructure
#8 –  Component Teams Release feature list: Feature 1 – A(20%) B(30%) I(50%) Feature 2 – A(40%) B(20%) I(40%) Feature 3 – B(50%) C(10%), I(40%) Feature 4 – A(40%) C(10%), I(50%)  Feature 5 – A(20%) C(50%) I(30%) Total Effort needed: A – 120 B – 100 C – 70 D – 210 Component A Component B Component C Infrastructure
#8 –  Component Teams ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Software infrastructure  The agile way
Agile s/w development ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Incremental development
Simplicity
Shared code ownership.
Feature areas UI Business logic Data model Infrastructure Security related Features User admin related features Item CRUD   related features Reporting related features
Feature teams ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Business results oriented.
Infrastructure grows
Collaborative.
spiral (waterfall)  vs.  iterative
Balance discipline and flexibility.  ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
 

More Related Content

What's hot

GlobalIDGroup_MarkCutter
GlobalIDGroup_MarkCutterGlobalIDGroup_MarkCutter
GlobalIDGroup_MarkCutterRahul Vats
 
DevOps & Technical Agility: From Theory to Practice
DevOps & Technical Agility: From Theory to PracticeDevOps & Technical Agility: From Theory to Practice
DevOps & Technical Agility: From Theory to PracticeLemi Orhan Ergin
 
Aspect oriented architecture
Aspect oriented architecture Aspect oriented architecture
Aspect oriented architecture tigneb
 
Getting Started With QA Automation
Getting Started With QA AutomationGetting Started With QA Automation
Getting Started With QA AutomationGiovanni Scerra ☃
 
20080531 Intro To Dependency Injection & Inversion Of Control
20080531 Intro To Dependency Injection & Inversion Of Control20080531 Intro To Dependency Injection & Inversion Of Control
20080531 Intro To Dependency Injection & Inversion Of Controldonnfelker
 
Some Myths in Software Development
Some Myths in Software DevelopmentSome Myths in Software Development
Some Myths in Software Developmentbryanbibat
 
Onion Architecture
Onion ArchitectureOnion Architecture
Onion Architecturematthidinger
 
Blue Prism Top Interview Questions | Edureka
Blue Prism Top Interview Questions | EdurekaBlue Prism Top Interview Questions | Edureka
Blue Prism Top Interview Questions | EdurekaEdureka!
 
Rebooting APIs at scale
Rebooting APIs at scaleRebooting APIs at scale
Rebooting APIs at scaleRahul Dighe
 
Introduction to Aspect Oriented Programming
Introduction to Aspect Oriented ProgrammingIntroduction to Aspect Oriented Programming
Introduction to Aspect Oriented ProgrammingYan Cui
 
Scrum Events and Artifacts in Action
Scrum Events and Artifacts in ActionScrum Events and Artifacts in Action
Scrum Events and Artifacts in ActionLemi Orhan Ergin
 
How To Become An Excellent Software Engineer, by Lee Bob Black
How To Become An Excellent Software Engineer, by Lee Bob BlackHow To Become An Excellent Software Engineer, by Lee Bob Black
How To Become An Excellent Software Engineer, by Lee Bob BlackSkilledUp
 
Idol software presentation
Idol software presentationIdol software presentation
Idol software presentationdarleneputnam
 
Мобильная разработка. Между Сциллой и Харибдой. Native, hybrid or cross platf...
Мобильная разработка. Между Сциллой и Харибдой. Native, hybrid or cross platf...Мобильная разработка. Между Сциллой и Харибдой. Native, hybrid or cross platf...
Мобильная разработка. Между Сциллой и Харибдой. Native, hybrid or cross platf...Artjoker
 
Test Automation - Insights Into Frameworks by Anup Patnaik, QA InfoTech
Test Automation - Insights Into Frameworks by Anup Patnaik, QA InfoTechTest Automation - Insights Into Frameworks by Anup Patnaik, QA InfoTech
Test Automation - Insights Into Frameworks by Anup Patnaik, QA InfoTechQA InfoTech
 

What's hot (20)

GlobalIDGroup_MarkCutter
GlobalIDGroup_MarkCutterGlobalIDGroup_MarkCutter
GlobalIDGroup_MarkCutter
 
DevOps & Technical Agility: From Theory to Practice
DevOps & Technical Agility: From Theory to PracticeDevOps & Technical Agility: From Theory to Practice
DevOps & Technical Agility: From Theory to Practice
 
Sra1(swt) ppt2
Sra1(swt) ppt2Sra1(swt) ppt2
Sra1(swt) ppt2
 
Aspect oriented architecture
Aspect oriented architecture Aspect oriented architecture
Aspect oriented architecture
 
Getting Started With QA Automation
Getting Started With QA AutomationGetting Started With QA Automation
Getting Started With QA Automation
 
20080531 Intro To Dependency Injection & Inversion Of Control
20080531 Intro To Dependency Injection & Inversion Of Control20080531 Intro To Dependency Injection & Inversion Of Control
20080531 Intro To Dependency Injection & Inversion Of Control
 
Some Myths in Software Development
Some Myths in Software DevelopmentSome Myths in Software Development
Some Myths in Software Development
 
.NET Career Direction
.NET Career Direction.NET Career Direction
.NET Career Direction
 
Onion Architecture
Onion ArchitectureOnion Architecture
Onion Architecture
 
Post-REST Manifesto
Post-REST ManifestoPost-REST Manifesto
Post-REST Manifesto
 
Harmony in API Design
Harmony in API DesignHarmony in API Design
Harmony in API Design
 
Blue Prism Top Interview Questions | Edureka
Blue Prism Top Interview Questions | EdurekaBlue Prism Top Interview Questions | Edureka
Blue Prism Top Interview Questions | Edureka
 
Rebooting APIs at scale
Rebooting APIs at scaleRebooting APIs at scale
Rebooting APIs at scale
 
1. Introduction
1. Introduction1. Introduction
1. Introduction
 
Introduction to Aspect Oriented Programming
Introduction to Aspect Oriented ProgrammingIntroduction to Aspect Oriented Programming
Introduction to Aspect Oriented Programming
 
Scrum Events and Artifacts in Action
Scrum Events and Artifacts in ActionScrum Events and Artifacts in Action
Scrum Events and Artifacts in Action
 
How To Become An Excellent Software Engineer, by Lee Bob Black
How To Become An Excellent Software Engineer, by Lee Bob BlackHow To Become An Excellent Software Engineer, by Lee Bob Black
How To Become An Excellent Software Engineer, by Lee Bob Black
 
Idol software presentation
Idol software presentationIdol software presentation
Idol software presentation
 
Мобильная разработка. Между Сциллой и Харибдой. Native, hybrid or cross platf...
Мобильная разработка. Между Сциллой и Харибдой. Native, hybrid or cross platf...Мобильная разработка. Между Сциллой и Харибдой. Native, hybrid or cross platf...
Мобильная разработка. Между Сциллой и Харибдой. Native, hybrid or cross platf...
 
Test Automation - Insights Into Frameworks by Anup Patnaik, QA InfoTech
Test Automation - Insights Into Frameworks by Anup Patnaik, QA InfoTechTest Automation - Insights Into Frameworks by Anup Patnaik, QA InfoTech
Test Automation - Insights Into Frameworks by Anup Patnaik, QA InfoTech
 

Viewers also liked

SE_conf2 Tomer and Ram final
SE_conf2 Tomer and Ram finalSE_conf2 Tomer and Ram final
SE_conf2 Tomer and Ram finalTomer Peretz
 
Domain specific languages
Domain specific languagesDomain specific languages
Domain specific languagesDror Helper
 
Leading agile teams
Leading agile teamsLeading agile teams
Leading agile teamsElad Sofer
 
Introduction to Agile & scrum
Introduction to Agile & scrumIntroduction to Agile & scrum
Introduction to Agile & scrumElad Sofer
 
Scrum intro ILTechTalks
Scrum intro ILTechTalksScrum intro ILTechTalks
Scrum intro ILTechTalksElad Sofer
 
Introduction to Agile & scrum
Introduction to Agile & scrumIntroduction to Agile & scrum
Introduction to Agile & scrumElad Sofer
 
It's More complex than you think
It's More complex than you thinkIt's More complex than you think
It's More complex than you thinkElad Sofer
 
More with LeSS - short intro
More with LeSS - short introMore with LeSS - short intro
More with LeSS - short introElad Sofer
 
Feedback - The Secret ingredient of success
Feedback - The Secret ingredient of successFeedback - The Secret ingredient of success
Feedback - The Secret ingredient of successElad Sofer
 
Why move to Scrum ?
Why move to Scrum ?Why move to Scrum ?
Why move to Scrum ?Elad Sofer
 
Scrum training day 1
Scrum training day 1Scrum training day 1
Scrum training day 1Elad Sofer
 
Scrum training day 2
Scrum training day 2Scrum training day 2
Scrum training day 2Elad Sofer
 
Less intro workshop
Less intro workshopLess intro workshop
Less intro workshopElad Sofer
 
Lean sw development il tech-talks
Lean sw development   il tech-talksLean sw development   il tech-talks
Lean sw development il tech-talksElad Sofer
 
Agile estimation and planning
Agile estimation and planning Agile estimation and planning
Agile estimation and planning Elad Sofer
 
Practical-Agile Product owner workshop
Practical-Agile Product owner workshopPractical-Agile Product owner workshop
Practical-Agile Product owner workshopElad Sofer
 
Advanced Scrum master workshop
Advanced Scrum master workshopAdvanced Scrum master workshop
Advanced Scrum master workshopElad Sofer
 
Get rid of boring retrospectives
Get rid of boring retrospectivesGet rid of boring retrospectives
Get rid of boring retrospectivesElad Sofer
 

Viewers also liked (19)

SE_conf2 Tomer and Ram final
SE_conf2 Tomer and Ram finalSE_conf2 Tomer and Ram final
SE_conf2 Tomer and Ram final
 
Domain specific languages
Domain specific languagesDomain specific languages
Domain specific languages
 
Leading agile teams
Leading agile teamsLeading agile teams
Leading agile teams
 
Introduction to Agile & scrum
Introduction to Agile & scrumIntroduction to Agile & scrum
Introduction to Agile & scrum
 
Scrum intro ILTechTalks
Scrum intro ILTechTalksScrum intro ILTechTalks
Scrum intro ILTechTalks
 
Introduction to Agile & scrum
Introduction to Agile & scrumIntroduction to Agile & scrum
Introduction to Agile & scrum
 
It's More complex than you think
It's More complex than you thinkIt's More complex than you think
It's More complex than you think
 
More with LeSS - short intro
More with LeSS - short introMore with LeSS - short intro
More with LeSS - short intro
 
Feedback - The Secret ingredient of success
Feedback - The Secret ingredient of successFeedback - The Secret ingredient of success
Feedback - The Secret ingredient of success
 
Why move to Scrum ?
Why move to Scrum ?Why move to Scrum ?
Why move to Scrum ?
 
Scrum intro
Scrum intro Scrum intro
Scrum intro
 
Scrum training day 1
Scrum training day 1Scrum training day 1
Scrum training day 1
 
Scrum training day 2
Scrum training day 2Scrum training day 2
Scrum training day 2
 
Less intro workshop
Less intro workshopLess intro workshop
Less intro workshop
 
Lean sw development il tech-talks
Lean sw development   il tech-talksLean sw development   il tech-talks
Lean sw development il tech-talks
 
Agile estimation and planning
Agile estimation and planning Agile estimation and planning
Agile estimation and planning
 
Practical-Agile Product owner workshop
Practical-Agile Product owner workshopPractical-Agile Product owner workshop
Practical-Agile Product owner workshop
 
Advanced Scrum master workshop
Advanced Scrum master workshopAdvanced Scrum master workshop
Advanced Scrum master workshop
 
Get rid of boring retrospectives
Get rid of boring retrospectivesGet rid of boring retrospectives
Get rid of boring retrospectives
 

Similar to Infrastructure code in Agile software development

20070921 Uni Softwareengineering
20070921 Uni Softwareengineering20070921 Uni Softwareengineering
20070921 Uni SoftwareengineeringTony Bibbs
 
Agile Business Intelligence
Agile Business IntelligenceAgile Business Intelligence
Agile Business IntelligenceDavid Portnoy
 
Clean architecture with asp.net core
Clean architecture with asp.net coreClean architecture with asp.net core
Clean architecture with asp.net coreSam Nasr, MCSA, MVP
 
Accelerate your Application Delivery with DevOps and Microservices
Accelerate your Application Delivery with DevOps and MicroservicesAccelerate your Application Delivery with DevOps and Microservices
Accelerate your Application Delivery with DevOps and MicroservicesAmazon Web Services
 
Software Development Standard Operating Procedure
Software Development Standard Operating Procedure Software Development Standard Operating Procedure
Software Development Standard Operating Procedure rupeshchanchal
 
apidays LIVE Paris 2021 - APIs - How did we get here and where are we going n...
apidays LIVE Paris 2021 - APIs - How did we get here and where are we going n...apidays LIVE Paris 2021 - APIs - How did we get here and where are we going n...
apidays LIVE Paris 2021 - APIs - How did we get here and where are we going n...apidays
 
Secrets of going codeless - How to build enterprise apps without coding
Secrets of going codeless - How to build enterprise apps without codingSecrets of going codeless - How to build enterprise apps without coding
Secrets of going codeless - How to build enterprise apps without codingNewton Day Uploads
 
Site-Reliability-Engineering-v2[6241].pdf
Site-Reliability-Engineering-v2[6241].pdfSite-Reliability-Engineering-v2[6241].pdf
Site-Reliability-Engineering-v2[6241].pdfDeepakGupta747774
 
Critical Capabilities to Shifting Left the Right Way
Critical Capabilities to Shifting Left the Right WayCritical Capabilities to Shifting Left the Right Way
Critical Capabilities to Shifting Left the Right WaySmartBear
 
The Magic Of Application Lifecycle Management In Vs Public
The Magic Of Application Lifecycle Management In Vs PublicThe Magic Of Application Lifecycle Management In Vs Public
The Magic Of Application Lifecycle Management In Vs PublicDavid Solivan
 
SCA in an Agile World | June 2010
SCA in an Agile World | June 2010SCA in an Agile World | June 2010
SCA in an Agile World | June 2010Klocwork
 
Agile Business Intelligence
Agile Business IntelligenceAgile Business Intelligence
Agile Business IntelligenceEvan Leybourn
 
GMO'less Software Development Practices
GMO'less Software Development PracticesGMO'less Software Development Practices
GMO'less Software Development PracticesLemi Orhan Ergin
 
Continuous Integration
Continuous IntegrationContinuous Integration
Continuous IntegrationPreetam Palwe
 
Introducing Continuous Integration Using Vsts
Introducing Continuous Integration Using VstsIntroducing Continuous Integration Using Vsts
Introducing Continuous Integration Using VstsMohamed Samy
 
Kelly potvin nosurprises_odtug_oow12
Kelly potvin nosurprises_odtug_oow12Kelly potvin nosurprises_odtug_oow12
Kelly potvin nosurprises_odtug_oow12Enkitec
 

Similar to Infrastructure code in Agile software development (20)

20070921 Uni Softwareengineering
20070921 Uni Softwareengineering20070921 Uni Softwareengineering
20070921 Uni Softwareengineering
 
Agile Business Intelligence
Agile Business IntelligenceAgile Business Intelligence
Agile Business Intelligence
 
Clean architecture with asp.net core
Clean architecture with asp.net coreClean architecture with asp.net core
Clean architecture with asp.net core
 
Accelerate your Application Delivery with DevOps and Microservices
Accelerate your Application Delivery with DevOps and MicroservicesAccelerate your Application Delivery with DevOps and Microservices
Accelerate your Application Delivery with DevOps and Microservices
 
Software Development Standard Operating Procedure
Software Development Standard Operating Procedure Software Development Standard Operating Procedure
Software Development Standard Operating Procedure
 
apidays LIVE Paris 2021 - APIs - How did we get here and where are we going n...
apidays LIVE Paris 2021 - APIs - How did we get here and where are we going n...apidays LIVE Paris 2021 - APIs - How did we get here and where are we going n...
apidays LIVE Paris 2021 - APIs - How did we get here and where are we going n...
 
Secrets of going codeless - How to build enterprise apps without coding
Secrets of going codeless - How to build enterprise apps without codingSecrets of going codeless - How to build enterprise apps without coding
Secrets of going codeless - How to build enterprise apps without coding
 
Resume
ResumeResume
Resume
 
Site-Reliability-Engineering-v2[6241].pdf
Site-Reliability-Engineering-v2[6241].pdfSite-Reliability-Engineering-v2[6241].pdf
Site-Reliability-Engineering-v2[6241].pdf
 
Critical Capabilities to Shifting Left the Right Way
Critical Capabilities to Shifting Left the Right WayCritical Capabilities to Shifting Left the Right Way
Critical Capabilities to Shifting Left the Right Way
 
The Magic Of Application Lifecycle Management In Vs Public
The Magic Of Application Lifecycle Management In Vs PublicThe Magic Of Application Lifecycle Management In Vs Public
The Magic Of Application Lifecycle Management In Vs Public
 
SCA in an Agile World | June 2010
SCA in an Agile World | June 2010SCA in an Agile World | June 2010
SCA in an Agile World | June 2010
 
Agile Business Intelligence
Agile Business IntelligenceAgile Business Intelligence
Agile Business Intelligence
 
GMO'less Software Development Practices
GMO'less Software Development PracticesGMO'less Software Development Practices
GMO'less Software Development Practices
 
The Modern Software Architect
The Modern Software ArchitectThe Modern Software Architect
The Modern Software Architect
 
Continuous Integration
Continuous IntegrationContinuous Integration
Continuous Integration
 
Teamwork Presentation
Teamwork PresentationTeamwork Presentation
Teamwork Presentation
 
Introducing Continuous Integration Using Vsts
Introducing Continuous Integration Using VstsIntroducing Continuous Integration Using Vsts
Introducing Continuous Integration Using Vsts
 
Kelly potvin nosurprises_odtug_oow12
Kelly potvin nosurprises_odtug_oow12Kelly potvin nosurprises_odtug_oow12
Kelly potvin nosurprises_odtug_oow12
 
L02 Architecture
L02 ArchitectureL02 Architecture
L02 Architecture
 

More from Elad Sofer

Three steps to transform from a waterfall to an Agile org
Three steps to transform from a waterfall to an Agile orgThree steps to transform from a waterfall to an Agile org
Three steps to transform from a waterfall to an Agile orgElad Sofer
 
Descaling agile webinar
Descaling agile webinarDescaling agile webinar
Descaling agile webinarElad Sofer
 
Lego farm game for simulating Scrum
Lego farm game for simulating ScrumLego farm game for simulating Scrum
Lego farm game for simulating ScrumElad Sofer
 
Scrum master basics
Scrum master basics Scrum master basics
Scrum master basics Elad Sofer
 
Its all about the Feedback loop
Its all about the Feedback loopIts all about the Feedback loop
Its all about the Feedback loopElad Sofer
 
Agile effort estimation
Agile effort estimation Agile effort estimation
Agile effort estimation Elad Sofer
 

More from Elad Sofer (6)

Three steps to transform from a waterfall to an Agile org
Three steps to transform from a waterfall to an Agile orgThree steps to transform from a waterfall to an Agile org
Three steps to transform from a waterfall to an Agile org
 
Descaling agile webinar
Descaling agile webinarDescaling agile webinar
Descaling agile webinar
 
Lego farm game for simulating Scrum
Lego farm game for simulating ScrumLego farm game for simulating Scrum
Lego farm game for simulating Scrum
 
Scrum master basics
Scrum master basics Scrum master basics
Scrum master basics
 
Its all about the Feedback loop
Its all about the Feedback loopIts all about the Feedback loop
Its all about the Feedback loop
 
Agile effort estimation
Agile effort estimation Agile effort estimation
Agile effort estimation
 

Recently uploaded

Automation Ops Series: Session 2 - Governance for UiPath projects
Automation Ops Series: Session 2 - Governance for UiPath projectsAutomation Ops Series: Session 2 - Governance for UiPath projects
Automation Ops Series: Session 2 - Governance for UiPath projectsDianaGray10
 
20140402 - Smart house demo kit
20140402 - Smart house demo kit20140402 - Smart house demo kit
20140402 - Smart house demo kitJamie (Taka) Wang
 
Oracle Database 23c Security New Features.pptx
Oracle Database 23c Security New Features.pptxOracle Database 23c Security New Features.pptx
Oracle Database 23c Security New Features.pptxSatishbabu Gunukula
 
March Patch Tuesday
March Patch TuesdayMarch Patch Tuesday
March Patch TuesdayIvanti
 
Q4 2023 Quarterly Investor Presentation - FINAL - v1.pdf
Q4 2023 Quarterly Investor Presentation - FINAL - v1.pdfQ4 2023 Quarterly Investor Presentation - FINAL - v1.pdf
Q4 2023 Quarterly Investor Presentation - FINAL - v1.pdfTejal81
 
The Importance of Indoor Air Quality (English)
The Importance of Indoor Air Quality (English)The Importance of Indoor Air Quality (English)
The Importance of Indoor Air Quality (English)IES VE
 
Flow Control | Block Size | ST Min | First Frame
Flow Control | Block Size | ST Min | First FrameFlow Control | Block Size | ST Min | First Frame
Flow Control | Block Size | ST Min | First FrameKapil Thakar
 
Where developers are challenged, what developers want and where DevEx is going
Where developers are challenged, what developers want and where DevEx is goingWhere developers are challenged, what developers want and where DevEx is going
Where developers are challenged, what developers want and where DevEx is goingFrancesco Corti
 
UiPath Studio Web workshop series - Day 1
UiPath Studio Web workshop series  - Day 1UiPath Studio Web workshop series  - Day 1
UiPath Studio Web workshop series - Day 1DianaGray10
 
GraphSummit Copenhagen 2024 - Neo4j Vision and Roadmap.pptx
GraphSummit Copenhagen 2024 - Neo4j Vision and Roadmap.pptxGraphSummit Copenhagen 2024 - Neo4j Vision and Roadmap.pptx
GraphSummit Copenhagen 2024 - Neo4j Vision and Roadmap.pptxNeo4j
 
Emil Eifrem at GraphSummit Copenhagen 2024 - The Art of the Possible.pptx
Emil Eifrem at GraphSummit Copenhagen 2024 - The Art of the Possible.pptxEmil Eifrem at GraphSummit Copenhagen 2024 - The Art of the Possible.pptx
Emil Eifrem at GraphSummit Copenhagen 2024 - The Art of the Possible.pptxNeo4j
 
Introduction to RAG (Retrieval Augmented Generation) and its application
Introduction to RAG (Retrieval Augmented Generation) and its applicationIntroduction to RAG (Retrieval Augmented Generation) and its application
Introduction to RAG (Retrieval Augmented Generation) and its applicationKnoldus Inc.
 
3 Pitfalls Everyone Should Avoid with Cloud Data
3 Pitfalls Everyone Should Avoid with Cloud Data3 Pitfalls Everyone Should Avoid with Cloud Data
3 Pitfalls Everyone Should Avoid with Cloud DataEric D. Schabell
 
Extra-120324-Visite-Entreprise-icare.pdf
Extra-120324-Visite-Entreprise-icare.pdfExtra-120324-Visite-Entreprise-icare.pdf
Extra-120324-Visite-Entreprise-icare.pdfInfopole1
 
UiPath Studio Web workshop Series - Day 3
UiPath Studio Web workshop Series - Day 3UiPath Studio Web workshop Series - Day 3
UiPath Studio Web workshop Series - Day 3DianaGray10
 
UiPath Studio Web workshop series - Day 4
UiPath Studio Web workshop series - Day 4UiPath Studio Web workshop series - Day 4
UiPath Studio Web workshop series - Day 4DianaGray10
 
UiPath Studio Web workshop series - Day 2
UiPath Studio Web workshop series - Day 2UiPath Studio Web workshop series - Day 2
UiPath Studio Web workshop series - Day 2DianaGray10
 
How to release an Open Source Dataweave Library
How to release an Open Source Dataweave LibraryHow to release an Open Source Dataweave Library
How to release an Open Source Dataweave Libraryshyamraj55
 
Design and Modeling for MySQL SCALE 21X Pasadena, CA Mar 2024
Design and Modeling for MySQL SCALE 21X Pasadena, CA Mar 2024Design and Modeling for MySQL SCALE 21X Pasadena, CA Mar 2024
Design and Modeling for MySQL SCALE 21X Pasadena, CA Mar 2024Alkin Tezuysal
 
The New Cloud World Order Is FinOps (Slideshow)
The New Cloud World Order Is FinOps (Slideshow)The New Cloud World Order Is FinOps (Slideshow)
The New Cloud World Order Is FinOps (Slideshow)codyslingerland1
 

Recently uploaded (20)

Automation Ops Series: Session 2 - Governance for UiPath projects
Automation Ops Series: Session 2 - Governance for UiPath projectsAutomation Ops Series: Session 2 - Governance for UiPath projects
Automation Ops Series: Session 2 - Governance for UiPath projects
 
20140402 - Smart house demo kit
20140402 - Smart house demo kit20140402 - Smart house demo kit
20140402 - Smart house demo kit
 
Oracle Database 23c Security New Features.pptx
Oracle Database 23c Security New Features.pptxOracle Database 23c Security New Features.pptx
Oracle Database 23c Security New Features.pptx
 
March Patch Tuesday
March Patch TuesdayMarch Patch Tuesday
March Patch Tuesday
 
Q4 2023 Quarterly Investor Presentation - FINAL - v1.pdf
Q4 2023 Quarterly Investor Presentation - FINAL - v1.pdfQ4 2023 Quarterly Investor Presentation - FINAL - v1.pdf
Q4 2023 Quarterly Investor Presentation - FINAL - v1.pdf
 
The Importance of Indoor Air Quality (English)
The Importance of Indoor Air Quality (English)The Importance of Indoor Air Quality (English)
The Importance of Indoor Air Quality (English)
 
Flow Control | Block Size | ST Min | First Frame
Flow Control | Block Size | ST Min | First FrameFlow Control | Block Size | ST Min | First Frame
Flow Control | Block Size | ST Min | First Frame
 
Where developers are challenged, what developers want and where DevEx is going
Where developers are challenged, what developers want and where DevEx is goingWhere developers are challenged, what developers want and where DevEx is going
Where developers are challenged, what developers want and where DevEx is going
 
UiPath Studio Web workshop series - Day 1
UiPath Studio Web workshop series  - Day 1UiPath Studio Web workshop series  - Day 1
UiPath Studio Web workshop series - Day 1
 
GraphSummit Copenhagen 2024 - Neo4j Vision and Roadmap.pptx
GraphSummit Copenhagen 2024 - Neo4j Vision and Roadmap.pptxGraphSummit Copenhagen 2024 - Neo4j Vision and Roadmap.pptx
GraphSummit Copenhagen 2024 - Neo4j Vision and Roadmap.pptx
 
Emil Eifrem at GraphSummit Copenhagen 2024 - The Art of the Possible.pptx
Emil Eifrem at GraphSummit Copenhagen 2024 - The Art of the Possible.pptxEmil Eifrem at GraphSummit Copenhagen 2024 - The Art of the Possible.pptx
Emil Eifrem at GraphSummit Copenhagen 2024 - The Art of the Possible.pptx
 
Introduction to RAG (Retrieval Augmented Generation) and its application
Introduction to RAG (Retrieval Augmented Generation) and its applicationIntroduction to RAG (Retrieval Augmented Generation) and its application
Introduction to RAG (Retrieval Augmented Generation) and its application
 
3 Pitfalls Everyone Should Avoid with Cloud Data
3 Pitfalls Everyone Should Avoid with Cloud Data3 Pitfalls Everyone Should Avoid with Cloud Data
3 Pitfalls Everyone Should Avoid with Cloud Data
 
Extra-120324-Visite-Entreprise-icare.pdf
Extra-120324-Visite-Entreprise-icare.pdfExtra-120324-Visite-Entreprise-icare.pdf
Extra-120324-Visite-Entreprise-icare.pdf
 
UiPath Studio Web workshop Series - Day 3
UiPath Studio Web workshop Series - Day 3UiPath Studio Web workshop Series - Day 3
UiPath Studio Web workshop Series - Day 3
 
UiPath Studio Web workshop series - Day 4
UiPath Studio Web workshop series - Day 4UiPath Studio Web workshop series - Day 4
UiPath Studio Web workshop series - Day 4
 
UiPath Studio Web workshop series - Day 2
UiPath Studio Web workshop series - Day 2UiPath Studio Web workshop series - Day 2
UiPath Studio Web workshop series - Day 2
 
How to release an Open Source Dataweave Library
How to release an Open Source Dataweave LibraryHow to release an Open Source Dataweave Library
How to release an Open Source Dataweave Library
 
Design and Modeling for MySQL SCALE 21X Pasadena, CA Mar 2024
Design and Modeling for MySQL SCALE 21X Pasadena, CA Mar 2024Design and Modeling for MySQL SCALE 21X Pasadena, CA Mar 2024
Design and Modeling for MySQL SCALE 21X Pasadena, CA Mar 2024
 
The New Cloud World Order Is FinOps (Slideshow)
The New Cloud World Order Is FinOps (Slideshow)The New Cloud World Order Is FinOps (Slideshow)
The New Cloud World Order Is FinOps (Slideshow)
 

Infrastructure code in Agile software development

Editor's Notes

  1. בחברה שעבדתי בה , נפתח פרויקט חדש , הוקצה לו תקציב ואחרי תכנון מפורט ומדוקדק הוא יצא לדרך . ההחלטה היתה לפתח קודם כל את התשתית בצוות ייעודי ואחרי שהתשתית תהיה " גמורה " יצרפו עוד צוותים לפיתוח האפליקציה עצמה . יצאנו לדרך והתחלנו לפתח את התשתית , כעבור חצי שנה בערך החברה נתקלה בקשיים כספיים ובתור צעדי קיצוץ הוחלט בשלב ראשון להקפיא את כל הפיתוחים שאין להם עדיין לקוח , ומובן מאליו שאין לקוחות לתשתית של פרויקט ולכן היינו מועמדים טבעיים לסגירה , ואכן כך קרה . בשורה התחתונה בוזבזה חצי שנה של פיתוח לא כולל הזמן שהושקע ותכנון וניהול של הפרויקט .
  2. לשכבת התשתית יש נטייה ממגוון סיבות להפוך למפלצת קוד ענקית , שמאוד קשה לגעת בה אם אתה לא מכיר אותה מהעבר , היא עמוסה בפוקציונאליות שנכתבה מזמן ואף אחד כבר לא מכיר ואף אחד לא מוכן לגעת בה . סימן אזהרה הוא כשהתשתית הופכת להיות גדולה יותר מהאפליקציה עצמה . כשהקוד הוא גדול באופן טבעי יש בו יותר באגים ויותר קשה לבצע שינויים .
  3. כשהתשתית מפותחת ע " י צוות ייעודי נוצר מצב של בעלות על הקוד משני הכיוונים . אם צריך משהו שקשור לקוד התשתיתי אז תמיד מפנים אצבע אל איש התשתיות – זה שלו , דברו איתו . ואם בכל זאת מישהו ינסה לגעת בקוד התשתיתי שאינו חבר בקליקה הסגורה המכונה צוות תשתיות , מייד יקפצו עליו כל הרודוויילרים .
  4. מה קורה כשמגלים באג בתשתית ? צריך לתקן אותו זה ברור , אבל מה קורה לאפליקציה ? היא לא מתפקדת כמו שצריך . אז ע " מ לתקן את הבאג יש שתי אפשרויוית : הראשונה היא למצוא " איש תשתיות " פנוי שיתקן את הבאג ( ומאוד קשה למצוא כזה ) ובנוסף כעיקרון מנחה , אנשי תשתיות לא אוהבים לתקן באגים , הם מעדיפים לטעון שלא משתמשים בתשתית כמו שצריך . השנייה היא לשנות את קוד האפליקציה כך שיתאים לתשתית , אפילו אם היא " עקומה " קצת ובכך לפגוע בקוד האפליקטיבי . השלישית היא לא להשתמש בתשתית ולכתוב את הפונקציונאליות הנדרשת ברמת האפליקציה . כל אחת מהלטרניטיבות – לא משהו !
  5. כשכותבים תשתית לשם תשתית נוצרת הבעיה של נתק מהמציאות העסקית , נתק מהצרכים האמיתיים , דבר זה גורם בין השאר לכתיבה של אין סוף פיצ ' רים תשתיתיים שאין ולא יהיה לאף אחד צורך בהם , זה קורה בגלל שלמרות שברור לכולם שהתשתית היא לא מוצר סופי ומוגמר , מתייחסים אליה כאילו היא כזאת ואז על כל פיסת פונקציונאליות ש " אולי נזדקק לה " התשובה לשאלה האם לפתח היא כן . לדוגמא : למה שלא נוסיף אפשרות לייצא את האלמנטים שלנו ב - XML , זה יכול להיות חשוב אם ירצו להתממשק אלינו בעתיד , או אולי להדפיס את המידע ב - JMX . מעבר להשפעה על גודל הקוד ועל כמות הבאגים , מעבר לעובדה שזה מסרבל את השימוש בתשתית כי לא ברור באיזה דרך להשתמש בה , זה גם בזבוז זמן וכסף . היתה אפליקציה שהייתי מעורב בפיתוח שלה עוד בתחילת ימי בתוכנה , וזיהו מראש שיש שם לוגיקה עסקית מבוססת מכונת מצבים , מייד הלכו וביקשו מצוות תשתיות לפתח תשתית למכונת מצבים , צוות תשתיות אכן פיתח מכונת מצבים מאפס , שכוללת הגדרת מצבים , הגדרת מעבר בין מצבים עם תמיכה בתנאים למעבר מצב , מצב התחלתי מיוחד , מצב סופי מיוחד להצלחה \\ מצב סופי מיוחד לכישלון ומנוע שאמור ע " פ הגדרת המצבים להריץ את מכונת המצבים . נשמע סה " כ טוב , אבל .... מיותר לחלוטין . מכונת המצבים כללה בד " כ לא יותר משלושה מצבים מעבר להתחלה והסיום , לא היה כמעט כפילות בין מצבים במכונות שונות היה אפשר לעשות את זה ללא שום תשתית , בחצי מהזמן , ובאיכות גבוהה הרבה יותר .
  6. מכיוון שתשתית היא גדולה וסבוכה , היא הופכת עם הזמן למאוד מאוד רגישה לשינויים , כמו מגדל קלפים , אם תשנה את ה - IF הלא נכון אתה עלול להפיל את כל המגדל . ובניגוד למגדל קלפים לא תמיד תהיה הפריווילגה לגלות ת זה בזמן אמת , לפעמים נגלה את זה רק אצל הלקוח , כי למשל השינוי עובד מעולה ב - Solaris 10 אבל ב - Solaris 10.5 הוא גורם לבעיית ביצועים קשה ... אני מאמין שכמעט כולנו נתקלנו בשינויים תשתיתיים , אפילו קטנים יחסית , שהפילו מערכות שלמות .
  7. קיום של שכבת תשתיות שמפותחת ע " י צוות יעודי שבו מומחים ייעודיים מעודדת בצורה ישירה ועקיפה תרבות של גיבורי על , כאלה שנחלצים לעזרה ברגע האחרון ומצילים את היום . לעיתים קרובות מידי הגיבורים הללו הם אותם אנשי תשתית בעצמם שאחראים באופן מסוים לבעיה , אבל כשהם פותרים אותה , ובתור גיבורים מומחים , מות רלהם מה שלאחרים אסור , כלומר לבצע שינויים תשתיתיים , לשנות אפליקציה , לבצע מעקפים בקוד ועוד מיני חוכמות . כשסופרמן מציל מטוס זה לא משנה אם הוא הפיל בניין או שתיים על הדרך . התרבות הזאת מחלחלת לכל שכבות הארגון , ומתחילים להעריך פתרון באגים יותר ממניעת באגים .
  8. Every change can disrupt the entire system.
  9. Every change can disrupt the entire system.
  10. Every change can disrupt the entire system.
  11. Develop the infrastructure in a “step by step” approach – No BUFx
  12. Develop only what is required for the current iteration – No more no less.
  13. Infra code changes can be done by more than one person or team. Reduces bottlenecks. The right organizational structure – Cross functional Feature teams.
  14. Infrastructure code should be tightly coupled with the “real world”. The developers writing infra code should understand the feature the infra is required for. The developers writing infra code should also develop the business side of the feature.
  15. Infrastructure code emerges. Not every feature needs to be part of the infrastructure from the start.
  16. Collaboration should happen Inside teams and within teams. Teams should have open communication channels to discuss infrastructure issues. Create COP – Communities of practice. Have a wiki. Build a process to support this.