SlideShare a Scribd company logo
1 of 46
Download to read offline
Development practices
at Inventive Designers

Tars Joris – Development Manager

3 December 2013
www.inventivedesigners.com
Who am I?

Tars Joris
• 1997-2001: Master in Computer Science: University of Antwerp

• 2001-2006: Developer at eVision bvba: Software for the furniture industry
• 2006-2008: Developer at Inventive Designers
• 2008-now : Development Manager at Inventive Designers

3 December 2013
www.inventivedesigners.com
2
Agenda
General

Tools

Processes

• About Inventive
Designers

• IDE

• Planning

• VCS

• Meetings

• The team

• Bug tracking

• Code reviews

• The software
products

• Continuous
integration

• Testing

3 December 2013
www.inventivedesigners.com
3

• New features
About Inventive Designers nv

• Software Product Company: all in-house development
• Services around these products: Integration + Customization

• Focus on innovation
• Participate in and organize meetings for working groups and communities
• W3C: XSL-FO, XForms, Web Crypto

• Other: AFP Color Consortium, Belgian Eclipse User Group, Scala, Big data, …

3 December 2013
www.inventivedesigners.com
4
Organization
Development

HR/Legal/…

Services

Marketing

Support

Sales
3 December 2013
www.inventivedesigners.com
5
The development team

4 team leads

• 2 Research & Development Managers
• 1 Release / Quality Assurance Manager
• 1 Development Manager / SCRUM Master

3 December 2013
www.inventivedesigners.com
6
Products
Scriptura Engage

Working actively on the last 2
products

IntelliStamp

3 December 2013
www.inventivedesigners.com
7
Some metrics on Scriptura Engage
• Working on 8th major release
• 6 major platforms
• 87133 automated tests running across 24 builds on 18 servers for
combinations of 5 java versions, 9 OSes, 3 CPU architectures, 5 browser
versions and 5 databases
• 3.7 Gb codebase in 289.811 files and 86.007 folders
• 2 million lines of code
• 1564 libraries
• 12 years of development
• 200+ releases
3 December 2013
www.inventivedesigners.com
8
Without processes / tools
When will that feature be available?
When it’s ready.
Will it work?
It might.
Can we get a new version?
Sure, in 5 minutes.
But it broke last week’s fix.
Oh yeah, oops. What was the problem again?

3 December 2013
www.inventivedesigners.com
9
Development
Tools

3 December 2013
www.inventivedesigners.com
10
Tools
IDE - Eclipse

3 December 2013
www.inventivedesigners.com
11
IDE - Eclipse

• Integrated Development
Environment
• Most of the code is Java
• Also XSLT, XForms,
Javascript, SQL, XQuery,
Xcode, …

3 December 2013
www.inventivedesigners.com
12
Tools
Version Control System - Git

3 December 2013
www.inventivedesigners.com
13
VCS - Git: What?
• Version Control System

• Distributed
• Eclipse plug-in /
Powerful command-line

3 December 2013
www.inventivedesigners.com
14
VCS - Git: What?

Atlassian Stash
• On own hardware

• Central repository
• Single point of truth (not required by Git)
• Web interface

3 December 2013
www.inventivedesigners.com
15
VCS - Git: Why?
• Code sharing and collaboration
• History: when was this changed? By who? Why?
• Backup: Change/delete code as much as you
want
• Tagging: what exactly was in a certain release?
• Branching: work on different versions of a
product at the same time

3 December 2013
www.inventivedesigners.com
16
VCS - Git: Nice features

• Local commits
• Local history

• Light-weight branching
• work on several issues at the same
time (commit what you have and
switch to another branch)

• No manual management of patches

3 December 2013
www.inventivedesigners.com
17
Tools
Bug Tracking - Jira

3 December 2013
www.inventivedesigners.com
18
Bug Tracking - Jira: What?
System for tracking
• Bugs
•
•

Filed by customers (external)
Filed by services/development (internal)

• Tasks
•
•
•

Changes to test-infrastructure
Small enhancements
Actual parts of a new feature implementation

• New features
•
•

Requests filed by customers
Strategic features

3 December 2013
www.inventivedesigners.com
19
Bug Tracking - Jira: What?
• Link with support cases

• Comments by developers
• Code changes automatically linked
• Time tracking

• To do list (assigned issues)
• Bugs/tasks
• Review subtasks

• Test subtasks
• Describe subtasks

3 December 2013
www.inventivedesigners.com
20
3 December 2013
www.inventivedesigners.com
21
Bug Tracking - Jira: Why?
• Trail/history of a code-change
• Link from code-change to
•
•
•
•
•

Jira issue
Comments
wiki-pages
support case
customer e-mails

• Mark issues related / duplicate
• Estimate work / plan sprint / assign work
• Workflow: review / test / research / describe
3 December 2013
www.inventivedesigners.com
22
Tools
Continuous Integration - Hudson

3 December 2013
www.inventivedesigners.com
23
Continuous Integration – Hudson: What?
• Runs automated builds
•
•
•

at scheduled times
manual
triggered by another build (chain)

• Compiles all code when there’s a change (throughout the day)
• Runs automated tests with different combinations of OS, JDK, database, …
•
•
•
•

Unit tests: verify result of a Java-method
End-to-end tests: verify files written on disk or interrogate public APIs of the
system
Browser tests: Automatically launch a browser and interact (type text, click
buttons, verify HTML)
GUI tests: Launch eclipse, …

3 December 2013
www.inventivedesigners.com
24
3 December 2013
www.inventivedesigners.com
25
Continuous Integration – Hudson: Why?
• Controlled environment for running tests: consistency

• History of test results
• Statistics: code coverage, …
• Produces nightly builds
• Useful for beta testing
• Closer to an actual release then a development
environment

• Use it to test against, to catch build-problems early
(obfuscation, …)

3 December 2013
www.inventivedesigners.com
26
Development
Processes

3 December 2013
www.inventivedesigners.com
27
Processes
Planning

3 December 2013
www.inventivedesigners.com
28
Planning
Sprints of 4 weeks (20 days)
• 17 days of development
• 3 days of manual testing

Code freeze

• 5 days later: release x
R
Sprint x
Week 1
Development

3 December 2013
www.inventivedesigners.com
29

Testing
Week 2

Week 3

R

Week 4
Testing

Sprint x + 1
Week 1
Development
Planning
How do we decide what to do next?
• Bugs
• Backlog (input from customers, services, development)

• New features
• Roadmap
• Input from stakeholders
• Customers

• Other departments (services, …)
• Strategic (management)

3 December 2013
www.inventivedesigners.com
30
Processes
Meetings

3 December 2013
www.inventivedesigners.com
31
Meetings

Sign-Off
• last day of sprint
• developers
• knowledge sharing
• explain next sprint

Sprint review
• 1st day of sprint
• developers + stakeholders
• demo’s last sprint
R
Sprint x
Week 1
Development
Technical meeting
• 1st day of sprint
• team leaders
3 December 2013
www.inventivedesigners.com
• planning/priorities/…
32

Testing
Week 2

Week 3

R

Week 4
Testing

Sprint x + 1
Week 1
Development

Stand-up
• every day
• developers
• yesterday/today/impediments
Processes
Code Reviews

3 December 2013
www.inventivedesigners.com
33
Code Reviews: What?

Before a code change makes it into the product, reviewed by another
developer
• All bug-fixes are reviewed
• New features are not formally reviewed, but behavior and design is
discussed with team leads (another process)

3 December 2013
www.inventivedesigners.com
34
Code Reviews: Why?
• 4 eyes see more than 2
• Trace down mistakes (typos, oversights,
reasoning errors) early on

• A fresh look on the problem
• Guard coding guidelines and best
practices

• Helps when coaching junior developers

3 December 2013
www.inventivedesigners.com
35
Code Reviews: How?
• New branch in Git
• Commit until your code is ready
• Push to stash
• Open a “pull request” (request for pulling my branch in the main branch)
• Reviewer gives remarks and ultimately accepts patch
• Pull request is merged in main branch

3 December 2013
www.inventivedesigners.com
36
3 December 2013
www.inventivedesigners.com
37
Processes
Testing

3 December 2013
www.inventivedesigners.com
38
Testing: Automated tests

• Hudson builds
• Add automated tests while developing
New Features
• Add automated tests when fixing a bug
(regression tests)

3 December 2013
www.inventivedesigners.com
39
Testing: Manual tests
At the end of each sprint, every issue (bug, task, new feature) is tested by another
developer
• Again, a fresh look on the problem (like review)
• Was the customer’s problem actually fixed?
R

Testing

Sprint x

R
Sprint x + 1

Week 1

Week 2

Week 3

Week 4

Development

Testing

Week 1
Development

Beta testing
• Scenarios that are tested manually, just before a major release
• User can see other problems that are not captured in tests
R

Testing

Sprint x
Week 1

R

Testing

Sprint x
Week 2

Week 3

Development

Week 4

Week 1

Testing

3 December 2013
www.inventivedesigners.com
40

Development

R

Testing

Sprint x
Week 2

Week 3

Week 4

Week 1
Testing

Development

R
Sprint x + 1

Week 2

Week 3

Week 4

Week 1
Testing

Development
Processes
New features

3 December 2013
www.inventivedesigners.com
41
New features
4 phases
• Research
• Describe

• Estimate
• Implement (+ write tests and documentation)

Resembles “Waterfall”, but no “Big Design Up Front” because we split
features and deliver increments.
3 December 2013
www.inventivedesigners.com
42
New features

“Definition of Done” (SCRUM-principle)
We saw a shift:

• Works in developer’s workspace
• Builds and the automated tests succeed
• Documentation is available

• Is deployed on a live instance (cloud)

3 December 2013
www.inventivedesigners.com
43
With processes / tools
When will that feature be available?
The first 2 sub-features in 3 weeks.
Will it work?
The discussed scenarios are tested every night,
your output with sample data is still the same.
Can we get a new version?
Sure, in 3 weeks.
But it introduced a bug.
We’re sorry. It’s a corner case we didn’t think of.
We’ll add an automatic test to make sure it
won’t break again.
3 December 2013
www.inventivedesigners.com
44
Questions?

3 December 2013
www.inventivedesigners.com
45
More info? Contact us:
EU phone: +32 3 425 40 00
US phone: 011 32 3 425 40 00
email: info@inventivedesigners.com

3 December 2013
www.inventivedesigners.com
Comics were taken from Geek & Poke and are licensed under Create Commons 3.0

More Related Content

More from Scriptura Engage

5 concepts of document design
5 concepts of document design5 concepts of document design
5 concepts of document design
Scriptura Engage
 

More from Scriptura Engage (18)

Challenges in Telecom
Challenges in TelecomChallenges in Telecom
Challenges in Telecom
 
The Mobile worker
The Mobile workerThe Mobile worker
The Mobile worker
 
Challenges in insurance rely on IT
Challenges in insurance rely on ITChallenges in insurance rely on IT
Challenges in insurance rely on IT
 
5 concepts of document design
5 concepts of document design5 concepts of document design
5 concepts of document design
 
InfoTrends' view on customer communications management trends
InfoTrends' view on customer communications management trendsInfoTrends' view on customer communications management trends
InfoTrends' view on customer communications management trends
 
Insights in customer communications stragegies
Insights in customer communications stragegiesInsights in customer communications stragegies
Insights in customer communications stragegies
 
Customer communications management strategy
Customer communications management strategyCustomer communications management strategy
Customer communications management strategy
 
Are you in control of your customer communications?
Are you in control of your customer communications?Are you in control of your customer communications?
Are you in control of your customer communications?
 
Doccle Connect: How to connect 50% faster to Doccle
Doccle Connect: How to connect 50% faster to DoccleDoccle Connect: How to connect 50% faster to Doccle
Doccle Connect: How to connect 50% faster to Doccle
 
All business communications centralized: Scriptura Engage
All business communications centralized: Scriptura EngageAll business communications centralized: Scriptura Engage
All business communications centralized: Scriptura Engage
 
Open standards in document output
Open standards in document outputOpen standards in document output
Open standards in document output
 
Create fully personalized communications in real time
Create fully personalized communications in real timeCreate fully personalized communications in real time
Create fully personalized communications in real time
 
Introduction to multichannel communications with Scriptura Engage
Introduction to multichannel communications with Scriptura EngageIntroduction to multichannel communications with Scriptura Engage
Introduction to multichannel communications with Scriptura Engage
 
6 Tips for better multichannel customer communications
6 Tips for better multichannel customer communications 6 Tips for better multichannel customer communications
6 Tips for better multichannel customer communications
 
5 Concepts for better document design
5 Concepts for better document design5 Concepts for better document design
5 Concepts for better document design
 
10 Tips to enhance your electronic forms
10 Tips to enhance your electronic forms10 Tips to enhance your electronic forms
10 Tips to enhance your electronic forms
 
Electronic forms drive customer self-service
Electronic forms drive customer self-serviceElectronic forms drive customer self-service
Electronic forms drive customer self-service
 
Innovation: it's about the rocket, not the apple
Innovation: it's about the rocket, not the appleInnovation: it's about the rocket, not the apple
Innovation: it's about the rocket, not the apple
 

Recently uploaded

會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文
會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文
會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文
中 央社
 
IATP How-to Foreign Travel May 2024.pdff
IATP How-to Foreign Travel May 2024.pdffIATP How-to Foreign Travel May 2024.pdff
IATP How-to Foreign Travel May 2024.pdff
17thcssbs2
 
會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽
會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽
會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽
中 央社
 

Recently uploaded (20)

Behavioral-sciences-dr-mowadat rana (1).pdf
Behavioral-sciences-dr-mowadat rana (1).pdfBehavioral-sciences-dr-mowadat rana (1).pdf
Behavioral-sciences-dr-mowadat rana (1).pdf
 
The Ball Poem- John Berryman_20240518_001617_0000.pptx
The Ball Poem- John Berryman_20240518_001617_0000.pptxThe Ball Poem- John Berryman_20240518_001617_0000.pptx
The Ball Poem- John Berryman_20240518_001617_0000.pptx
 
Championnat de France de Tennis de table/
Championnat de France de Tennis de table/Championnat de France de Tennis de table/
Championnat de France de Tennis de table/
 
Morse OER Some Benefits and Challenges.pptx
Morse OER Some Benefits and Challenges.pptxMorse OER Some Benefits and Challenges.pptx
Morse OER Some Benefits and Challenges.pptx
 
INU_CAPSTONEDESIGN_비밀번호486_업로드용 발표자료.pdf
INU_CAPSTONEDESIGN_비밀번호486_업로드용 발표자료.pdfINU_CAPSTONEDESIGN_비밀번호486_업로드용 발표자료.pdf
INU_CAPSTONEDESIGN_비밀번호486_업로드용 발표자료.pdf
 
How to Analyse Profit of a Sales Order in Odoo 17
How to Analyse Profit of a Sales Order in Odoo 17How to Analyse Profit of a Sales Order in Odoo 17
How to Analyse Profit of a Sales Order in Odoo 17
 
Open Educational Resources Primer PowerPoint
Open Educational Resources Primer PowerPointOpen Educational Resources Primer PowerPoint
Open Educational Resources Primer PowerPoint
 
philosophy and it's principles based on the life
philosophy and it's principles based on the lifephilosophy and it's principles based on the life
philosophy and it's principles based on the life
 
會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文
會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文
會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文
 
Removal Strategy _ FEFO _ Working with Perishable Products in Odoo 17
Removal Strategy _ FEFO _ Working with Perishable Products in Odoo 17Removal Strategy _ FEFO _ Working with Perishable Products in Odoo 17
Removal Strategy _ FEFO _ Working with Perishable Products in Odoo 17
 
How to the fix Attribute Error in odoo 17
How to the fix Attribute Error in odoo 17How to the fix Attribute Error in odoo 17
How to the fix Attribute Error in odoo 17
 
Danh sách HSG Bộ môn cấp trường - Cấp THPT.pdf
Danh sách HSG Bộ môn cấp trường - Cấp THPT.pdfDanh sách HSG Bộ môn cấp trường - Cấp THPT.pdf
Danh sách HSG Bộ môn cấp trường - Cấp THPT.pdf
 
Application of Matrices in real life. Presentation on application of matrices
Application of Matrices in real life. Presentation on application of matricesApplication of Matrices in real life. Presentation on application of matrices
Application of Matrices in real life. Presentation on application of matrices
 
size separation d pharm 1st year pharmaceutics
size separation d pharm 1st year pharmaceuticssize separation d pharm 1st year pharmaceutics
size separation d pharm 1st year pharmaceutics
 
Basic Civil Engineering notes on Transportation Engineering, Modes of Transpo...
Basic Civil Engineering notes on Transportation Engineering, Modes of Transpo...Basic Civil Engineering notes on Transportation Engineering, Modes of Transpo...
Basic Civil Engineering notes on Transportation Engineering, Modes of Transpo...
 
IATP How-to Foreign Travel May 2024.pdff
IATP How-to Foreign Travel May 2024.pdffIATP How-to Foreign Travel May 2024.pdff
IATP How-to Foreign Travel May 2024.pdff
 
TỔNG HỢP HƠN 100 ĐỀ THI THỬ TỐT NGHIỆP THPT VẬT LÝ 2024 - TỪ CÁC TRƯỜNG, TRƯ...
TỔNG HỢP HƠN 100 ĐỀ THI THỬ TỐT NGHIỆP THPT VẬT LÝ 2024 - TỪ CÁC TRƯỜNG, TRƯ...TỔNG HỢP HƠN 100 ĐỀ THI THỬ TỐT NGHIỆP THPT VẬT LÝ 2024 - TỪ CÁC TRƯỜNG, TRƯ...
TỔNG HỢP HƠN 100 ĐỀ THI THỬ TỐT NGHIỆP THPT VẬT LÝ 2024 - TỪ CÁC TRƯỜNG, TRƯ...
 
....................Muslim-Law notes.pdf
....................Muslim-Law notes.pdf....................Muslim-Law notes.pdf
....................Muslim-Law notes.pdf
 
Pragya Champions Chalice 2024 Prelims & Finals Q/A set, General Quiz
Pragya Champions Chalice 2024 Prelims & Finals Q/A set, General QuizPragya Champions Chalice 2024 Prelims & Finals Q/A set, General Quiz
Pragya Champions Chalice 2024 Prelims & Finals Q/A set, General Quiz
 
會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽
會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽
會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽
 

Development Practices at Inventive Designers

  • 1. Development practices at Inventive Designers Tars Joris – Development Manager 3 December 2013 www.inventivedesigners.com
  • 2. Who am I? Tars Joris • 1997-2001: Master in Computer Science: University of Antwerp • 2001-2006: Developer at eVision bvba: Software for the furniture industry • 2006-2008: Developer at Inventive Designers • 2008-now : Development Manager at Inventive Designers 3 December 2013 www.inventivedesigners.com 2
  • 3. Agenda General Tools Processes • About Inventive Designers • IDE • Planning • VCS • Meetings • The team • Bug tracking • Code reviews • The software products • Continuous integration • Testing 3 December 2013 www.inventivedesigners.com 3 • New features
  • 4. About Inventive Designers nv • Software Product Company: all in-house development • Services around these products: Integration + Customization • Focus on innovation • Participate in and organize meetings for working groups and communities • W3C: XSL-FO, XForms, Web Crypto • Other: AFP Color Consortium, Belgian Eclipse User Group, Scala, Big data, … 3 December 2013 www.inventivedesigners.com 4
  • 6. The development team 4 team leads • 2 Research & Development Managers • 1 Release / Quality Assurance Manager • 1 Development Manager / SCRUM Master 3 December 2013 www.inventivedesigners.com 6
  • 7. Products Scriptura Engage Working actively on the last 2 products IntelliStamp 3 December 2013 www.inventivedesigners.com 7
  • 8. Some metrics on Scriptura Engage • Working on 8th major release • 6 major platforms • 87133 automated tests running across 24 builds on 18 servers for combinations of 5 java versions, 9 OSes, 3 CPU architectures, 5 browser versions and 5 databases • 3.7 Gb codebase in 289.811 files and 86.007 folders • 2 million lines of code • 1564 libraries • 12 years of development • 200+ releases 3 December 2013 www.inventivedesigners.com 8
  • 9. Without processes / tools When will that feature be available? When it’s ready. Will it work? It might. Can we get a new version? Sure, in 5 minutes. But it broke last week’s fix. Oh yeah, oops. What was the problem again? 3 December 2013 www.inventivedesigners.com 9
  • 11. Tools IDE - Eclipse 3 December 2013 www.inventivedesigners.com 11
  • 12. IDE - Eclipse • Integrated Development Environment • Most of the code is Java • Also XSLT, XForms, Javascript, SQL, XQuery, Xcode, … 3 December 2013 www.inventivedesigners.com 12
  • 13. Tools Version Control System - Git 3 December 2013 www.inventivedesigners.com 13
  • 14. VCS - Git: What? • Version Control System • Distributed • Eclipse plug-in / Powerful command-line 3 December 2013 www.inventivedesigners.com 14
  • 15. VCS - Git: What? Atlassian Stash • On own hardware • Central repository • Single point of truth (not required by Git) • Web interface 3 December 2013 www.inventivedesigners.com 15
  • 16. VCS - Git: Why? • Code sharing and collaboration • History: when was this changed? By who? Why? • Backup: Change/delete code as much as you want • Tagging: what exactly was in a certain release? • Branching: work on different versions of a product at the same time 3 December 2013 www.inventivedesigners.com 16
  • 17. VCS - Git: Nice features • Local commits • Local history • Light-weight branching • work on several issues at the same time (commit what you have and switch to another branch) • No manual management of patches 3 December 2013 www.inventivedesigners.com 17
  • 18. Tools Bug Tracking - Jira 3 December 2013 www.inventivedesigners.com 18
  • 19. Bug Tracking - Jira: What? System for tracking • Bugs • • Filed by customers (external) Filed by services/development (internal) • Tasks • • • Changes to test-infrastructure Small enhancements Actual parts of a new feature implementation • New features • • Requests filed by customers Strategic features 3 December 2013 www.inventivedesigners.com 19
  • 20. Bug Tracking - Jira: What? • Link with support cases • Comments by developers • Code changes automatically linked • Time tracking • To do list (assigned issues) • Bugs/tasks • Review subtasks • Test subtasks • Describe subtasks 3 December 2013 www.inventivedesigners.com 20
  • 22. Bug Tracking - Jira: Why? • Trail/history of a code-change • Link from code-change to • • • • • Jira issue Comments wiki-pages support case customer e-mails • Mark issues related / duplicate • Estimate work / plan sprint / assign work • Workflow: review / test / research / describe 3 December 2013 www.inventivedesigners.com 22
  • 23. Tools Continuous Integration - Hudson 3 December 2013 www.inventivedesigners.com 23
  • 24. Continuous Integration – Hudson: What? • Runs automated builds • • • at scheduled times manual triggered by another build (chain) • Compiles all code when there’s a change (throughout the day) • Runs automated tests with different combinations of OS, JDK, database, … • • • • Unit tests: verify result of a Java-method End-to-end tests: verify files written on disk or interrogate public APIs of the system Browser tests: Automatically launch a browser and interact (type text, click buttons, verify HTML) GUI tests: Launch eclipse, … 3 December 2013 www.inventivedesigners.com 24
  • 26. Continuous Integration – Hudson: Why? • Controlled environment for running tests: consistency • History of test results • Statistics: code coverage, … • Produces nightly builds • Useful for beta testing • Closer to an actual release then a development environment • Use it to test against, to catch build-problems early (obfuscation, …) 3 December 2013 www.inventivedesigners.com 26
  • 29. Planning Sprints of 4 weeks (20 days) • 17 days of development • 3 days of manual testing Code freeze • 5 days later: release x R Sprint x Week 1 Development 3 December 2013 www.inventivedesigners.com 29 Testing Week 2 Week 3 R Week 4 Testing Sprint x + 1 Week 1 Development
  • 30. Planning How do we decide what to do next? • Bugs • Backlog (input from customers, services, development) • New features • Roadmap • Input from stakeholders • Customers • Other departments (services, …) • Strategic (management) 3 December 2013 www.inventivedesigners.com 30
  • 32. Meetings Sign-Off • last day of sprint • developers • knowledge sharing • explain next sprint Sprint review • 1st day of sprint • developers + stakeholders • demo’s last sprint R Sprint x Week 1 Development Technical meeting • 1st day of sprint • team leaders 3 December 2013 www.inventivedesigners.com • planning/priorities/… 32 Testing Week 2 Week 3 R Week 4 Testing Sprint x + 1 Week 1 Development Stand-up • every day • developers • yesterday/today/impediments
  • 33. Processes Code Reviews 3 December 2013 www.inventivedesigners.com 33
  • 34. Code Reviews: What? Before a code change makes it into the product, reviewed by another developer • All bug-fixes are reviewed • New features are not formally reviewed, but behavior and design is discussed with team leads (another process) 3 December 2013 www.inventivedesigners.com 34
  • 35. Code Reviews: Why? • 4 eyes see more than 2 • Trace down mistakes (typos, oversights, reasoning errors) early on • A fresh look on the problem • Guard coding guidelines and best practices • Helps when coaching junior developers 3 December 2013 www.inventivedesigners.com 35
  • 36. Code Reviews: How? • New branch in Git • Commit until your code is ready • Push to stash • Open a “pull request” (request for pulling my branch in the main branch) • Reviewer gives remarks and ultimately accepts patch • Pull request is merged in main branch 3 December 2013 www.inventivedesigners.com 36
  • 39. Testing: Automated tests • Hudson builds • Add automated tests while developing New Features • Add automated tests when fixing a bug (regression tests) 3 December 2013 www.inventivedesigners.com 39
  • 40. Testing: Manual tests At the end of each sprint, every issue (bug, task, new feature) is tested by another developer • Again, a fresh look on the problem (like review) • Was the customer’s problem actually fixed? R Testing Sprint x R Sprint x + 1 Week 1 Week 2 Week 3 Week 4 Development Testing Week 1 Development Beta testing • Scenarios that are tested manually, just before a major release • User can see other problems that are not captured in tests R Testing Sprint x Week 1 R Testing Sprint x Week 2 Week 3 Development Week 4 Week 1 Testing 3 December 2013 www.inventivedesigners.com 40 Development R Testing Sprint x Week 2 Week 3 Week 4 Week 1 Testing Development R Sprint x + 1 Week 2 Week 3 Week 4 Week 1 Testing Development
  • 41. Processes New features 3 December 2013 www.inventivedesigners.com 41
  • 42. New features 4 phases • Research • Describe • Estimate • Implement (+ write tests and documentation) Resembles “Waterfall”, but no “Big Design Up Front” because we split features and deliver increments. 3 December 2013 www.inventivedesigners.com 42
  • 43. New features “Definition of Done” (SCRUM-principle) We saw a shift: • Works in developer’s workspace • Builds and the automated tests succeed • Documentation is available • Is deployed on a live instance (cloud) 3 December 2013 www.inventivedesigners.com 43
  • 44. With processes / tools When will that feature be available? The first 2 sub-features in 3 weeks. Will it work? The discussed scenarios are tested every night, your output with sample data is still the same. Can we get a new version? Sure, in 3 weeks. But it introduced a bug. We’re sorry. It’s a corner case we didn’t think of. We’ll add an automatic test to make sure it won’t break again. 3 December 2013 www.inventivedesigners.com 44
  • 46. More info? Contact us: EU phone: +32 3 425 40 00 US phone: 011 32 3 425 40 00 email: info@inventivedesigners.com 3 December 2013 www.inventivedesigners.com Comics were taken from Geek & Poke and are licensed under Create Commons 3.0