SlideShare a Scribd company logo
1 of 14
Agile, SDLC and Node.js @ Paypal
Hitesh Kumar
Friday, June 17, 2016
Agenda
• Agile best practices
• SDLC best practices
• Node.js @ Paypal
2
Typical Agile Cycle
Capacity planning, Scoring, Story point
Pair programming, mob programming,
Continues integration
Review the upcoming work
Demo with PO and stakeholders
Definition of done?
What went well, dint went well,Idea’s?
3
Sprint planning
Backlog grooming
Sprint Demo
Story acceptance
Retrospective
End
Development
and testing
Sprint planning
• Capacity planning: before starting new sprint teams
estimate the productive hours they are available for sprints.
• This hours are basically when you just sit and code. Any
meetings are excluded from this estimate. On a average 5
hour per day is productive hours when you just sit and
code. Rest of the time is meetings and discussions/helping
team mates.
• Story are usually divided into small, medium, large and
extra large (3, 5,8, 13 points respectively).
• It is recommended that the story greater than 13 points
should be further break down into smaller stories.
4
Pair programing
• Pair programming is an agile software development
technique in which two programmers work together at one
workstation. One, the driver, writes code while the other,
the observer or navigator, reviews each line of code as it is
typed in.
5
Mob Programming
• Mob programming is a software development approach
where the whole team works on the same thing, at the
same time, in the same space, and at the same computer.
This is similar to pair programming where two people sit
at the same computer and collaborate on the same code at
the same time.
6
Backlog Grooming
• As sprint progresses it is very important to figure out and
plan upcoming work.
• This meeting can be done twice every sprint. Time boxed
to 30 min each.
• Agile god’s always recommend you should always have
next 6 sprints (3 months) work planned and groomed.
• This also gives visibility to PO and company as a whole
that if team can take new work or reprioritize some of the
work.
7
Definition of done ?
• All used cases covered as per acceptance criteria.
• 85% code coverage.
• At least few functional e2e passing (automated).
• Code review completed and review comments addressed.
• Code is merged to GIT repo.
8
Retrospective
• Is a practice used by teams to reflect on their way of working, and to
continuously become better in what they do. This consist of four
key area’s:
What went well ? What didn't’t went well?
Area’s of improvement Appreciations for team
• Often items from retro gets converted to a new story and assigned to it
owner in the coming sprint.
• In the next retrospective actions item are reviewed again with team
9
GIT FLOW
• GIT flow model:
Reflects production Upcoming release Current work
• Idea here is when you are ready to push the code to prod you cut a release from develop. In
continues integration release is usually planned at the end of every sprint.
• If any bug found after release. You commit that change directly to release push it prod and then
merge it to master.
10
Master Release Develop
Current Sprint
HotFix
GIT Flow (continued)
• Long running branches are strongly discouraged. Its gets difficult to maintain
long running branches. You should always merge your branch at the end of
every sprint.
• If you need to push something to production before the live data. It is
recommended that you develop the feature with a WOWO (wire on wire off)flag
and push the changes to production with feature turned off.
• It is recommended to push code to production at the end of every sprint.
Instead doing it every month or 3 months. In this approach you will find bugs
sooner and your development branch is close to production code.
11
SDLC
Pipeline
commit
Usual sprint activates Create a unique manifest Code deployment
Code coverage Stage env
Run unit tests QA env
Linting
Some light testing final code deploy to prod Run e2e func test on
staging
12
Developer Git Static analysis Deployment to QA
Functional testDeploy to ProdSanity testing
Post prod merge Monitoring/Alerts
Node.js @ Paypal
• Expert/Mentors : In 2012, Paypal hired Douglous Crawkford a trailblazing JavaScript guru.
• Early adoption: In 2012, the build there first app with node.js. In 2013 PayPal open sourced
kraken.js : node.js framework.
• Kraken Framework(open sourced):
It’s not a framework in itself, but a convention layer on top of express that allows it to scale to larger
development organizations. They wanted engineers to focus on building their applications and not
just focus on setting up their environments.
• Development:
Built almost twice as fast with fewer people
Written in 33% fewer lines of code
Constructed with 40% fewer files
• Performance:
Double the requests per second vs. the Java application
35% decrease in the average response time for the same page. This resulted in the pages being served 200ms
faster— something users will definitely notice.
13
Node.js @ PayPal (continued)
• Automation team: 3-4 member team focused on building automation tools so
development team can focus more on development and less on how to
automate it. Nemo.js is an open sourced node.js UI testing framework
developed by PayPal.
• Node infrastructure team: 8-10 member team of highly experienced node.js
engineer. There goal is develop frameworks (Kraken) and libraries/utilities so
that development team can focus on the development tasks.
• Training team: 8-10 member team dedicated to provide node.js/Javascript
training to PayPal employees.
• Community: Internal node.js community with 700 node.js developer ready to
help out if you need any help with development or just need some opinion.
Slack channels are used where people can ask any questions related to
node.js
14

More Related Content

What's hot

Continuous Integration
Continuous IntegrationContinuous Integration
Continuous Integrationdrluckyspin
 
Agile Software Development Methodologies
Agile Software Development MethodologiesAgile Software Development Methodologies
Agile Software Development Methodologieselvinefendi
 
Introduction To Agile
Introduction To AgileIntroduction To Agile
Introduction To AgileKnoldus Inc.
 
Introduction to Agile Development
Introduction to Agile DevelopmentIntroduction to Agile Development
Introduction to Agile DevelopmentTu Hoang
 
Agile Simplified
Agile SimplifiedAgile Simplified
Agile SimplifiedWalaa Atef
 
Agile-Scrum Methodology-An Introduction
Agile-Scrum Methodology-An IntroductionAgile-Scrum Methodology-An Introduction
Agile-Scrum Methodology-An IntroductionXBOSoft
 
Agile scrum fundamentals
Agile scrum fundamentalsAgile scrum fundamentals
Agile scrum fundamentalsDeniz Gungor
 
Agile Fundamentals and Best Practices (with Trello)
Agile Fundamentals and Best Practices (with Trello)Agile Fundamentals and Best Practices (with Trello)
Agile Fundamentals and Best Practices (with Trello)Filippo Zanella
 
Overview: Agile Methodology and Scrum
Overview: Agile Methodology and ScrumOverview: Agile Methodology and Scrum
Overview: Agile Methodology and ScrumIgor Corrêa
 
Agile Process Introduction
Agile Process IntroductionAgile Process Introduction
Agile Process IntroductionNguyen Hai
 
Software Development Methodologies By E2Logy
Software Development Methodologies By E2LogySoftware Development Methodologies By E2Logy
Software Development Methodologies By E2LogyE2LOGY
 
PMLab. Виктор Богомолов"Практический пример применения Scrum и Kanban на одно...
PMLab. Виктор Богомолов"Практический пример применения Scrum и Kanban на одно...PMLab. Виктор Богомолов"Практический пример применения Scrum и Kanban на одно...
PMLab. Виктор Богомолов"Практический пример применения Scrum и Kanban на одно...GeeksLab Odessa
 
Agile methodology
Agile methodologyAgile methodology
Agile methodologyDhruv Kumar
 
Introduction agile scrum methodology
Introduction agile scrum methodologyIntroduction agile scrum methodology
Introduction agile scrum methodologyAmit Verma
 
DevOps Continuous Integration & Delivery - A Whitepaper by RapidValue
DevOps Continuous Integration & Delivery - A Whitepaper by RapidValueDevOps Continuous Integration & Delivery - A Whitepaper by RapidValue
DevOps Continuous Integration & Delivery - A Whitepaper by RapidValueRapidValue
 
Continuous integration in large programs
Continuous integration in large programsContinuous integration in large programs
Continuous integration in large programsNaveen Kumar Singh
 
Introduction to Scrum
Introduction to ScrumIntroduction to Scrum
Introduction to Scrum3scale.net
 

What's hot (20)

Continuous Integration
Continuous IntegrationContinuous Integration
Continuous Integration
 
Agile Software Development Methodologies
Agile Software Development MethodologiesAgile Software Development Methodologies
Agile Software Development Methodologies
 
Introduction To Agile
Introduction To AgileIntroduction To Agile
Introduction To Agile
 
Introduction to Agile Development
Introduction to Agile DevelopmentIntroduction to Agile Development
Introduction to Agile Development
 
Agile Simplified
Agile SimplifiedAgile Simplified
Agile Simplified
 
Agile-Scrum Methodology-An Introduction
Agile-Scrum Methodology-An IntroductionAgile-Scrum Methodology-An Introduction
Agile-Scrum Methodology-An Introduction
 
Agile scrum fundamentals
Agile scrum fundamentalsAgile scrum fundamentals
Agile scrum fundamentals
 
Agile Fundamentals and Best Practices (with Trello)
Agile Fundamentals and Best Practices (with Trello)Agile Fundamentals and Best Practices (with Trello)
Agile Fundamentals and Best Practices (with Trello)
 
Agile methodology and scrum development
Agile methodology and scrum developmentAgile methodology and scrum development
Agile methodology and scrum development
 
Software management for tech startups
Software management for tech startupsSoftware management for tech startups
Software management for tech startups
 
Overview: Agile Methodology and Scrum
Overview: Agile Methodology and ScrumOverview: Agile Methodology and Scrum
Overview: Agile Methodology and Scrum
 
Agile Process Introduction
Agile Process IntroductionAgile Process Introduction
Agile Process Introduction
 
Software Development Methodologies By E2Logy
Software Development Methodologies By E2LogySoftware Development Methodologies By E2Logy
Software Development Methodologies By E2Logy
 
PMLab. Виктор Богомолов"Практический пример применения Scrum и Kanban на одно...
PMLab. Виктор Богомолов"Практический пример применения Scrum и Kanban на одно...PMLab. Виктор Богомолов"Практический пример применения Scrum и Kanban на одно...
PMLab. Виктор Богомолов"Практический пример применения Scrum и Kanban на одно...
 
Agile methodology
Agile methodologyAgile methodology
Agile methodology
 
Introduction agile scrum methodology
Introduction agile scrum methodologyIntroduction agile scrum methodology
Introduction agile scrum methodology
 
DevOps Continuous Integration & Delivery - A Whitepaper by RapidValue
DevOps Continuous Integration & Delivery - A Whitepaper by RapidValueDevOps Continuous Integration & Delivery - A Whitepaper by RapidValue
DevOps Continuous Integration & Delivery - A Whitepaper by RapidValue
 
Continuous integration in large programs
Continuous integration in large programsContinuous integration in large programs
Continuous integration in large programs
 
Introduction to Scrum
Introduction to ScrumIntroduction to Scrum
Introduction to Scrum
 
Agile Methodology
Agile MethodologyAgile Methodology
Agile Methodology
 

Similar to Agile_SDLC_Node.js@Paypal_ppt

Twelve practices of XP_Se lect5 btech
Twelve practices of XP_Se lect5 btechTwelve practices of XP_Se lect5 btech
Twelve practices of XP_Se lect5 btechIIITA
 
Agile Values, Principles and Practices
Agile Values, Principles and PracticesAgile Values, Principles and Practices
Agile Values, Principles and Practicesjackcrews
 
Agile Software Development
Agile Software DevelopmentAgile Software Development
Agile Software DevelopmentAhmet Bulut
 
Chap 3 - Agile - XP.ppt
Chap 3 - Agile - XP.pptChap 3 - Agile - XP.ppt
Chap 3 - Agile - XP.pptDurga Prasad
 
DevOps: Automate all the things
DevOps: Automate all the thingsDevOps: Automate all the things
DevOps: Automate all the thingsMat Mannion
 
Making software development processes to work for you
Making software development processes to work for youMaking software development processes to work for you
Making software development processes to work for youAmbientia
 
Lecture 5 -6(CSC205).pptx jsksnxbbxjxksnsnz
Lecture 5 -6(CSC205).pptx jsksnxbbxjxksnsnzLecture 5 -6(CSC205).pptx jsksnxbbxjxksnsnz
Lecture 5 -6(CSC205).pptx jsksnxbbxjxksnsnzAhmadSajjad34
 
Preparing for DevOps
Preparing for DevOpsPreparing for DevOps
Preparing for DevOpsEklove Mohan
 
Building a custom cms with django
Building a custom cms with djangoBuilding a custom cms with django
Building a custom cms with djangoYann Malet
 
Introduction to Agile Software Development Process
Introduction to Agile Software Development ProcessIntroduction to Agile Software Development Process
Introduction to Agile Software Development ProcessSoftware Park Thailand
 
Agileand saas davepatterson_armandofox_050813webinar
Agileand saas davepatterson_armandofox_050813webinarAgileand saas davepatterson_armandofox_050813webinar
Agileand saas davepatterson_armandofox_050813webinarRoberto Jr. Figueroa
 
Agile Governance for Hybrid Programs
Agile Governance for Hybrid ProgramsAgile Governance for Hybrid Programs
Agile Governance for Hybrid ProgramsCprime
 

Similar to Agile_SDLC_Node.js@Paypal_ppt (20)

Twelve practices of XP_Se lect5 btech
Twelve practices of XP_Se lect5 btechTwelve practices of XP_Se lect5 btech
Twelve practices of XP_Se lect5 btech
 
Agile Values, Principles and Practices
Agile Values, Principles and PracticesAgile Values, Principles and Practices
Agile Values, Principles and Practices
 
Agile Software Development
Agile Software DevelopmentAgile Software Development
Agile Software Development
 
Introduction to Software Engineering
Introduction to Software EngineeringIntroduction to Software Engineering
Introduction to Software Engineering
 
Chap 3 - Agile - XP.ppt
Chap 3 - Agile - XP.pptChap 3 - Agile - XP.ppt
Chap 3 - Agile - XP.ppt
 
What is xp
What is xpWhat is xp
What is xp
 
3-SE Agility and Process-2.pptx
3-SE Agility and Process-2.pptx3-SE Agility and Process-2.pptx
3-SE Agility and Process-2.pptx
 
DevOps: Automate all the things
DevOps: Automate all the thingsDevOps: Automate all the things
DevOps: Automate all the things
 
Making software development processes to work for you
Making software development processes to work for youMaking software development processes to work for you
Making software development processes to work for you
 
Scrum and DevOps training
Scrum and DevOps trainingScrum and DevOps training
Scrum and DevOps training
 
Lecture 5 -6(CSC205).pptx jsksnxbbxjxksnsnz
Lecture 5 -6(CSC205).pptx jsksnxbbxjxksnsnzLecture 5 -6(CSC205).pptx jsksnxbbxjxksnsnz
Lecture 5 -6(CSC205).pptx jsksnxbbxjxksnsnz
 
Lect7
Lect7Lect7
Lect7
 
Lect7
Lect7Lect7
Lect7
 
Preparing for DevOps
Preparing for DevOpsPreparing for DevOps
Preparing for DevOps
 
Building a custom cms with django
Building a custom cms with djangoBuilding a custom cms with django
Building a custom cms with django
 
Introduction to Agile Software Development Process
Introduction to Agile Software Development ProcessIntroduction to Agile Software Development Process
Introduction to Agile Software Development Process
 
Extreme programming (xp)
Extreme programming (xp)Extreme programming (xp)
Extreme programming (xp)
 
Introduction to Agile
Introduction to AgileIntroduction to Agile
Introduction to Agile
 
Agileand saas davepatterson_armandofox_050813webinar
Agileand saas davepatterson_armandofox_050813webinarAgileand saas davepatterson_armandofox_050813webinar
Agileand saas davepatterson_armandofox_050813webinar
 
Agile Governance for Hybrid Programs
Agile Governance for Hybrid ProgramsAgile Governance for Hybrid Programs
Agile Governance for Hybrid Programs
 

Agile_SDLC_Node.js@Paypal_ppt

  • 1. Agile, SDLC and Node.js @ Paypal Hitesh Kumar Friday, June 17, 2016
  • 2. Agenda • Agile best practices • SDLC best practices • Node.js @ Paypal 2
  • 3. Typical Agile Cycle Capacity planning, Scoring, Story point Pair programming, mob programming, Continues integration Review the upcoming work Demo with PO and stakeholders Definition of done? What went well, dint went well,Idea’s? 3 Sprint planning Backlog grooming Sprint Demo Story acceptance Retrospective End Development and testing
  • 4. Sprint planning • Capacity planning: before starting new sprint teams estimate the productive hours they are available for sprints. • This hours are basically when you just sit and code. Any meetings are excluded from this estimate. On a average 5 hour per day is productive hours when you just sit and code. Rest of the time is meetings and discussions/helping team mates. • Story are usually divided into small, medium, large and extra large (3, 5,8, 13 points respectively). • It is recommended that the story greater than 13 points should be further break down into smaller stories. 4
  • 5. Pair programing • Pair programming is an agile software development technique in which two programmers work together at one workstation. One, the driver, writes code while the other, the observer or navigator, reviews each line of code as it is typed in. 5
  • 6. Mob Programming • Mob programming is a software development approach where the whole team works on the same thing, at the same time, in the same space, and at the same computer. This is similar to pair programming where two people sit at the same computer and collaborate on the same code at the same time. 6
  • 7. Backlog Grooming • As sprint progresses it is very important to figure out and plan upcoming work. • This meeting can be done twice every sprint. Time boxed to 30 min each. • Agile god’s always recommend you should always have next 6 sprints (3 months) work planned and groomed. • This also gives visibility to PO and company as a whole that if team can take new work or reprioritize some of the work. 7
  • 8. Definition of done ? • All used cases covered as per acceptance criteria. • 85% code coverage. • At least few functional e2e passing (automated). • Code review completed and review comments addressed. • Code is merged to GIT repo. 8
  • 9. Retrospective • Is a practice used by teams to reflect on their way of working, and to continuously become better in what they do. This consist of four key area’s: What went well ? What didn't’t went well? Area’s of improvement Appreciations for team • Often items from retro gets converted to a new story and assigned to it owner in the coming sprint. • In the next retrospective actions item are reviewed again with team 9
  • 10. GIT FLOW • GIT flow model: Reflects production Upcoming release Current work • Idea here is when you are ready to push the code to prod you cut a release from develop. In continues integration release is usually planned at the end of every sprint. • If any bug found after release. You commit that change directly to release push it prod and then merge it to master. 10 Master Release Develop Current Sprint HotFix
  • 11. GIT Flow (continued) • Long running branches are strongly discouraged. Its gets difficult to maintain long running branches. You should always merge your branch at the end of every sprint. • If you need to push something to production before the live data. It is recommended that you develop the feature with a WOWO (wire on wire off)flag and push the changes to production with feature turned off. • It is recommended to push code to production at the end of every sprint. Instead doing it every month or 3 months. In this approach you will find bugs sooner and your development branch is close to production code. 11
  • 12. SDLC Pipeline commit Usual sprint activates Create a unique manifest Code deployment Code coverage Stage env Run unit tests QA env Linting Some light testing final code deploy to prod Run e2e func test on staging 12 Developer Git Static analysis Deployment to QA Functional testDeploy to ProdSanity testing Post prod merge Monitoring/Alerts
  • 13. Node.js @ Paypal • Expert/Mentors : In 2012, Paypal hired Douglous Crawkford a trailblazing JavaScript guru. • Early adoption: In 2012, the build there first app with node.js. In 2013 PayPal open sourced kraken.js : node.js framework. • Kraken Framework(open sourced): It’s not a framework in itself, but a convention layer on top of express that allows it to scale to larger development organizations. They wanted engineers to focus on building their applications and not just focus on setting up their environments. • Development: Built almost twice as fast with fewer people Written in 33% fewer lines of code Constructed with 40% fewer files • Performance: Double the requests per second vs. the Java application 35% decrease in the average response time for the same page. This resulted in the pages being served 200ms faster— something users will definitely notice. 13
  • 14. Node.js @ PayPal (continued) • Automation team: 3-4 member team focused on building automation tools so development team can focus more on development and less on how to automate it. Nemo.js is an open sourced node.js UI testing framework developed by PayPal. • Node infrastructure team: 8-10 member team of highly experienced node.js engineer. There goal is develop frameworks (Kraken) and libraries/utilities so that development team can focus on the development tasks. • Training team: 8-10 member team dedicated to provide node.js/Javascript training to PayPal employees. • Community: Internal node.js community with 700 node.js developer ready to help out if you need any help with development or just need some opinion. Slack channels are used where people can ask any questions related to node.js 14