making a quality change as a startup grows

24
Making a quality change as a startup grows Author: Ran Levy June 2014

Upload: ran-levy

Post on 21-Jun-2015

195 views

Category:

Software


10 download

DESCRIPTION

Almost every successful start-up company reaches a stage where the legacy code becomes a quality liability, withholding future progress. At MyHeritage we have faced the same issue. Since we are running a successful web-site and support a huge user base, we couldn't just stop the progress and “refactor” all of the required code. Doing a quality change in such a situation is an extreme challenge that requires the right state of mind and the right set of people.

TRANSCRIPT

Page 1: Making a quality change as a startup grows

Making a quality change as a startup grows

Author: Ran LevyJune 2014

Page 2: Making a quality change as a startup grows

• Overview - MyHeritage

• The beginning

• Making a quality change

• Moving forward and Summary

Agenda

Page 3: Making a quality change as a startup grows

Enable you to explore, discover and preserve family history and have meaningful interactions with your family around your

shared story.

Our current addressable market is therefore anyone sufficiently interested in that value proposition

Our customer value proposition

Research Document Share

Page 4: Making a quality change as a startup grows

Challenges: Scale

70 million registered users

1.5 billion tree profiles in 25 million trees

5 billion historical records

200 million photos

40 languages

1 million daily emails

Page 5: Making a quality change as a startup grows

Overview - MyHeritage

• The beginning

• Making a quality change

• Moving forward and Summary

Agenda

Page 6: Making a quality change as a startup grows

• Startup mode

– “I emailed you the requirements. Please have it ready by tomorrow ”.

– Obviously such mode has its impact in terms of:• Procedures.• Habits.• Poor code can’t scale.

The beginning

Page 7: Making a quality change as a startup grows

• A change had to be made

Constraints

Do it right vs. do it fast

Culture change is always difficult

The beginning

Page 8: Making a quality change as a startup grows

• Though changes are not easy but we have realized:

– We have the right people.

– We have the right attitude.

The wind of the change

Page 9: Making a quality change as a startup grows

• Starting with short research and pilot.

• Small measurable changes.

• LIBTWYE – Leave It Better Than When You Enter.

• Adopt as we go.

• Get management buy-in for the greater investment in quality.

General concepts along the way

Page 10: Making a quality change as a startup grows

The following slides will give a slight taste of some quality issues we handled ….

General concepts along the way

Page 11: Making a quality change as a startup grows

Overview - MyHeritage

The beginning

• Making a quality change

• Moving forward and Summary

Agenda

Page 12: Making a quality change as a startup grows

• Highly important for a company with 40+ developers:• Supports code quality.• Has fewer bugs.• Can be easily maintained.• Helps new team members get into new code.

Coding standards

Page 13: Making a quality change as a startup grows

• What was done?– Came up with coding standards+ document.– Reviewed and agreed by all developers.– Patiently commenting about pitfalls.

• Achievements:– Unified code formatting (including major legacy code reformatting).– Better error handling.– Easier to review code.– Faster ramp up phase of new developers.

Coding standards

Page 14: Making a quality change as a startup grows

• Mandatory in all system, especially complex ones:• Increases product quality.• Provides greater coverage than functional test.• Shortens overall feature development.• Code quality improvement.

Unit / integration testing

Page 15: Making a quality change as a startup grows

• What was done?– Research and pilot phase.– Gradual. – Adopt as we go.

• Achievements:– Goes without saying.– Over 75% LOC coverage of new features.– Increasing number of tests for legacy code.– Jenkins integration.

Unit / integration testing

Page 16: Making a quality change as a startup grows

• Testing needs to be done in all levels

– Covered in the next session …

End to end testing

Page 17: Making a quality change as a startup grows

• High scale system needs “think before code” phase– A phase to sync all parties.– Taking “non functional requirement” into consideration.– Identifying re-usable components.– Knowledge sharing.– Feedback gathering.

Technical design phase

Page 18: Making a quality change as a startup grows

• What was done?– Template for design doc that reviewed and discussed.– Covers:

• Non functional req.: performance, scale, testability, operability…• Different system views: static, dynamic, physical.

• Achievements– Rapid feedback on important features.– Major aspects were not neglected.– Increased re-usability.– Adopted by one dev. team and spread to the others.

Technical design phase

Page 19: Making a quality change as a startup grows

• Visibility is a must in every operational system:– Know your applicative errors.– Capability to classify and analyze them.– Automatic scanning and alerting systems.

Increasing visibility

Page 20: Making a quality change as a startup grows

• What was done?– Policy for errors reporting.– Collecting errors from all ~200 machines.– Development of automatic scanning tools.

• Achievements– Excellent visibility.– Reacting fast on errors.

Increasing visibility

Page 21: Making a quality change as a startup grows

Overview - MyHeritage

The beginning

Making a quality change

• Moving forward and Summary

Agenda

Page 22: Making a quality change as a startup grows

• Quality is contagious:– Started with one team and spread to the entire R&D.– Initiatives pushed by many R&D members.– IT support for increasing visibility with Kibana and Anemometer.– Underlying the required steps for continuous delivery. – Crucible for more efficient code reviews.

Moving forward

Page 23: Making a quality change as a startup grows

• In every successful company the time to switch from “quick and dirty” mode to producing high quality SW arrives sooner or later.

• It’s in the hands of every R&D member to make a change.

• Prototype, gradual change and improvement as go, are the keys for success.

Summary

Page 24: Making a quality change as a startup grows

Thank you and questions

[email protected]