So you think your startup is worth $10 million... EuroPython 2016 - - PowerPoint PPT Presentation

so you think your startup is worth 10 million
SMART_READER_LITE
LIVE PREVIEW

So you think your startup is worth $10 million... EuroPython 2016 - - PowerPoint PPT Presentation

So you think your startup is worth $10 million... EuroPython 2016 Bilbao, Basque Country, Spain Marc-Andr Lemburg (c) 2016 eGenix.com Software, Skills and Services GmbH, info@egenix.com Speaker Introduction Marc-Andr Lemburg Python


slide-1
SLIDE 1

(c) 2016 eGenix.com Software, Skills and Services GmbH, info@egenix.com

So you think your startup is worth $10 million...

EuroPython 2016 Bilbao, Basque Country, Spain Marc-André Lemburg

slide-2
SLIDE 2

2:41 (c) 2016 eGenix.com GmbH, info@egenix.com EuroPython 2016

Speaker Introduction Marc-André Lemburg

– Python since 1994 – Studied Mathematics – eGenix.com GmbH – Senior Software Architect – Consultant / Trainer – Python Core Developer – EuroPython Society – Python Software Foundation – Based in Düsseldorf, Germany

slide-3
SLIDE 3

3:41 (c) 2016 eGenix.com GmbH, info@egenix.com EuroPython 2016

Agenda

  • Introduction
  • Analysis
  • Models
  • Valuation
  • Make of buy
  • Conclusion
slide-4
SLIDE 4

(c) 2016 eGenix.com GmbH, info@egenix.com EuroPython 2016 4:41

Bu Buying Python Bu Buying Python Startups Startups

slide-5
SLIDE 5

5:41 (c) 2016 eGenix.com GmbH, info@egenix.com EuroPython 2016

Disclaimer

  • These ideas were used in an actual valuation

– We do not claim completeness – We do not claim scientific accuracy

  • The results do make sense based on our

experience in running projects

slide-6
SLIDE 6

6:41 (c) 2016 eGenix.com GmbH, info@egenix.com EuroPython 2016

Value of an IT startup

  • Business value

– Market share = users / market size – Cost efficiency (HR, processes) – Innovation factors – Risks (affecting operations) – ...

  • IT value

– Quality of developers / managers – Application design quality (structure, flexibility) – Code quality (structure, metrics, tests) – Risks (affecting technical capabilities) – ...

slide-7
SLIDE 7

(c) 2016 eGenix.com GmbH, info@egenix.com EuroPython 2016 7:41

Risks Risks

slide-8
SLIDE 8

8:41 (c) 2016 eGenix.com GmbH, info@egenix.com EuroPython 2016

Business risks

  • Affecting the business operation

– Loosing important employees – Financial / investment risks – Market changes – Competing against open source / freebies – Infringements (patent/trademark/regulations) – Downtime – Data security breaches – ...

slide-9
SLIDE 9

9:41 (c) 2016 eGenix.com GmbH, info@egenix.com EuroPython 2016

IT risks

  • Affecting technical capabilities

– Problems in third party tools / extensions /services (dependencies) – Scalability problems (increase in load or storage requirements) – Flexibility problems (slow innovation) – Maintenance problems (fixing bugs takes too long) – Hardware issues (failing servers, disks, connectivity) – Environmental issues (fire, earthquake, storm) – ...

slide-10
SLIDE 10

10:41 (c) 2016 eGenix.com GmbH, info@egenix.com EuroPython 2016

Value of an IT startup

  • Business value

– Market share = users / market size – Cost efficiency (HR, processes) – Innovation factors – Risks (affecting operations) – ...

  • IT value

– Quality of developers / managers – Application design quality (structure, flexibility) – Code quality (structure, metrics, tests) – Risks (affecting technical capabilities) – ...

slide-11
SLIDE 11

11:41 (c) 2016 eGenix.com GmbH, info@egenix.com EuroPython 2016

IT valuation project approach

  • Analyze IT approach, team, system and data
  • Initial development valuation based on:

– COCOMO model – Effort model

  • Apply “Added Value” factors (including risk)
  • Compare with reimplementation estimate

→Make or buy

slide-12
SLIDE 12

12:41 (c) 2016 eGenix.com GmbH, info@egenix.com EuroPython 2016

Agenda

  • Introduction
  • Analysis
  • Models
  • Valuation
  • Make of buy
  • Conclusion
slide-13
SLIDE 13

13:41 (c) 2016 eGenix.com GmbH, info@egenix.com EuroPython 2016

IT valuation analysis factors

  • Soft factors

– Quality of developers – Architecture quality – Data model quality – Algorithmic quality – Extensibility – Risks

  • Factors (partially) based on metrics

– Code quality

  • Known inaccuracies

– Estimation risk buffer

slide-14
SLIDE 14

14:41 (c) 2016 eGenix.com GmbH, info@egenix.com EuroPython 2016

IT valuation analysis factors

  • Soft factors

– Quality of developers – Architecture quality – Data model quality – Algorithmic quality – Extensibility – Risks

  • Factors (partially) based on metrics

– Code quality

  • Known inaccuracies

– Estimation risk buffer

Discuss with Team Experience Check Code Experience

slide-15
SLIDE 15

15:41 (c) 2016 eGenix.com GmbH, info@egenix.com EuroPython 2016

IT valuation analysis factors

  • Soft factors

– Quality of developers – Architecture quality – Data model quality – Algorithmic quality – Extensibility – Risks

  • Factors (partially) based on metrics

– Code quality

  • Known inaccuracies

– Estimation risk buffer

Check Code

slide-16
SLIDE 16

16:41 (c) 2016 eGenix.com GmbH, info@egenix.com EuroPython 2016

Raw code metrics

  • Source data analysis

– Lines of code (LOC), Source lines (SLOC), Logical lines (LLOC) – Blank lines = better readability – LOC per module – Functions/methods/classes per module → Affect maintainability

  • Python tool: Radon

– https://pypi.python.org/pypi/radon

slide-17
SLIDE 17

17:41 (c) 2016 eGenix.com GmbH, info@egenix.com EuroPython 2016

Raw code metrics

  • Inline documentation

– Comment lines (in relations to LOC) – Doc strings (in relation to LOC) →Affect readability and maintainability

  • Python tool: Radon

– https://pypi.python.org/pypi/radon

slide-18
SLIDE 18

18:41 (c) 2016 eGenix.com GmbH, info@egenix.com EuroPython 2016

Code metrics

  • Cyclomatic Complexity (CC)

– more decision nodes = higher complexity – higher values = worse

  • Maintainability Index (MI)

– combination of complexity, density, SLOCs and comment lines – higher values = better

  • Python tool: Radon

– https://pypi.python.org/pypi/radon

slide-19
SLIDE 19

19:41 (c) 2016 eGenix.com GmbH, info@egenix.com EuroPython 2016

Test coverage

  • Check unit test code coverage of code base

– should show high values – note: 100% coverage is often misleading

  • Check for end-to-end tests

– should provide good coverage as well

  • Check for randomized tests

– to avoid biased test cases / missing test cases

  • Python tool: coverage.py

– https://coverage.readthedocs.io/

slide-20
SLIDE 20

20:41 (c) 2016 eGenix.com GmbH, info@egenix.com EuroPython 2016

Agenda

  • Introduction
  • Analysis
  • Models
  • Valuation
  • Make of buy
  • Questions
slide-21
SLIDE 21

21:41 (c) 2016 eGenix.com GmbH, info@egenix.com EuroPython 2016

Intermediate COCOMO Model

  • COCOMO model is an industry standard for

code valuation based on LOC

– C/C++ – Java

  • Models:

– Organic projects - small teams, senior/regular people, agile process – Semi-detached projects – medium sized teams, mixed skill set, semi-rigid requirements – Embedded projects – tight requirements, low level architectures, usually hardware based

slide-22
SLIDE 22

22:41 (c) 2016 eGenix.com GmbH, info@egenix.com EuroPython 2016

Intermediate COCOMO Model

  • Formulas:

– Effort Applied E = a * kLOC b * EAF (in person months) – Dev Time D = c * E d (in months) – People required P = E / D (in persons)

  • Parameter selection (organic project category):

– a=2.40, b=1.05, c=2.50, d=0.38

  • Adjustment factor EAF (lower = more efficient)

– Normal: 0.9 – 1.4 (Java, C) – Python: 0.5 https://en.wikipedia.org/wiki/COCOMO

slide-23
SLIDE 23

23:41 (c) 2016 eGenix.com GmbH, info@egenix.com EuroPython 2016

Intermediate COCOMO Model Value

  • Value = Developer costs * Development time

– Take into account different costs for senior and regular developers – Use market rates / apply startup discounts – Add employer labor costs

slide-24
SLIDE 24

24:41 (c) 2016 eGenix.com GmbH, info@egenix.com EuroPython 2016

Effort model

  • Time it took the company to build its system

– Broken down by senior and regular developers used in the process

  • Value = Developer costs * Development time

– Take into account different costs for senior and regular developers – Use market rates / apply startup discounts – Add employer labor costs

slide-25
SLIDE 25

25:41 (c) 2016 eGenix.com GmbH, info@egenix.com EuroPython 2016

Agenda

  • Introduction
  • Analysis
  • Models
  • Valuation
  • Make of buy
  • Conclusion
slide-26
SLIDE 26

(c) 2016 eGenix.com GmbH, info@egenix.com EuroPython 2016 26:41

Added Value Added Value

slide-27
SLIDE 27

27:41 (c) 2016 eGenix.com GmbH, info@egenix.com EuroPython 2016

Added value

  • Apply +/- Factor % in the following categories:

– Quality of developers – Architecture quality – Data model quality – Algorithmic quality – Code quality – Extensibility – Risks – Estimation risk buffer

slide-28
SLIDE 28

28:41 (c) 2016 eGenix.com GmbH, info@egenix.com EuroPython 2016

Code valuation

  • Pragmatic approach:

Average from applied models

– COCOMO model – Effort model

  • Apply added value factor
  • Final estimate
slide-29
SLIDE 29

29:41 (c) 2016 eGenix.com GmbH, info@egenix.com EuroPython 2016

Data valuation (if applicable)

  • Average from applied models

– COCOMO model – Effort model

  • Apply added value factor
  • Final estimate
slide-30
SLIDE 30

30:41 (c) 2016 eGenix.com GmbH, info@egenix.com EuroPython 2016

Agenda

  • Introduction
  • Analysis
  • Models
  • Valuation
  • Make or buy
  • Questions
slide-31
SLIDE 31

31:41 (c) 2016 eGenix.com GmbH, info@egenix.com EuroPython 2016

Make or buy

  • Costs of replicating the company,

including

– products / data – expertise – reaching market share

slide-32
SLIDE 32

32:41 (c) 2016 eGenix.com GmbH, info@egenix.com EuroPython 2016

Make or buy

  • Business side

– Setting up company – Recruiting – Marketing costs – ...

  • IT systems

– Costs of acquiring needed expert knowledge – Costs of reimplementing all systems – (Costs of recreating data) – Development time

slide-33
SLIDE 33

33:41 (c) 2016 eGenix.com GmbH, info@egenix.com EuroPython 2016

Make or buy

  • Business side

– Setting up company – Recruiting – Marketing costs – ...

  • IT systems

– Costs of acquiring needed expert knowledge – Costs of reimplementing all systems – (Costs of recreating data) – Development time

slide-34
SLIDE 34

34:41 (c) 2016 eGenix.com GmbH, info@egenix.com EuroPython 2016

Make or buy

  • For IT systems:

– use existing system as specification – estimate effort needed to recreate systems – (estimate effort needed to recreate data) – since timing is important: use senior developers only

  • Result: Offer for rebuilding the system
slide-35
SLIDE 35

35:41 (c) 2016 eGenix.com GmbH, info@egenix.com EuroPython 2016

Agenda

  • Introduction
  • Analysis
  • Models
  • Valuation
  • Make or buy
  • Conclusion
slide-36
SLIDE 36

(c) 2016 eGenix.com GmbH, info@egenix.com EuroPython 2016 36:41

Add Value to your Startup Add Value to your Startup

slide-37
SLIDE 37

37:41 (c) 2016 eGenix.com GmbH, info@egenix.com EuroPython 2016

How to increase the IT value of a Python startup

  • Pay attention to code complexity / structure/

quality

  • Design in a flexible and easily extensible way
  • Pay attention to code test coverage and

documentation

  • Invest into good data(base) structures
  • Invest into good algorithms
  • Reduce risks added via 3rd party dependencies
slide-38
SLIDE 38

38:41 (c) 2016 eGenix.com GmbH, info@egenix.com EuroPython 2016

Questions

>>> >>> raise Que uestion

  • n()

raise Que uestion

  • n()
slide-39
SLIDE 39

39:41 (c) 2016 eGenix.com GmbH, info@egenix.com EuroPython 2016

Photo References

CC BY / CC BY-SA licensed photos: Public domain clip arts:

https://www.flickr.com/photos/132084522@N05/17086570218/ https://www.flickr.com/photos/chiropractic/6844437142/ https://www.flickr.com/photos/armydre2008/16366377932/ https://www.flickr.com/photos/nasaearthobservatory/6405553723/ https://openclipart.org/detail/8879/rubber-duck https://openclipart.org/detail/215201/evolution

All other photos and images are used by permission.

slide-40
SLIDE 40

40:41 (c) 2016 eGenix.com GmbH, info@egenix.com EuroPython 2016

Thank you for your attention Beautiful is better than ugly.

slide-41
SLIDE 41

41:41 (c) 2016 eGenix.com GmbH, info@egenix.com EuroPython 2016

Contact

eGenix.com Software, Skills and Services GmbH Marc-André Lemburg Pastor-Löh-Str. 48 D-40764 Langenfeld Germany eMail: mal@egenix.com Phone: +49 211 9304112 Fax: +49 211 3005250 Web: http://www.egenix.com/