SlideShare une entreprise Scribd logo
1  sur  131
Remote Pair
Programming
Agile India 2014
Johannes Brodwall
Exilesoft Chief scientist
@jhannes
How can a distributed team
still collaborate

closely?
team
collaborate well?
How can a
But first
But first – a
competition:
Competition:
Find the blue sentence
This talk is a talk
for you if you…
You work in a team, but...
Your team doesn’t
feel like a team
Your distributed team doesn’t
feel like a team
After this talk you
will…
Be motivated to start using pair
programming, possibly remotely
Have seen remote pair
programming
Know how to get started
Who is using pair
programming as their
preferred approach?
1. What is a super team
2. Building a super
team with pairing
3. Getting the benefits
4. Summary
Part I
What is a super
team?
Sharing the burden
Rabbit
hole!
Shared
context
Sharing
experience
Whops!
No!
Working
baseline
“That’s
strange…”
“Eureka!”
20 minutes fix
(where 10 was
waiting)
Problem
solved
The sad team
Planning
Johannes: You’ll
create CRUD SOAP
service for projects
with applications
Okay
Backend dev

“Scrum”
Johannes
“Master”
Planning
How long will it take?

Um…
Backend dev

“Scrum”
Johannes
“Master”
Planning
Backend dev
2

Backend dev

“Scrum”
Johannes
“Master”

It’s pretty
easy with
Hibernate

Okay, 8 hours for
each of Create…
then

!
Stand-up
Today, I will work on
Create Project

Backend dev

Database dev

Scrum master
Johannes

Designer

Frontend dev
Stand-up

No impediments
Backend dev

Database dev

Scrum master
Johannes

Designer

Frontend dev
Behold – the uber
coder
Exception!
org.hibernate.PropertyValueException: not-null property references a null or transient value:
....common.entities.Application._applicationsBackref
org.hibernate.engine.Nullability.checkNullability(Nullability.java:95)
org.hibernate.event.def.AbstractSaveEventListener.performSaveOrReplicate(AbstractSaveEventListener.java:313)
org.hibernate.event.def.AbstractSaveEventListener.performSave(AbstractSaveEventListener.java:204)
org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:130)
org.hibernate.event.def.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEvent
Listener.java:210)
org.hibernate.event.def.DefaultSaveEventListener.saveWithGeneratedOrRequestedId(DefaultSaveEventListener.java:56)
org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:195)
org.hibernate.event.def.DefaultSaveEventListener.performSaveOrUpdate(DefaultSaveEventListener.java:50)
org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:93)
Exception
Poke

Google

Deploy

Stack
overflow
Tweak
Exception
Poke

Google

Deploy

Stack
overflow
Tweak
Exception
Poke

Google

Deploy

Stack
overflow
Tweak
Exception
Poke

Google

Deploy

Stack
overflow
Tweak
Stand-up
Yesterday, I worked
on Create Project

Backend dev

Database dev

Scrum master
Johannes

Designer

Frontend dev
Stand-up
Today, I will
hopefully fix the
exception and also
do Delete Project
Backend dev

Database dev

Scrum master
Johannes

Designer

Frontend dev
Stand-up

No impediments
Backend dev

Database dev

Scrum master
Johannes

Designer

Frontend dev
Stand-up
How could
they help
anyway

Backend dev

Database dev

Scrum master
Johannes

Designer

Frontend dev
Behold – the uber
coder
Exception!
org.springframework.web.util.NestedServletException: Request processing failed; nested exception is
org.hibernate.ObjectDeletedException: deleted object would be re-saved by cascade (remove deleted object from
associations): [Person[id=22]]
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:927)
at org.springframework.web.servlet.FrameworkServlet.doDelete(FrameworkServlet.java:844)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:653)
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:796)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at
org.springframework.orm.hibernate4.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:152)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:77)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.springframework.web.multipart.support.MultipartFilter.doFilterInternal(MultipartFilter.java:119)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at filter.NoCacheFilter.doFilter(NoCacheFilter.java:102)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
Stand-up
Yesterday, I finally
finished Delete after
3 days of «coding»

I didn’t need the
Delete service

Backend dev

Database dev

Scrum master
Johannes

Designer

Frontend dev
Stand-up
Yesterday, I finally
finished Delete after
3 days of «coding»

I didn’t need the
Delete service

Backend dev

Database dev

Scrum master
Johannes

Designer

Frontend dev
STOP
Imagine you should carry
10 pieces of timber
Each is 3 meters and 30
kg
The fun team
Stand-up
I’m ready for a new task.
What’s on the board..

Johannes

Scrum master
Johannes
Stand-up

«Let’s users administrate
their projects»
Johannes

Scrum master
Johannes
Stand-up

I haven’t done any
Hibernate tasks before.
Who can I pair with?

Scrum master
Johannes

Johannes

I can work together
with you
Exception!
org.hibernate.PropertyValueException: not-null property references a null or transient value:
....common.entities.Application._applicationsBackref
org.hibernate.engine.Nullability.checkNullability(Nullability.java:95)
org.hibernate.event.def.AbstractSaveEventListener.performSaveOrReplicate(AbstractSaveEventListener.java:313)
org.hibernate.event.def.AbstractSaveEventListener.performSave(AbstractSaveEventListener.java:204)
org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:130)
org.hibernate.event.def.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEvent
Listener.java:210)
org.hibernate.event.def.DefaultSaveEventListener.saveWithGeneratedOrRequestedId(DefaultSaveEventListener.java:56)
org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:195)
org.hibernate.event.def.DefaultSaveEventListener.performSaveOrUpdate(DefaultSaveEventListener.java:50)
org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:93)
That link doesn’t really
seem relevant.

Are we getting anywhere?
Time to ask for help?
I think Niluka has worked
on this sort of thing before
Yeah, just look at the
Person HasMany Roles
mapping

Niluka
That’s it!
High five!
The difference
Everyone works everywhere
Knowledge is disseminated
You’re never alone
Part II
Superfying
with
Pair programming
Pair programming
styles
Debate club
“No, this variable should be called
fooNumber, not fooNum”,
“But it’s a common abbreviation”
Dedicated driver
“I’ll write the parser”
“I’ll design the algorithm”
Driver-navigator
“I don’t know how to solve this, so
I’ll sit at the keyboard”
Ping-pong
Ingredient #1:
Pair programming
Ingredient #2:
Test driven
development
Failing test
Write code

Failing test
Write code
Failing test
Ingredient #3:
Refactoring
Failing test
Write code
Refactor code
and tests
Failing test
Write code
Refactor code
and tests
Failing test
Put together
Failing test
Write code
Failing test
Write code

Failing test
Failing test
Write code
Refactor code
and tests

Failing test
Write code
Refactor code
and tests
Failing test
Failing test
Write code
Refactor code
and tests

Failing test
Write code
Refactor code
and tests
Failing test
Demonstration
(Guest starring
Niruka Ruhunage)
Kata: Number to text
Kata: Number to text
8192 => eight thousand one hundred and ninety two
125,017 =>
one hundred and twenty five thousand and seventeen
What does it feel
like?
Part III
From here to there
Make sharing into a
goal
Johannes

Thomas
Chintaka

Arunas
Dileepa
Sergey
Johannes

Thomas
Chintaka

Arunas
Dileepa
Sergey
Arunas

Add new company

✓

Display contacts on
map

✓

Dileepa

✓

Chinthaka

✓

Store password
securely

✓

✓

✓

Authenticate user by
company

Sergey

✓

✓

Filter contacts in list

Usernames with
Norwegian letters are
rejected

Johannes

Thomas

✓

✓
✓

✓

✓

✓
✓

✓
Arunas

Add new company

✓

Display contacts on
map

✓

Dileepa

✓

Chinthaka

✓

Store password
securely

✓

✓

✓

Authenticate user by
company

Sergey

✓

✓

Filter contacts in list

Usernames with
Norwegian letters are
rejected

Johannes

Thomas

✓

✓
✓

✓

✓

✓
✓

✓
Arunas

Add new company

✓

Display contacts on
map

✓

Dileepa

✓

Chinthaka

✓

Store password
securely

✓

✓

✓

Authenticate user by
company

Sergey

✓

✓

Filter contacts in list

Usernames with
Norwegian letters are
rejected

Johannes

Thomas

✓

✓
✓

✓

✓

✓
✓

✓
Overcoming
obstacles
JIRA
With a true team, no
member owns more
than their current task
TODO

DOING

WAITING

AWAY

DONE
You will get more done
(But not in the first or
second sprint)
Distance
•
•
•

See each other
Share what we see
Share our work
•
•
•

Skype (or any voice sharing)
GoToMeeting (or flexible screen
sharing)
Dropbox (or any file sharing)
Skill and tact
• Experiment with switching
patterns
• Try out ping-pong
• “Could we try it this way
first?”
Expect exhaustion
When
Bug fix
Training event
Practice with kata
1.
2.
3.
4.

Create a dropbox account
Share a folder with a friend
Put a coding project there
Create a screen share
session
5. Call up your friend
Failing test
Write code
Refactor code
and tests

Failing test
Write code
Refactor code
and tests
Failing test
Set a time per week
Don’t wait to find
the perfect tool
Just do it
Conclusion
What
•
•
•

Two people at one codebase
No member owns a task
beyond the day
Team rotates pairing
Why
•
•
•
•
•
•
•

Less Overproduction (unused functions in API)
Less Waiting (for the only person who knows X)
Less Motion (as everyone gets more skilled)
Fewer Defects (as two pair of eyes see better)
Less Over-processing (from double responsibility)
Less Inventory (as team works more focused)
Less Transportation (handoffs inside a story)
How
•

•
•

Ask for help – don’t work
alone
Play with ping pong
programming for two hours
Be open, share and listen
Competition:
What was the blue sentence?
A team creates
together what no
member could do
alone
Next week: Commit
to two hours of
working together
Thank you
jbr@exilesoft.com
nru@exilesoft.com

http://JohannesBrodwall.com
http://exilesoft.com
http://twitter.com/jhannes

Contenu connexe

Similaire à Remote Pair Programming (Agile India)

Dead codepresentation 0
Dead codepresentation 0Dead codepresentation 0
Dead codepresentation 0
drewz lin
 
Towards a Responsive Business
Towards a Responsive BusinessTowards a Responsive Business
Towards a Responsive Business
Venetia Bird
 
JavaProgrammingForBeginners-Presentation.pdf
JavaProgrammingForBeginners-Presentation.pdfJavaProgrammingForBeginners-Presentation.pdf
JavaProgrammingForBeginners-Presentation.pdf
Sathwika7
 
Debugging Apache Spark
Debugging Apache SparkDebugging Apache Spark
Debugging Apache Spark
Joey Echeverria
 
Debugging Spark: Scala and Python - Super Happy Fun Times @ Data Day Texas 2018
Debugging Spark:  Scala and Python - Super Happy Fun Times @ Data Day Texas 2018Debugging Spark:  Scala and Python - Super Happy Fun Times @ Data Day Texas 2018
Debugging Spark: Scala and Python - Super Happy Fun Times @ Data Day Texas 2018
Holden Karau
 
From Ant to Rake
From Ant to RakeFrom Ant to Rake
From Ant to Rake
jazzman1980
 

Similaire à Remote Pair Programming (Agile India) (20)

Puppet for SysAdmins
Puppet for SysAdminsPuppet for SysAdmins
Puppet for SysAdmins
 
When life gives you functions make functional programs!
When life gives you functions make functional programs!When life gives you functions make functional programs!
When life gives you functions make functional programs!
 
DevOps: Building by feature with immutable infrastructure at Serv.sg
DevOps: Building by feature with immutable infrastructure at Serv.sgDevOps: Building by feature with immutable infrastructure at Serv.sg
DevOps: Building by feature with immutable infrastructure at Serv.sg
 
SCAM 2012 Keynote Slides on Cooperative Testing and Analysis by Tao Xie
SCAM 2012 Keynote Slides on Cooperative Testing and Analysis by Tao XieSCAM 2012 Keynote Slides on Cooperative Testing and Analysis by Tao Xie
SCAM 2012 Keynote Slides on Cooperative Testing and Analysis by Tao Xie
 
JavaScript Best Pratices
JavaScript Best PraticesJavaScript Best Pratices
JavaScript Best Pratices
 
Fp for the oo programmer
Fp for the oo programmerFp for the oo programmer
Fp for the oo programmer
 
Reproducible datascience [with Terraform]
Reproducible datascience [with Terraform]Reproducible datascience [with Terraform]
Reproducible datascience [with Terraform]
 
Poitou-Charentes JUG 2016 Eclipse Che: The Next-Gen Eclipse IDE
Poitou-Charentes JUG 2016 Eclipse Che: The Next-Gen Eclipse IDEPoitou-Charentes JUG 2016 Eclipse Che: The Next-Gen Eclipse IDE
Poitou-Charentes JUG 2016 Eclipse Che: The Next-Gen Eclipse IDE
 
Dead codepresentation 0
Dead codepresentation 0Dead codepresentation 0
Dead codepresentation 0
 
Clustered PHP - DC PHP 2009
Clustered PHP - DC PHP 2009Clustered PHP - DC PHP 2009
Clustered PHP - DC PHP 2009
 
DevDay.lk - Bare Knuckle Web Development
DevDay.lk - Bare Knuckle Web DevelopmentDevDay.lk - Bare Knuckle Web Development
DevDay.lk - Bare Knuckle Web Development
 
Towards a Responsive Business
Towards a Responsive BusinessTowards a Responsive Business
Towards a Responsive Business
 
JavaProgrammingForBeginners-Presentation.pdf
JavaProgrammingForBeginners-Presentation.pdfJavaProgrammingForBeginners-Presentation.pdf
JavaProgrammingForBeginners-Presentation.pdf
 
Debugging Apache Spark
Debugging Apache SparkDebugging Apache Spark
Debugging Apache Spark
 
Debugging Spark: Scala and Python - Super Happy Fun Times @ Data Day Texas 2018
Debugging Spark:  Scala and Python - Super Happy Fun Times @ Data Day Texas 2018Debugging Spark:  Scala and Python - Super Happy Fun Times @ Data Day Texas 2018
Debugging Spark: Scala and Python - Super Happy Fun Times @ Data Day Texas 2018
 
Asynchronous Python A Gentle Introduction
Asynchronous Python A Gentle IntroductionAsynchronous Python A Gentle Introduction
Asynchronous Python A Gentle Introduction
 
Puppet for Sys Admins
Puppet for Sys AdminsPuppet for Sys Admins
Puppet for Sys Admins
 
Idiot proofing your code
Idiot proofing your codeIdiot proofing your code
Idiot proofing your code
 
From Ant to Rake
From Ant to RakeFrom Ant to Rake
From Ant to Rake
 
Natural language processing open seminar For Tensorflow usage
Natural language processing open seminar For Tensorflow usageNatural language processing open seminar For Tensorflow usage
Natural language processing open seminar For Tensorflow usage
 

Plus de Johannes Brodwall

2013 09-11 java zone - extreme programming live
2013 09-11 java zone - extreme programming live2013 09-11 java zone - extreme programming live
2013 09-11 java zone - extreme programming live
Johannes Brodwall
 

Plus de Johannes Brodwall (20)

Build Your Stuff with Privacy by Design
Build Your Stuff with Privacy by DesignBuild Your Stuff with Privacy by Design
Build Your Stuff with Privacy by Design
 
The new new mobile web
The new new mobile webThe new new mobile web
The new new mobile web
 
Getting your project off the ground (BuildStuffLt)
Getting your project off the ground (BuildStuffLt)Getting your project off the ground (BuildStuffLt)
Getting your project off the ground (BuildStuffLt)
 
Extreme Programming Live - JavaZone
Extreme Programming Live - JavaZoneExtreme Programming Live - JavaZone
Extreme Programming Live - JavaZone
 
2013 09-11 java zone - extreme programming live
2013 09-11 java zone - extreme programming live2013 09-11 java zone - extreme programming live
2013 09-11 java zone - extreme programming live
 
2013 08-07 agile 2013 - remote pair programming
2013 08-07 agile 2013 - remote pair programming2013 08-07 agile 2013 - remote pair programming
2013 08-07 agile 2013 - remote pair programming
 
WeActuallyBuildStuff - Extreme Programming Live
WeActuallyBuildStuff - Extreme Programming LiveWeActuallyBuildStuff - Extreme Programming Live
WeActuallyBuildStuff - Extreme Programming Live
 
Bare-Bones Software Architecture
Bare-Bones Software ArchitectureBare-Bones Software Architecture
Bare-Bones Software Architecture
 
Agile Architecture in Odessa
Agile Architecture in OdessaAgile Architecture in Odessa
Agile Architecture in Odessa
 
Bare-knuckle web development
Bare-knuckle web developmentBare-knuckle web development
Bare-knuckle web development
 
Agile Architecture
Agile ArchitectureAgile Architecture
Agile Architecture
 
Agile Prague Coding Dojo
Agile Prague Coding DojoAgile Prague Coding Dojo
Agile Prague Coding Dojo
 
Agile Programming Live - AgilePrague2012
Agile Programming Live - AgilePrague2012Agile Programming Live - AgilePrague2012
Agile Programming Live - AgilePrague2012
 
Agile Contracts - AgilePrague2012
Agile Contracts - AgilePrague2012Agile Contracts - AgilePrague2012
Agile Contracts - AgilePrague2012
 
Smidig Stykkpriskontrakt
Smidig StykkpriskontraktSmidig Stykkpriskontrakt
Smidig Stykkpriskontrakt
 
Experience Agile Programming
Experience Agile ProgrammingExperience Agile Programming
Experience Agile Programming
 
Agile Contracts
Agile ContractsAgile Contracts
Agile Contracts
 
Smidig ansvarsprosjekt
Smidig ansvarsprosjektSmidig ansvarsprosjekt
Smidig ansvarsprosjekt
 
Kiev Coding Dojo
Kiev Coding DojoKiev Coding Dojo
Kiev Coding Dojo
 
Experience Agile Programming - Kiev
Experience Agile Programming - KievExperience Agile Programming - Kiev
Experience Agile Programming - Kiev
 

Dernier

Dernier (20)

presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 

Remote Pair Programming (Agile India)