Upload
andrii-dzynia
View
1.134
Download
0
Tags:
Embed Size (px)
DESCRIPTION
Software Development is a creative activity that requires focus. During coding session you as a programmer tends to make so many decision that sometimes force you to neglect 'unimportant details' that might sounds like specific use cases, unclear statements or somethings that won't gonna happen. In most cases the system even so complex that is not that easy to step out and see the whole picture, even from user's point of view. Historically software developers used to trust other people called testers to verify those 'details' from user's perspective before deploying into production. In order to have proper alignment inside the team dedicated 'QA step' added to the process. That obvious solution have some quick-wins with outcome of found bugs before releasing the software. But there are some tradeoffs, such as: slower delivery cycle, extra test documentation and GUI automated tests that are not that easy to maintain. During my talk I would like to share some insight and lessons we learned @ Spotify that helps us improving team's development productivity without losing quality of the product. Hopefully that will help your team as well or at least show one of the directions you might want to follow. Spotify Engineering Culture: https://labs.spotify.com/2014/03/27/spotify-engineering-culture-part-1/ https://labs.spotify.com/2014/09/20/spotify-engineering-culture-part-2/
Citation preview
December 11, 2014
Applying Tester’s Mindset to Software Development
Andrii Dzynia
Software Quality Engineer
@adzynia
Spotify brings you the right music for
every moment!
Started in 2006 (in Sweden) Now 1500+ employees, 500+ engineers Over 30 million songs available Over 20,000 songs added every day 5 development centres across the globe
3
5
How we are minimizing development cycle and
delivering value faster!
6
Is a Programmer Enjoying learning new things Passioned about technologies
PETER
ONE DAY OF PETER’S LIFE
WAKE UP THINKING ABOUT PROBLEM WAS NOT ABLE
TO SOLVE YESTERDAY COMMUTE TO THE OFFICE SYNC MEETING WITH A TEAM FINISHED CODING ON THE PROBLEM WENT ON MEETING GOT NEW TASK TO WORK ON STARTED READING DESCRIPTION
7
ONE DAY OF PETER’S LIFE
Started implementing the simples snippet Went on meeting Went home
8
WHERE IS THE PROBLEM?
9
@visbeek
Here…
10
Expectations
Reality
How that reflects on users and software?
11
@wiseacre
Bugs
Bugs
Bugs
BugsBugs
Bugs
Bugs
Bugs
Bugs
You might say.
12
Hire testers!
Consequences
Additional ‘QA’ or ‘Testing’ column in a process
Slower delivery
The bigger system the more testers to hire Hiring test automators to minimise the cost
Project become more expensive and harder to maintain
Less, but still have bugs Users less, but still frustrated
13
14
Problem at Scale
15
The earlier you share results
@rocketdogphotography
The lower risk of failure!
Testing as a Mindset 16
Testing during meetings17
challenge ideas and solutions via healthy discussions
prove hypnotises via end users collaboration
Acceptance Scenarios - User Journeys
Given Peter ready for workout When Peter unlock the phone screen Then Spotify client starts playing kick-ass track
18
Testing during implementation
19
write tests during implementation
rise your opinion during pair discussion
peer review before merging to master
20
Code Review &
Human Testing on
Pull Request
Testing during release process
21
Checking stages Gradual Rollouts Monitoring A/B test different solutions Feature flags
Delivery Pipeline22
23Monitoring
Best reward - people satisfaction 24
25
Promote quality awareness
Invest in your testers
Technical Test Engineer != Test automator Technical Test Engineer ~ Software Engineer in Test Work as a software developer Advocate testability of the product/system
Test Engineer != Manual Tester Test Engineer ~ Context Driven Tester Know business domain Free to explore the product
26
Invest in your developers
Unit testing Acceptance testing TDD Continuous Integration Continuous Deployment Pair Programming Peer Reviews Refactoring
27
Extreme Programming Practices
Internal Hackathons
Invest in your users28
User Support Interviews A/B testing
Create a self-learning environment29
Educate everyone to work in collaboration!
30
(c) Elisabeth Hendrickson
31‘Test’ is a verbDo not just talk about testing, do
Testing Encourage discussions about
testing and quality Ask a question ‘How would we
test this?’ Make testing visible for everyone Celebrate achievements and
share resultsKeep looking further improvements.
You should never end :)
It does not mean no testers
That means just enough “formal” testers
Check out http://www.spotify.com/jobs or @Spotifyjobs for more information
Want to join the band?