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


Formal Metadata

Title of Series
Part Number
Number of Parts
Lemburg, Marc-André
CC Attribution - NonCommercial - ShareAlike 3.0 Unported:
Release Date

Content Metadata

Subject Area
Marc-André Lemburg - So you think your Python startup is worth 10 million... This talk is based on a recent consulting project the speaker ran to support the valuation of a Python startup company in the due diligence phase. By following some of the advice from this talk, you should be possible to improve the valuation of your Python startup or consulting business in preparation for investment rounds or an acquisition. ----- This talk is based on the speaker's experience running a Python focused software company for more than 15 years and a recent consulting project to support the valuation of a Python startup company in the due diligence phase. For the valuation we had to come up with metrics, a catalog of criteria analyzing risks, potential and benefits of the startup's solution, as well as an estimate for how much effort it would take to reimplement the solution from scratch. In the talk, I am going to show the metrics we used, how they can be applied to Python code, the importance of addressing risk factors, well designed code and data(base) structures. By following some of the advice from this talk, you should be able to improve the valuation of your startup or consulting business in preparation for investment rounds or an acquisition.
Mobile Web Product (category theory) Computer animation Drill commands Figurate number
Software developer Valuation (algebra) Model theory Scientific modelling Software developer Projective plane Core dump Mathematical analysis Process (computing) Computer animation Meeting/Interview Mathematics Software Self-organization Website
Product (category theory) Valuation (algebra) Software developer Multiplication sign Scientific modelling Expert system Code Coma Berenices Complete metric space Metric tensor Performance appraisal Factor analysis Computer animation Average Software testing Process (computing) Subtraction Data structure
Area Operations research Software developer Open source Code Mereology Metric tensor Factor analysis Computer animation Military operation Software testing Information security Information security Data structure Physical system
Metropolitan area network Standard deviation Process (computing) Copyright infringement Valuation (algebra) Java applet Scientific modelling Software developer Code Sound effect Disk read-and-write head Estimator Performance appraisal Factor analysis Data model Computer animation Software Estimation Data structure Physical system Physical system
Divisor Information Software developer Code Scientific modelling Multiplication sign Mathematical analysis Electronic mailing list Mereology Metric tensor Frame problem Estimator Factor analysis Architecture Data model Matrix (mathematics) Computer animation Lattice (order) Estimation Damping Data buffer
Slide rule Code Line (geometry) Source code Gradient Open source Finitary relation Code Data analysis Set (mathematics) Line (geometry) Computer animation Software metric Repository (publishing) Logic Term (mathematics) String (computer science) Order (biology) Statement (computer science) Module (mathematics) Traffic reporting
Spacetime Code Line (geometry) Open source Basis (linear algebra) Code Data analysis Line (geometry) Number Loop (music) Computer animation Module (mathematics) Right angle Module (mathematics) Social class
Computer animation Bit rate Code Line (geometry) String (computer science) Scientific modelling Finitary relation Online help
Complex (psychology) Information Decision theory Code Line (geometry) Decision theory Code Price index Line (geometry) Software maintenance Measurement Functional (mathematics) Subject indexing Population density Population density Computer animation Network topology Personal digital assistant Average Well-formed formula Vertex (graph theory) Statement (computer science) Kolmogorov complexity Exception handling
Standard deviation Divisor Code Model theory Set (mathematics) Scientific modelling Function (mathematics) Parameter (computer programming) Mereology Quality of service Replication (computing) Number Data model Architecture Bit rate Mixed reality Term (mathematics) Well-formed formula Personal digital assistant Software testing Process (computing) Divisor Organic computing Units of measurement Area Enterprise architecture Valuation (algebra) Software developer Projective plane Java applet Code Parameter (computer programming) Line (geometry) Metric tensor Category of being Computer animation Personal digital assistant Computer hardware output Self-organization Software testing Energy level Units of measurement Abelian category Bounded variation Resultant
Intel Product (category theory) Divisor Presentation of a group Software developer Java applet Software developer Multiplication sign Scientific modelling Wage labour Projective plane Counting Regular graph Formal language Number Data model Computer animation output Process (computing) Subtraction Data management Physical system Resultant Exception handling
Goodness of fit Computer animation Divisor Meeting/Interview Scientific modelling Factory (trading post) Electronic mailing list Software maintenance Number
Divisor Model theory Scientific modelling Number Estimator Data model Sign (mathematics) Process (computing) Computer animation Estimation Personal digital assistant Average Right angle Divisor
Data model Computer animation Valuation (algebra) Estimation Model theory Multiplication sign Scientific modelling Expert system Divisor Estimator
Product (category theory) Product (category theory) Software developer Shared memory Expert system Mathematical analysis Expert system Average Mereology Food energy Computer animation Software Estimation System programming Physical system
Complex (psychology) Algorithm Game controller Product (category theory) Divisor Algorithm Code Scientific modelling 1 (number) Code Goodness of fit Computer animation Software testing Kolmogorov complexity Data structure Subtraction Data structure
Thread (computing) Code State of matter Multiplication sign Decision theory Scientific modelling Source code Range (statistics) 1 (number) Function (mathematics) Weight Mereology Disk read-and-write head Video game Damping Prozesssimulation Physical system Algorithm Process (computing) Product (category theory) Theory of relativity Structural load Software developer Basis (linear algebra) Electronic mailing list Bit Instance (computer science) Category of being Exterior algebra Lattice (order) output Right angle Figurate number Reading (process) Point (geometry) Connectivity (graph theory) Virtual machine Control flow Auto mechanic Online help Distance Number Goodness of fit Centralizer and normalizer Causality Metaheuristik Data structure Electronic data processing Information Cellular automaton Projective plane Expert system Mathematical analysis Line (geometry) Performance appraisal Voting Computer animation Software Personal digital assistant Dependent and independent variables Game theory Object (grammar) Pressure
is gentlemen mobile drilling but given the hands of the figure of the room and the truth and it was about right so I'm going to talk about the product that we did at the end of last year I mark member and run in the past we would use for lots more years so
what what is your present organizers the rest secure each year
standard important so this is the agenda for the top predator sites we can show all of and so what what what was the
outset of this this project we were asked last year we were asked by and that's a big company because I can't give any details I assigned and a for this at so in big company 1 this model small companies doing Python development internally and they wanted to know how much they're present how was actually work so what the value of the IT that they have and because they don't have any IT skills the interval before specifically for Python internally because that was the job which company they ask
us to help them and so we had very little time to do this we just have to have 3 weeks to actually run the whole project from so we basically we knew nothing about evaluation of companies will have to come up with a few things and we we thought there might be a good idea to try a few different models and then maybe do some averages and just percolation and come up with
some value that we give them and they like that and so we did that so the 1st disclaimer this stuff that I'm talking about United expert in we basically just kind of did some research which shows something different methods on the different tools you used and then when went ahead with it and makes all that with our experience in running these products so what you have to do if you want to assign a value to a and tonight the stars will 1st of all you have the the business value that is something that I'm not going to talk about because the company that themselves they have expressed
a lot of plus of course if it's actually focus then you
have the get the value of the company and that's what we came in so both sides of have risks
and so you need to address those risks when you when you validate the company again the business I did not really participate much in part what we did do is we when we looked at the coal face that they had created and the way that I they set that systems we found few issues with that that were also going for example in the area of data security or
maybe head and patents and trademark infringement and also where things that we basically took the business side of the company to to take into account and take that risk into account and then we came into then the judge to the IT risks that they had for this is just an this effect here is
that you you usually find larger projects and so we have to look at at the at the side of this evaluation process so this is what we what we set out to do and we told the company with their final doing that so 1st we sat down with the team would try to analyze the team tried to figure out where developers really good with the system was in Europe with the data that they have was any good and turn out to be very good and then of course we wanted to add some scientific approach to this so we course we use wikipedia and then to a certain it around 4 possible ways of doing that initially found this cocomo model which seems to be a standard in the industry for doing these kinds of things of course is based on C C + + and Java it's not based on price and we found out about that so later on in the process and 2nd model we use an effort model which is basically a winter about it anyway and then you have to get some basic values for the for the whole thing and then you apply some some soft values or you some software that you find research for example from the from the value that you get and we call this we call this added value and then you get 1 final value which is kind of the estimate
based on models and then you go ahead and try to figure out what would it cost to rebuild this whole thing from scratch any given value for that and then in the end that the company has to decide whether to you by the company and then make run with that company or maybe instead use the approach of building everything themselves which might actually cheaper so let's look at the analysis part as is that we have quite a few soft factors
we have some factors that we can actually measure the code matrix and you always have to take into account that you cannot possibly look at everything that's what time frame so you have to build in some respect for fleeing accuracies that you know you're going to have in your estimate and so for the 1st thing we just sat down with the 2 discussed everything we try to figure out as much as possible from then we have we had a long list of questions something like 200 questions for them to answer went through that in a meeting 4 of the complete day and so on all the information from them and that's also also how we found out about things that were like risks for example that they had not really addressed yet would have would be that the the company find a
small company would have to address in that small companies in order to fit their own corporate the standard on and then we have to check the coat that was you because
the tools for this and then again we have the following some experience to to measure the the risk before that you have to to add to this so let's have a look at how you can measure the code metrics there's this nice hasn't will could grade on which you just throw at your Python code and it just runs so the whole repository that you have and extend takes all the different details from that codon and gives know summary reports and outputs all the stuff that you need to know about and it was good slide so this set of terms that you have been photometric some of those lines of code will then source lines of code which is basically just lines of problem that the the comments and the docstrings logical lines of code is something special it's actually just code that gets executed so for example if you have a for statement and the the 4
line itself was not necessary executed just the the the inner loop is executed and you just can't also but yes blank lines of course and especially important
Python because blank white space and not white space right so so the more expressive better the better you can read the code you also have to look at lines of code per module and then can use that as the basis for how maintainable that code is seen from just looking at these numbers so the more lines of code you have to model more classes and methods and everything you have heard from module then the harder it really gets to maintain that
code is suitable to break models and smaller pieces and then do it that way so rate and help with this but it also helps with figuring out where we have enough
inline documentation which hunter how often called very often get to see code written by companies that don't have a lot of online documentation so basically all the documentation about the code itself as the the somewhere else so it's just to the exist of so haven't got strengthen and common all good things so they get they get a plus and value for that and if
they show so in in in this particular case it was kind of average all home no that's not really that good but then you have to measurements that that take all this data and then also had some extra information from the because basically so they should pass a code and try to figure out how many decision nodes you have in your
in your execution tree for for example in the in its statement would be a decision node and the more decision nodes you have heard the function and the high complexity and so higher values of worse so get more complexity in or out of that similar with the maintainability index except there's still we want so the maintainability and that the complexity the density lines of code and everything put everything together into nice formula and gives you this index and you higher
values for development intended to again can use rate of this so this is what we use as part of the input for the variation that we have a look at the test coverage so we have them give us all the output of the coverage the we also checked for n n tests which are very important so those are things that you usually don't cover with
unit tests so yesterday someone sitting there or maybe have selected using their and entering new is this stuff into your data into your replication you check whether the end result so that's 2nd reported to get out of it later on actually matches what expect of those are very important to have them in this case they did have a few not that much of that was a bummer but then we also text for randomized test because we've found other projects that if you don't do use randomized test you often end up with a test cases that are biased towards 1 particular area and code and so even though you have 100 per cent test coverage in that actually testing a 1 cent of what also the entry data could look like they think everything is correct but it's not necessary so right so that's what we can do in terms of QoS metrics of looking numbers next was this cocomo model that we disagreed on the Wikipedia so this is a very old of things from the seventies eighties it's it's used to assign a value to a ought to give an estimate for for how much can you have to spend to write code the only friendly enters basically lines of code and then you have to choose 1 of these models of was not this most projects organic projects in the sense of corpora mostly have small teams enterprises and so there's something much aside then you get this very simple formulas here with a few parameters small a b c d of parameters of those are predefined by the model so you just look up on wikipedia use them for their particular organic project category that you want to use and then you have to to use the adjustment factor to accommodate for the
efficiency of different languages and what we found is that Wikipedia recommends 0 . 91 . 4 for Java and C well the numbers that came out of this did not really match reality so we had to use 2 different factors so we use . 5 for this which kind indicates that sort of like a side result from this whole thing the present is in fact more efficient than Java and C as if we know right so what you then get gets development time and then you have to look at your development you the number of senior developers regular developers you want to put on
that team that the promise when you have to spend for them and then you get the value in that you estimates and you do the same thing for the effort model except that you don't use some form of for this you sit down the project manager of a particular product and asked them have the company how much time it took to to write this saying how many developers they use and what problems they have and then use that as input for this formula and give some of them right so next comes the magic
With this added value so you have
these numbers and then you go through this list of sof factors that you have Addison some percentage where you remove some percentage from the value depending on what you think is good quality work for good quality design and factory risks accessibility maintainability of various costs that you see in the in the in the person at the at the at the wrist buffering the end come up with a something that you can actually use make occupation so you take those 2 models we just took a
pragmatic approach because we know better so we have spoken of model the the value that came out of that we used to have a model and just use the average that we added to the value the added value factors in in in our particular case came up to something like 75 per cent more than what the the value
from the models was all of which is a good sign that I mean they really good job done and then we come up with a final estimate right and then in that particular case they also have value with data in the company which is something that you not necessarily have storage of but I mean if a some of his work for if a number of years and they have to gather some data and you need to assign a value to that as well now for that we have not
found any good model like the Cocom will want to use so that we can just use the models so we basically sat down with them again trying to figure out how much time it took them how much they have to pay for those experts to gather that data and then we have an estimate as
well and we added together and then we have the final value to give to the big companies to as estimate non expressionist may go by for doing that you have to basically to claim new company that does exactly the same thing we have to see the final patent-infringement instead of just read the company you know small company so the company can do this small and you can look at so what you have to address you have to read create all
products of the data you have to to get the experts in which is due to be 1 of the most difficult parts and of course you have to work again the same market share knowledge to compare those 2 companies so all costs especially the marketing stuff that costs a lot of that inside so we did not do that so we just focus on the energy side and so you need to see how much how much money you would have to put in past let's say you're software out we are how much effort you would have to put into this to rebuild everything that they did and often also
have to go and look at how to retrieve the data which is not necessary something to do with the software shop but at least you have to provide some advice on how to do this and then you have an offer for rebuilding everything and then you put everything together give it to them and they decide and this case that of not about so for them the analysis was another
thing that they wanted but I think in the end it's it's it's the the outcome was good for everyone so how can you would add value to start well basically this
is all have just said and you work in all these different factors and improve on In fact really that hot and you just like you to write good code has needs to have a good structure complexity complexity should be low destruction should be rightfully bilities small models than larger ones you which you need to have everything as flexible as possible when you design with the whole product needs to be extensible because usually want to be company once and new markets which a small company is not thought about so you need to be flexible that um and then of course you need to invest into things like data structures like algorithm example for the algorithms and lots of books from CS use you don't always have to be the name used for algorithms for everything which many companies do thus 1 important thing on the exercise of reducing risks by not depending too much of course packages because you don't have that much control
over them even tho they might be were very high quality if your company is not capable of maintaining such a vote on package in case for example the object goes away or do something else or of the project stops then you have to do with right that's in which the state that of thanks you 4 days we have any questions about loads of questions so I hope you have the same ones that I have in my head is a help the yeah I want to ask about about this right on to what this automatic and check on on the code quality it is in the usually danger that is that you can play a game with that that you optimize for the tool and not for actual better coat how reliable is this operate on it each day somebody tells me tomorrow there will be due diligence just do some make up to the court so that the 2 will gives a better value is that possible but I'm not sure if it is possible but the company that was not know about this tool that we give it to them and the more output so that is that we have a chance so what we did in that case is we we took the output of freedom and of course you get for what it gives you the outputs primordial and then you look at the models that look a bit like they have a high complexity or have a lower maintainability of and then just take those check the code of cells and analyze why why the freedom to use that readings afterward so of course we have to do some some code review as well as part of that but recently that not have time to read all the copies you you can do given because has a few hundred thousand lines of code this no way to do it more questions of genomic back right at the and so it did you look at any of the alternative to coca moved from a model which seemed to these bonds of K is perhaps starting point for measuring the what are the weights to each mission what would the single-speaker could you used to measure the time the signals from code basically what we did is machines intelligent that's happened yesterday probably happening so and and the the the value that we get out of Cocom over so much higher than that of the you know the value that we estimated and the value that we got off the of the effort model that we that we have to use different factor for that the objective is to remind me of musical examples where the BBC's to pay ranges by far the analysis of the measure and so the Rangers figures have frequently the favorite everything into 4 got twice as much money because that twice as many bonds and so that's the way you're thinking this because if you understand that the that things that measuring again its present questions for you can these things that you want I guess we set the tone the coming the young of course you look at the code and then see these things right so if you see that someone so uh another 1 and another 1 of the funny lines with the code that's just to get more lines of code to make it look like more valuable than of course will detect yet certainly of course and so I had but once again last year all alone you mentioned there is bothering you talk them and to what will you what is appropriate in your opinion and this is hard to say I mean in our case for example we were not able to review all the code that they have so we just have we we did not even have a chance to look at all the components that they have of so we just look at the main central kind of component that had all the the interesting bits in it but we did not look at all the other components that were stuck on the side to some UI stuff so we knew that we will only covering say maybe 20 per cent of what they actually wrote in the code and based on those 20 % you kind of have to intraplate and to the rest the quality of the rest and so that's what we use for the response so the response was was fairly sizes and and so on but what number did you an entity and look at something more questions up on that and DTT trashing the company to see that the evaluation is correct or did you have any other when and where the money she was correct or classical where we we know that we can really do not by small company and thinking about actually doing it themselves so they on on the make of Irish from on the makes side but this was just the companies take longer in the states what was the effort of the review where did you spend weeks all kinds of people of days no no no we have uh we don't have much time we had something like 2 or 3 weeks and so we had 1 1 full day meeting with them asking all these questions also doing the part of the review because they of course they can give a source we just have we have to sit there and look at so we don't have that much information from them so we have to base everything on on on that's kind input more questions OK automatically to to but we simply I mean we were told that we have to give them an answer that the company an answer within those weeks and that was all we have so needs to come up with something that makes sense and and so basically that's what we did so as I said in the beginning this is not necessary this is not how you should do it right this this is how we did it and and the numbers that came out of that makes sense from high so for instance with all of them from what I understand you basically related to the company based on the proposed started which is also interesting but I would also argue that perhaps the biggest way it's the company relation is due to the working poor do companies structured data processes that were created although of various and so on so I would be interested in how did you approach to measure the distance all this is more so in well we did not have a look at the business side of things because we had a different part of the project doing that so they have to become the company had had experts from these things and letting the numbers and and and the analyzing the team all we can do is we could sell them whether we have the impression they have to develop personal which software designers because that's our expertise and so we were not not experts on business processes so we cannot really put a value of that so what we did do is we told the the business side what we think about the the team skills and we told them about the risks that we found in the In the code based on the structure of the system but that was basically about the business side of things so it seems like a very common thread in both talk and India instances you were under a lot of pressure and you made certain decisions just based basically because of that now let's see you remove all the pressure you have as long as you want like the big company comes in and tells you take as long as you want to have as many people as you want to do whatever you want with this what would you have done differently but would you have so maybe not down maybe I done more thoroughly from process well I think we would have done more research on on on the soul evaluation our approach I mean we basically just status this scope more model which came up on Wikipedia we use some there was some people in the company you wanted to use that model so there often founded on useful so we have made since is we would have put more energy into that we would have had more interviews with the team members so we would have done more good reviews we would have much more access to the actual all the systems all the components so not just looking at a part of it then I mean basically talking to people it's it's is very valuable we did not have time for that we just talked to to the Chief developers and not be like the regular developers that they had we also did not really have much look into the development structure and how they work for example that's something that is completely left out the freedom to look at this how they do this agile processes how that works out for them or whether it's sufficient for them or not this kind of thing because when buying company of course not just by find product and you also find people and and of course people usually very valuable but sometimes you do you need to restructure things to make them more efficient because not necessary to find the most efficient process development process and the a business process an ecologist asking a question myself and the cities but a very clearly between like the business decisions of business and you also just the technical ones because to me that some other value you get from software is down to like how complex it is why much effort you put into making it but it's like the intellectual property of finding correct solution you know like 20 years for someone provincial copper salt as being the like you know heuristic algorithms can be really good for sorting lists but actually it's only a few lines of code if you want to be implemented and you knew which 1 you were doing when take long so do you have any way of kind of evaluating on measuring these guys have come up with a really good solution to this and trying to come up with again from scratch going through all that the wrong solutions would take ages of causal someone yes yes we in that interview session that we we have them basically expect probably probably this out what the solution looks like a and then we we found that they were doing at the head of a kind of clever way of doing things but not necessarily the most clever way of doing things so there there was some some of there was some basis for improvement there you can see that which improve things so that was that was something that we found was positive so that you can actually make it work better and scalable but we've and we've taken that into those and values as a percentage they have found that they have a reasonably good algorithms for everything but actually putting a value to work with your saying is more or less putting a to say something like patent or something like that mechanism that you come up with an idea and that we did not have any more questions than it is from from some of the Ulster questions their time for 1 more if someone hasn't spoken out the they can have a burning question answered otherwise it's a familiar sounding voices were very glad to have you and I'm not sure if I may be missed it but I you is the gene it's even allowed to make an offer to the big companies because you gained a lot of the inside knowledge isn't that cheating if if you read to the project now extracting all information from those is the company asked us of course we can mean like just sediments the campaigns more companies so um yes of course you have issues that you can take away the intellectual property of the small company and just have an interest in but that's not really our decisions if they wanted like that and then you ask us to do it may be a little differently so that you don't have these issues course become things lots of lawyers and in the apartment and everything so they can make it work which is not necessarily a nice but I mean the company's monastery that's right the quality of life last breaks the nice thing is going to Islamic includes


  625 ms - page object


AV-Portal 3.9.1 (0da88e96ae8dbbf323d1005dc12c7aa41dfc5a31)