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

Challenges in insurance rely on IT
Challenges in insurance rely on ITChallenges in insurance rely on IT
Challenges in insurance rely on ITScriptura Engage
 
5 concepts of document design
5 concepts of document design5 concepts of document design
5 concepts of document designScriptura Engage
 
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 trendsScriptura Engage
 
Insights in customer communications stragegies
Insights in customer communications stragegiesInsights in customer communications stragegies
Insights in customer communications stragegiesScriptura Engage
 
Customer communications management strategy
Customer communications management strategyCustomer communications management strategy
Customer communications management strategyScriptura Engage
 
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?Scriptura Engage
 
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 DoccleScriptura Engage
 
All business communications centralized: Scriptura Engage
All business communications centralized: Scriptura EngageAll business communications centralized: Scriptura Engage
All business communications centralized: Scriptura EngageScriptura Engage
 
Open standards in document output
Open standards in document outputOpen standards in document output
Open standards in document outputScriptura Engage
 
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 timeScriptura Engage
 
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 EngageScriptura 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 Scriptura Engage
 
5 Concepts for better document design
5 Concepts for better document design5 Concepts for better document design
5 Concepts for better document designScriptura Engage
 
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 formsScriptura Engage
 
Electronic forms drive customer self-service
Electronic forms drive customer self-serviceElectronic forms drive customer self-service
Electronic forms drive customer self-serviceScriptura Engage
 
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 appleScriptura 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

Kodo Millet PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...
Kodo Millet  PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...Kodo Millet  PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...
Kodo Millet PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...pradhanghanshyam7136
 
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdfUGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdfNirmal Dwivedi
 
ICT role in 21st century education and it's challenges.
ICT role in 21st century education and it's challenges.ICT role in 21st century education and it's challenges.
ICT role in 21st century education and it's challenges.MaryamAhmad92
 
80 ĐỀ THI THỬ TUYỂN SINH TIẾNG ANH VÀO 10 SỞ GD – ĐT THÀNH PHỐ HỒ CHÍ MINH NĂ...
80 ĐỀ THI THỬ TUYỂN SINH TIẾNG ANH VÀO 10 SỞ GD – ĐT THÀNH PHỐ HỒ CHÍ MINH NĂ...80 ĐỀ THI THỬ TUYỂN SINH TIẾNG ANH VÀO 10 SỞ GD – ĐT THÀNH PHỐ HỒ CHÍ MINH NĂ...
80 ĐỀ THI THỬ TUYỂN SINH TIẾNG ANH VÀO 10 SỞ GD – ĐT THÀNH PHỐ HỒ CHÍ MINH NĂ...Nguyen Thanh Tu Collection
 
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...Nguyen Thanh Tu Collection
 
Key note speaker Neum_Admir Softic_ENG.pdf
Key note speaker Neum_Admir Softic_ENG.pdfKey note speaker Neum_Admir Softic_ENG.pdf
Key note speaker Neum_Admir Softic_ENG.pdfAdmir Softic
 
Python Notes for mca i year students osmania university.docx
Python Notes for mca i year students osmania university.docxPython Notes for mca i year students osmania university.docx
Python Notes for mca i year students osmania university.docxRamakrishna Reddy Bijjam
 
Food safety_Challenges food safety laboratories_.pdf
Food safety_Challenges food safety laboratories_.pdfFood safety_Challenges food safety laboratories_.pdf
Food safety_Challenges food safety laboratories_.pdfSherif Taha
 
Graduate Outcomes Presentation Slides - English
Graduate Outcomes Presentation Slides - EnglishGraduate Outcomes Presentation Slides - English
Graduate Outcomes Presentation Slides - Englishneillewis46
 
Making communications land - Are they received and understood as intended? we...
Making communications land - Are they received and understood as intended? we...Making communications land - Are they received and understood as intended? we...
Making communications land - Are they received and understood as intended? we...Association for Project Management
 
How to Manage Global Discount in Odoo 17 POS
How to Manage Global Discount in Odoo 17 POSHow to Manage Global Discount in Odoo 17 POS
How to Manage Global Discount in Odoo 17 POSCeline George
 
REMIFENTANIL: An Ultra short acting opioid.pptx
REMIFENTANIL: An Ultra short acting opioid.pptxREMIFENTANIL: An Ultra short acting opioid.pptx
REMIFENTANIL: An Ultra short acting opioid.pptxDr. Ravikiran H M Gowda
 
Unit 3 Emotional Intelligence and Spiritual Intelligence.pdf
Unit 3 Emotional Intelligence and Spiritual Intelligence.pdfUnit 3 Emotional Intelligence and Spiritual Intelligence.pdf
Unit 3 Emotional Intelligence and Spiritual Intelligence.pdfDr Vijay Vishwakarma
 
On National Teacher Day, meet the 2024-25 Kenan Fellows
On National Teacher Day, meet the 2024-25 Kenan FellowsOn National Teacher Day, meet the 2024-25 Kenan Fellows
On National Teacher Day, meet the 2024-25 Kenan FellowsMebane Rash
 
Holdier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdfHoldier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdfagholdier
 
2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx
2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx
2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptxMaritesTamaniVerdade
 
Jamworks pilot and AI at Jisc (20/03/2024)
Jamworks pilot and AI at Jisc (20/03/2024)Jamworks pilot and AI at Jisc (20/03/2024)
Jamworks pilot and AI at Jisc (20/03/2024)Jisc
 
General Principles of Intellectual Property: Concepts of Intellectual Proper...
General Principles of Intellectual Property: Concepts of Intellectual  Proper...General Principles of Intellectual Property: Concepts of Intellectual  Proper...
General Principles of Intellectual Property: Concepts of Intellectual Proper...Poonam Aher Patil
 
Introduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsIntroduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsTechSoup
 
Sociology 101 Demonstration of Learning Exhibit
Sociology 101 Demonstration of Learning ExhibitSociology 101 Demonstration of Learning Exhibit
Sociology 101 Demonstration of Learning Exhibitjbellavia9
 

Recently uploaded (20)

Kodo Millet PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...
Kodo Millet  PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...Kodo Millet  PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...
Kodo Millet PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...
 
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdfUGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
 
ICT role in 21st century education and it's challenges.
ICT role in 21st century education and it's challenges.ICT role in 21st century education and it's challenges.
ICT role in 21st century education and it's challenges.
 
80 ĐỀ THI THỬ TUYỂN SINH TIẾNG ANH VÀO 10 SỞ GD – ĐT THÀNH PHỐ HỒ CHÍ MINH NĂ...
80 ĐỀ THI THỬ TUYỂN SINH TIẾNG ANH VÀO 10 SỞ GD – ĐT THÀNH PHỐ HỒ CHÍ MINH NĂ...80 ĐỀ THI THỬ TUYỂN SINH TIẾNG ANH VÀO 10 SỞ GD – ĐT THÀNH PHỐ HỒ CHÍ MINH NĂ...
80 ĐỀ THI THỬ TUYỂN SINH TIẾNG ANH VÀO 10 SỞ GD – ĐT THÀNH PHỐ HỒ CHÍ MINH NĂ...
 
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
 
Key note speaker Neum_Admir Softic_ENG.pdf
Key note speaker Neum_Admir Softic_ENG.pdfKey note speaker Neum_Admir Softic_ENG.pdf
Key note speaker Neum_Admir Softic_ENG.pdf
 
Python Notes for mca i year students osmania university.docx
Python Notes for mca i year students osmania university.docxPython Notes for mca i year students osmania university.docx
Python Notes for mca i year students osmania university.docx
 
Food safety_Challenges food safety laboratories_.pdf
Food safety_Challenges food safety laboratories_.pdfFood safety_Challenges food safety laboratories_.pdf
Food safety_Challenges food safety laboratories_.pdf
 
Graduate Outcomes Presentation Slides - English
Graduate Outcomes Presentation Slides - EnglishGraduate Outcomes Presentation Slides - English
Graduate Outcomes Presentation Slides - English
 
Making communications land - Are they received and understood as intended? we...
Making communications land - Are they received and understood as intended? we...Making communications land - Are they received and understood as intended? we...
Making communications land - Are they received and understood as intended? we...
 
How to Manage Global Discount in Odoo 17 POS
How to Manage Global Discount in Odoo 17 POSHow to Manage Global Discount in Odoo 17 POS
How to Manage Global Discount in Odoo 17 POS
 
REMIFENTANIL: An Ultra short acting opioid.pptx
REMIFENTANIL: An Ultra short acting opioid.pptxREMIFENTANIL: An Ultra short acting opioid.pptx
REMIFENTANIL: An Ultra short acting opioid.pptx
 
Unit 3 Emotional Intelligence and Spiritual Intelligence.pdf
Unit 3 Emotional Intelligence and Spiritual Intelligence.pdfUnit 3 Emotional Intelligence and Spiritual Intelligence.pdf
Unit 3 Emotional Intelligence and Spiritual Intelligence.pdf
 
On National Teacher Day, meet the 2024-25 Kenan Fellows
On National Teacher Day, meet the 2024-25 Kenan FellowsOn National Teacher Day, meet the 2024-25 Kenan Fellows
On National Teacher Day, meet the 2024-25 Kenan Fellows
 
Holdier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdfHoldier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdf
 
2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx
2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx
2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx
 
Jamworks pilot and AI at Jisc (20/03/2024)
Jamworks pilot and AI at Jisc (20/03/2024)Jamworks pilot and AI at Jisc (20/03/2024)
Jamworks pilot and AI at Jisc (20/03/2024)
 
General Principles of Intellectual Property: Concepts of Intellectual Proper...
General Principles of Intellectual Property: Concepts of Intellectual  Proper...General Principles of Intellectual Property: Concepts of Intellectual  Proper...
General Principles of Intellectual Property: Concepts of Intellectual Proper...
 
Introduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsIntroduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The Basics
 
Sociology 101 Demonstration of Learning Exhibit
Sociology 101 Demonstration of Learning ExhibitSociology 101 Demonstration of Learning Exhibit
Sociology 101 Demonstration of Learning Exhibit
 

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