+ All Categories
Home > Education > Development Practices at Inventive Designers

Development Practices at Inventive Designers

Date post: 14-Sep-2014
Category:
View: 235 times
Download: 1 times
Share this document with a friend
Description:
I talked at the University of Antwerp about the way we organize our development team at Inventive Designers. EESTEC LC Antwerp organizes such presentations from time to time for the students. We try to develop our software efficiently, with an emphasis on quality, but still being able to deliver features in a timely fashion. We try out new techniques regularly and see if we can benefit from them. It was a good opportunity for the audience to get some idea of how things could work in the field. It's not always clear what to expect when starting at your first job, and a lot of processes are applicable when doing school projects also. I got some interesting questions and had the opportunity to elaborate some more after the presentation. I was impressed with their initiatives for organizing their teams. We are also involved in projects at the University of Antwerp, as an industrial partner. We like to stay in touch with the academical world, to stimulate innovation and good education, and to attract new talent.
Popular Tags:
46
Development practices at Inventive Designers Tars Joris – Development Manager 3 December 2013 www.inventivedesigners.com
Transcript
Page 1: Development Practices at Inventive Designers

Development practicesat Inventive Designers

Tars Joris – Development Manager 3 December 2013

www.inventivedesigners.com

Page 2: Development Practices at Inventive Designers

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

Page 3: Development Practices at Inventive Designers

Agenda

General

• About Inventive

Designers

• The team

• The software

products

Tools

• IDE

• VCS

• Bug tracking

• Continuous

integration

Processes

• Planning

• Meetings

• Code reviews

• Testing

• New features

3 December 2013

www.inventivedesigners.com

3

Page 4: Development Practices at Inventive Designers

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

Page 5: Development Practices at Inventive Designers

Organization

3 December 2013

www.inventivedesigners.com

5

Development

Services

Support

Sales

Marketing

HR/Legal/…

Page 6: Development Practices at Inventive Designers

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

Page 7: Development Practices at Inventive Designers

Products

Working actively on the last 2

products

3 December 2013

www.inventivedesigners.com

7

Scriptura Engage

IntelliStamp

Page 8: Development Practices at Inventive Designers

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

Page 9: Development Practices at Inventive Designers

Without processes / tools

3 December 2013

www.inventivedesigners.com

9

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?

Page 10: Development Practices at Inventive Designers

3 December 2013

www.inventivedesigners.com

10

Development

Tools

Page 11: Development Practices at Inventive Designers

Tools

IDE - Eclipse

3 December 2013

www.inventivedesigners.com

11

Page 12: Development Practices at Inventive Designers

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

Page 13: Development Practices at Inventive Designers

Tools

Version Control System - Git

3 December 2013

www.inventivedesigners.com

13

Page 14: Development Practices at Inventive Designers

VCS - Git: What?

• Version Control System

• Distributed

• Eclipse plug-in /

Powerful command-line

3 December 2013

www.inventivedesigners.com

14

Page 15: Development Practices at Inventive Designers

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

Page 16: Development Practices at Inventive Designers

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

Page 17: Development Practices at Inventive Designers

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

Page 18: Development Practices at Inventive Designers

Tools

Bug Tracking - Jira

3 December 2013

www.inventivedesigners.com

18

Page 19: Development Practices at Inventive Designers

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

Page 20: Development Practices at Inventive Designers

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

Page 21: Development Practices at Inventive Designers

3 December 2013

www.inventivedesigners.com

21

Page 22: Development Practices at Inventive Designers

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

Page 23: Development Practices at Inventive Designers

Tools

Continuous Integration - Hudson

3 December 2013

www.inventivedesigners.com

23

Page 24: Development Practices at Inventive Designers

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

Page 25: Development Practices at Inventive Designers

3 December 2013

www.inventivedesigners.com

25

Page 26: Development Practices at Inventive Designers

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

Page 27: Development Practices at Inventive Designers

3 December 2013

www.inventivedesigners.com

27

Development

Processes

Page 28: Development Practices at Inventive Designers

Processes

Planning

3 December 2013

www.inventivedesigners.com

28

Page 29: Development Practices at Inventive Designers

Planning

Sprints of 4 weeks (20 days)

• 17 days of development

• 3 days of manual testing

• 5 days later: release x

3 December 2013

www.inventivedesigners.com

29

R Testing R

Sprint x Sprint x + 1

Week 1 Week 2 Week 3 Week 4 Week 1

Development Testing Development

Code freeze

Page 30: Development Practices at Inventive Designers

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

Page 31: Development Practices at Inventive Designers

Processes

Meetings

3 December 2013

www.inventivedesigners.com

31

Page 32: Development Practices at Inventive Designers

Meetings

3 December 2013

www.inventivedesigners.com

32

R Testing R

Sprint x Sprint x + 1

Week 1 Week 2 Week 3 Week 4 Week 1

Development Testing Development

Sprint review• 1st day of sprint• developers + stakeholders• demo’s last sprint

Technical meeting• 1st day of sprint• team leaders• planning/priorities/…

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

Stand-up• every day• developers• yesterday/today/impediments

Page 33: Development Practices at Inventive Designers

Processes

Code Reviews

3 December 2013

www.inventivedesigners.com

33

Page 34: Development Practices at Inventive Designers

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

Page 35: Development Practices at Inventive Designers

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

Page 36: Development Practices at Inventive Designers

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

Page 37: Development Practices at Inventive Designers

3 December 2013

www.inventivedesigners.com

37

Page 38: Development Practices at Inventive Designers

Processes

Testing

3 December 2013

www.inventivedesigners.com

38

Page 39: Development Practices at Inventive Designers

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

Page 40: Development Practices at Inventive Designers

Testing: Manual testsAt 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?

3 December 2013

www.inventivedesigners.com

40

R Testing R

Sprint x Sprint x + 1

Week 1 Week 2 Week 3 Week 4 Week 1

Development Testing Development

Beta testing

• Scenarios that are tested manually, just before a major release

• User can see other problems that are not captured in testsR Testing

Sprint x

Week 1 Week 2 Week 3 Week 4

Development Testing

R Testing R

Sprint x Sprint x + 1

Week 1 Week 2 Week 3 Week 4 Week 1

Development Testing Development

R Testing

Sprint x

Week 1 Week 2 Week 3 Week 4

Development Testing

Page 41: Development Practices at Inventive Designers

Processes

New features

3 December 2013

www.inventivedesigners.com

41

Page 42: Development Practices at Inventive Designers

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

Page 43: Development Practices at Inventive Designers

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

Page 44: Development Practices at Inventive Designers

With processes / tools

3 December 2013

www.inventivedesigners.com

44

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.

Page 45: Development Practices at Inventive Designers

Questions?

3 December 2013

www.inventivedesigners.com

45

Page 46: Development Practices at Inventive Designers

More info? Contact us:EU phone: +32 3 425 40 00

US phone: 011 32 3 425 40 00

email: [email protected]

3 December 2013

www.inventivedesigners.com

Comics were taken from Geek & Poke and are licensed under Create Commons 3.0


Recommended