Build better software together @svenpet
Oct 21, 2014
Build better software together
@svenpet
Sven Peters!Atlassian Evangelist
Building software is a ... challenge
WIN FAIL
Building software is a ... challenge
WIN FAIL
Building software is a social challenge
x3
x6
// Get the product id stored in the optionValue of the widget $productId = $order['customIdNumber'];
// Load the product $product = Mage::g
Tasks
Ideas
Code
Every team must share...
Issue and project tracking
Source code, review, continuous integration, DVCS management
Team collaboration Group chat
ManagerProduct Owner Developer Tester
!IT
OperationDesigner
No SIM card or phone is!turned off!(0xff05)
Confirm
Error
separate teams: hardware and software
TasksIdeas Code Builds
Software Development FlowConnecting Tasks
TasksIdeas Code Builds
Software Development Flow
Product Owner Product Manager Developer Operations
Connecting Teams
TasksIdeas Code Builds
Software Development Flow
Product Owner Product Manager Developer Operations
Connecting People
TasksIdeas
CodeBuilds
Software Development Flow
Developer
Code
Ideas
Tasks
Code
Connecting Locations
FlowTransparent
FlowPlanningDevelopment
The idea
Original Post One Day Later One Week Later
62involve everybody
SPRINTSSTORIESREQUIREMENTS
Planning Flow
Quickly create & link content
Best practices with Blueprints Traceability
Quickly create & link content
Best practices with Blueprints Traceability
SPRINTSSTORIESREQUIREMENTS
Planning Flow
PULL REQUESTSBRANCH, CODE & TEST
Development Flow
+
Development Flow
Branching
Branching
From JIRA Issue
in 30 seconds
to Branch
Branching
to Code
Caption
Free Git client for Windows or Mac
Quick & SimpleBest Practices
Branching
Code Isolation
Branching
MergingPull Requests
discuss changes
Pull Requests
AGR
Code Reviews
TDDare more important than
Code ReviewsBetter Quality
Learn
Feel Better
Pull Requests
review stories & builds
Free Git client for Windows or Mac
Builds
Reviews
Permissions
Issues
Pull Requests
32
Builds
Reviews
Permissions
Issues
Pull Requests
Builds
Reviews
Permissions
Issues
Pull Requests
Builds
Reviews
Permissions
Issues
Pull Requests
Builds
Reviews
Permissions
Issues
Pull Requests
Builds
Reviews
Permissions
Issues
Pull Requests
Builds
Reviews
Permissions
Issues
Pull Requests
ControlQuality CheckCode Review
Pull Requests
Pull Requests
Merge
Pull Requests
Development Flow
DONE !
How could that happen?
Pull Requests
Merge
What happened
Pull Requests
What happened
Pull Requests
Don’t let that happenBranch Detection
detect branch (& run automatically)
Pull Requests
Don’t let that happenBranch Detection
detect branch (& run automatically)
Who broke the built?
Who broke the built?What
Look at the logs
Look at the code
Look at the changes
Found failing test
Can not find the problem
Nothing changed
Look at the change set Problem found!
Why did it change? Go to the author
Look at the build server
Look at the change set
Found failing Issue
Problem found!
See the cause
Find the problem
You can not find the problem?
rerun!
What does it tell you?
failing test = useless
Put flaky tests under quarantine
Builds & Issues
Quarantine
Branch detection
Builds & Issues
Quarantine
Branch detection
Builds & Issues
Quarantine
Branch detection
FlowTransparent
FlowTransparent
connecting taks
connecting people
connecting teams
connecting locations
WHY?
Tearing down silos is a... challenge
Build better software together
@svenpet
Thanks
@svenpet svenpet.com/talks