Latest / Agentic Conversations (formally mlops.community) / AI-Driven Code: Navigating Due Diligence & Transparency in MLOps // Matt van Itallie // #275
Transcript
- 0:00I'm Matt Vandedley, founder and CEO of FEMA, and I drink my
- 0:04coffee black. Welcome back to another ML of
- 0:08Security podcast. I am your host Dimitri OS, and
- 0:13today we talked about code based scans, mainly because Matt has a
- 0:18company that scans code bases when founders are looking to
- 0:25exit the company or when companies or hedge funds or
- 0:29people with a lot of money are looking to buy companies.
- 0:33They're doing their technical due diligence.
- 0:36And I find this issue fascinating in general, but the
- 0:42nuances and also the eight different things that he is
- 0:47doing when he's scanning the code base and checking for is
- 0:54really cool to see that you can just automate that number one.
- 0:58And #2 how much thought has gone into it?
- 1:02He said he took a whole year to figure out the best ways to
- 1:08translate certain pieces of the code base.
- 1:12That are are very. Technical into numbers or a
- 1:16score that non-technical stakeholders could understand.
- 1:22I don't want to spoil anything. Let's just get right into it.
- 1:25And as always, if you enjoy this episode, share it with just one
- 1:30friend. This episode is not sponsored
- 1:32and it is not financial or legal advice.
- 1:37I want to say that right now I love it.
- 1:46But you don't have any Italian roots, do you?
- 1:48So the last name, it means from Italy in Dutch.
- 1:52So hundreds of years ago ancestors moved from Italy to
- 1:57Holland and then my grandfather emigrated here.
- 2:01OK, all right. And you kept the Italian roots,
- 2:05not the Dutch roots then, huh? Yeah, well, van is like there's
- 2:07like you've heard of von in German means from, so it means
- 2:13from Italy, but in Dutch. So yeah, we're a lot more.
- 2:15I mean, I'm not particularly Dutch, but more Dutch than
- 2:18Italian. But the name the name has stuck.
- 2:21Incredible. All right man, I want to talk to
- 2:24you a lot about these code based scans and maybe we can just set
- 2:29the scene with what they are and how you think about it.
- 2:34Absolutely, and again, thanks for having me.
- 2:37I'm so looking forward to this conversation.
- 2:39So our code scans product is a detailed and also summary view
- 2:48of the non functional requirements of a code base.
- 2:52So it's not what does a product do?
- 2:53How well does it do it, how well, what kind of product
- 2:55market fit there is. It is stuff quote under the
- 2:58hood. We categorise it into two
- 3:01chunks. 1 is product related risks and that is the likelihood
- 3:06that the current code base will be able to that the team will be
- 3:11able to maintain and expand the current code base.
- 3:14And the second is compliance risks, things that lawyers might
- 3:19care about, things that could get you in trouble with external
- 3:21stakeholders. We capture 8 components or
- 3:26modules that fit into one of those two categories.
- 3:29And I'll just briefly because I know this is such a, such a
- 3:31technical audience and I love the detail at least run through
- 3:34all through all 81 is code quality, various forms of
- 3:37technical debt. A second is development process.
- 3:41So notice I didn't say it's a code.
- 3:43I think we're not just looking at the code, we're looking at
- 3:45the code base. And to us, it's really important
- 3:47to think about the engineering team around it, both as a whole
- 3:51and individuals, because that's a huge part of the of a healthy,
- 3:56of a healthy code base, full stop.
- 3:58So development process is the consistency or lack thereof, of
- 4:02development activity. We were working on product X.
- 4:05All of a sudden we tripled the commits to that.
- 4:08Maybe there was a good reason, maybe not, but that's that's an
- 4:10example of a process metric. The team metric is looking at
- 4:14developer by developer subject matter experts and whether they
- 4:19are still in the business. And I have said this, I'm very
- 4:24proud of this actually. We, you know, we serve our
- 4:28customers, our private equity firms, our deal teams, our
- 4:31non-technical CE OS and CF OS. And our job is to cross, cross
- 4:36the chasm between making tech understandable to non tech
- 4:40audiences. And we try very hard to do that
- 4:42as one of the things I think we've done a good job of, of
- 4:45teaching our, our customer base. We serve most of the world's
- 4:49best software investors. This is used in price
- 4:51significantly in technical due diligence when someone's buying
- 4:54a company. Not, that's not the only use
- 4:56case, but it's, it's been, it's a predominant 1.
- 4:58So back to team, one of the most important things and we would
- 5:01say the most important of all of these 8 sections about the
- 5:05health of a code base is the presence of subject matter
- 5:09expert developers. Now everybody listening to this
- 5:12knows that that is true, but to non, you know, to non-technical
- 5:17audiences, they think, well, it's the code, it's the IP, it's
- 5:20the words. And so my favourite, one of my
- 5:22favourite quotes, I do have a few, is having a, buying a code
- 5:26base without having the coders, the, you know, most of the
- 5:30quarters who wrote it and know it in detail is like having a
- 5:34half written novel without the novelist.
- 5:38Yeah, if the novel's done fine, you have the book, but if the
- 5:42novel's half done it you it really doesn't work.
- 5:45And code is 1/2 written novel code is never done.
- 5:49There's new features, functionality, there's upgrades,
- 5:51there's patches, etcetera. And so with all these eight,
- 5:54while they do matter, you know, in total that's the, the team is
- 5:58the single most important one. And again, it's it's content,
- 6:02it's the subject matter expertise.
- 6:04So that's number three. Number four is cloud spend and
- 6:10utilisation. So of course that is a huge
- 6:15accelerator, but also can be a tax in terms of how expensive it
- 6:18is. And so an assessment of whether
- 6:21how optimised it is, whether they're savings opportunities
- 6:23for for public cloud providers, then there is intellectual
- 6:29property risk from open source code.
- 6:32So if any of you have thought about copyleft or Blackdock is
- 6:37the 800 LB gorilla of that of an individual IP risk scan.
- 6:42That is about if you use certain open source libraries that have
- 6:49certain licences, there are certain circumstances where it
- 6:53creates intellectual property risk for the organisation,
- 6:56especially around high stakes diligence situations.
- 7:01Next is code security and that's the security both of code that
- 7:05the team wrote. Think of that as a SAS or a DAS
- 7:08scan. It's also the security of code
- 7:12that open source code. So CV ES 7th is a very light
- 7:21touch cyber assets review. I won't call it a pen test
- 7:25because it's it's it's not doesn't actually intrude, but it
- 7:28looks at the assets around the domains and subdomains.
- 7:33And finally in the one that we worked on over the last year is
- 7:37generative AI code in the code base.
- 7:40I will say a minute on that. And then of course, happy to go
- 7:43whatever direction you want. But you think about open source
- 7:46code. Open source is code the team
- 7:48didn't write. It's a super good idea to use
- 7:52it. It would be effing crazy.
- 7:54I hope I can say that PG effing crazy to not use open source
- 7:59because you're reinventing the wheel.
- 8:00It's annoying. Like the whole point of
- 8:02engineering is to solve problems.
- 8:03If that problem is solved, why do it yourself?
- 8:05But open source code comes with security risk, comes with
- 8:08maintainability risk, comes with intellectual property risk.
- 8:11Well, guess what? You replace open source with
- 8:14Jenny I code, you know, code that it comes.
- 8:16Either from a different. Literally the same, the team
- 8:19didn't write it, the team prompted it, but the LLM wrote
- 8:22it. We believe that it is the right
- 8:25framing to think of it like open source.
- 8:27It is a really good idea to use it in the right circumstances
- 8:31because it saves time, it's better for the organisation,
- 8:33etcetera. But it absolutely comes with
- 8:35quality risk. Jen AI makes up packages, among
- 8:39other problems. It comes with security risk.
- 8:42I'm sure it's clear every code comes with security risk.
- 8:44So we're not saying it's better or worse for Gin AI, but you do
- 8:46have to manage that risk and under certain circumstances, it
- 8:50comes with intellectual property risk.
- 8:51So we started with so folks who know software bills of material,
- 8:57which is basically how much open source is in the code.
- 9:00We were incredibly honoured that some pretty amazing customers
- 9:03said, well, you build an S BOM, now please figure out GIN AI
- 9:07code. And so we invented the G BOM
- 9:09generative AI bill of materials to understand how much Gen AI
- 9:13there is and how safely it's being used.
- 9:16Yeah, let's get into that. But before we do the, there's a
- 9:19few fascinating things on those first seven that I wanted to
- 9:25look at because basically, if you're telling me and I'm trying
- 9:28to understand it to get the full picture, which is I can scan my
- 9:34code and I can recognise like how much I'm spending.
- 9:37So I have a little bit of fin OPS in there.
- 9:39And if there's some easy wins recommendations on, hey, you
- 9:45might not want to use this service or you might want to
- 9:48think about turning it off. You're not using spot instances.
- 9:50You've got this GPU over here that's just been running for the
- 9:54last five days. I don't know why.
- 9:57Think about setting more alerts or something there.
- 10:01How does the actual practise of it look?
- 10:07And do I, so basically, do I go in and do I set all the knobs
- 10:12inside of what you're doing or is it that it automatically will
- 10:16scan it and then just give me recommendations?
- 10:18For for cloud cost optimization in particular, is that right?
- 10:22Yeah, let's let's start with that one, but I want to also go
- 10:24down the line. It's approximately and there's
- 10:28two phases to cloud to the cloud cost module.
- 10:31One phase is an hour of set up where we just analysed
- 10:36historical data. So it takes about an hour to set
- 10:38up and then there's detailed, detailed results that come from
- 10:44that just that hour or less of set up.
- 10:47There's a second level review if you want to get to per customer
- 10:53level analytics. So for certainly for larger
- 10:56organisations who should be taking into account the
- 11:01profitability or the COGS at least of individual accounts,
- 11:06there's another one to four hours of pulling in a collecting
- 11:11some customer related information to merge the two to
- 11:15come up with per customer. You know, COGS or profitability
- 11:20contribution. Side note, if you're a medium or
- 11:22large company, your board would be freaking thrilled by that
- 11:27because it shows as technical leaders you're thinking about
- 11:29the business impact and the, the, the, the business side.
- 11:32But Long story short, an hour or so of setup is enough to get to.
- 11:37Of course, this is how much you spend in the trends and this is
- 11:39the maturity level of your spend.
- 11:41And here is a rough estimate of how much savings is possible.
- 11:46You can't usually you can't flip a switch in most cases to carry
- 11:49out some of the improvements. You are pretty quick.
- 11:52Some of them require some some team time but we have literally
- 11:56never seen it pay not pay for itself 5X1010X or more.
- 12:03And so there's also this idea of code quality.
- 12:07And I'm wondering if the code quality is just on specific
- 12:14functions or are you looking at the whole pipeline?
- 12:17Are you looking at the CICD pipeline when we're the tests
- 12:20everything, the robustness of it, what does that look like?
- 12:24Yeah. So we do not do the whole CICD
- 12:26pipeline yet. If I were to wave a magic wand,
- 12:30we would do be working on Dora metrics which we haven't, we
- 12:33haven't added yet. So it's not about your podcast
- 12:37notwithstanding, we don't do dev OPS.
- 12:40We don't do dev OPS in any in any meaningful way yet, although
- 12:43it's definitely, definitely coming.
- 12:46It is for us for code quality is sometimes at the line level,
- 12:50sometimes the file, sometimes the block and then sometimes the
- 12:54repository. What I like, what I like about
- 12:56our approach to to looking at line level warnings is it's a
- 13:03very high level. So if we were to look at a code
- 13:06base and it had 50 line level, medium sized code base and it
- 13:11had fifty line level warnings, almost certainly the team is
- 13:15linting aggressively. It's almost impossible not to
- 13:18get to that number without. If there are 50,000 line level
- 13:21warnings, the team is not linting.
- 13:24Yeah, linting's not the end of the world, right?
- 13:26We think in general it has some benefits for developers being
- 13:29able to communicate with each other.
- 13:30But for us, of course, the day by day, minute by minute, team
- 13:34by team, getting the right, you know, having lynchers are not
- 13:38making that right decision is really important.
- 13:40But our job is to explain the whole state of the code to ACEO
- 13:45or a board member who doesn't understand it, doesn't know the
- 13:49details of line level warnings. And so we actually, part of this
- 13:53is we, we translate almost all these metrics into a one to 100
- 13:56score. That's incredibly provocative.
- 13:59We didn't do it lightly. Took us about five years of data
- 14:01collection before we were ready. Line level warnings counts less
- 14:06than 1% of the total because whether or not you're using a
- 14:10lint or not doesn't really move the needle on whether or not the
- 14:12code can be delivering business outcomes.
- 14:16By contrast, back to another non code quality one.
- 14:19But just for for comparison's sake, having team retention is
- 14:22worth 25 out of 100 points because the code doesn't like
- 14:26you're screwed if you don't have the team.
- 14:28So line level warnings at the line level, at the block level.
- 14:32If we do things like unit test coverage, we don't, there's, we
- 14:37can only measure unit test coverage looking at the at the
- 14:40code itself. So there's other kinds of
- 14:41testing that can't come through with a tool like ours.
- 14:44We look for duplicate code, excessive complexity or McCabe
- 14:47complexity, which was written in 1976 and it's still relevant,
- 14:52which I love. I love when good ideas last.
- 14:55And then at the repository level, we look at indications
- 15:01that the code base might need a refactoring.
- 15:03That is, I didn't say this at the beginning.
- 15:07We love data about code. I'm actually the son of a math
- 15:10teacher and a computer programmer, so I was kind of
- 15:13trained to treat everything. As data and code.
- 15:16Is data, but it it ends at a point code is not coding.
- 15:21Coding is not purely reducible to to data.
- 15:25Unlike sales or sports, it is a craft.
- 15:31It is not a competition. You can't just look at the
- 15:34metrics. Let's say the number of lines of
- 15:37code increased yesterday versus today.
- 15:40Is that a good thing? No.
- 15:42Maybe not, always not. Always right and frequently
- 15:44going down would be better, right?
- 15:46And so just from that simple example and you spin it up, we
- 15:49produce this report, we make it as clear as possible.
- 15:52We have automatically produce a set of discussion questions.
- 15:55And it's those discussion questions that need to be
- 15:57answered to really to really tell the whole story.
- 15:59And refactoring in particular is not the bowl reductible to an
- 16:04automatic assessment. It really does need a a human
- 16:07review. So I want to go down the rabbit
- 16:11hole of bridging the gap between the technical side of the house
- 16:15and the business side of the house.
- 16:16What are some of the key learnings?
- 16:18Yeah, when in doubt. When in doubt, explain things
- 16:24using middle school concepts. Because if you can make it
- 16:30accessible and understandable at the middle school level, whether
- 16:33it's math or analytics or telling a story, you can, you
- 16:39can make it work as long as it's defensible.
- 16:41You can make it work at all these other levels as well.
- 16:44So our, our system, and by the way, it is transparent you,
- 16:48you're used like we don't of those 8 modules looking for Gen
- 16:53AI code, We actually use AI to detect for various reasons.
- 16:57It has to be a probabilistic approach.
- 16:59We use a deep learning model for it, but everything else is
- 17:03mechanical, is deterministic. And that's in part because what
- 17:06we do, we are, you know, make this up Demetrius, you're going
- 17:09to, you're the CTO of a company you've put your blood, sweat and
- 17:14tears into making it work. And if this still goes through,
- 17:18yeah, it could be, you know, 1,000,010 million, 100,000,005
- 17:23billion dollars, $10 million. And it rides like the thing
- 17:28about technical due diligence is it's one or zero.
- 17:32If your sales are a little bit less than one would like or
- 17:36there's too much churn, someone might take down the purchase
- 17:38price. But tech due diligence, you
- 17:40either pass or you don't. And so in that moment, it's
- 17:44incredibly stressful. It's really important to be
- 17:48clear, and I obviously am a big fan of AI and I use it all sorts
- 17:53of ways professionally, personally in the company, you
- 17:56know, in the product, etcetera. But what doesn't work is
- 17:59Demetrius, we looked at your product and the black box says
- 18:02it's not very good. So we're not going to we're not
- 18:04we're going to recommend to our clients that they don't buy it.
- 18:07You would have a freaking heart attack.
- 18:08You would have a freaking heart attack and you should, right,
- 18:10because that it's so high stakes.
- 18:12We can't we can't leave it to something that that not
- 18:17determined. Now I'll answer with some
- 18:20specifics. If your audience can envision a
- 18:24credit score at a personal level, it it works like this.
- 18:29And by the way, we're happy to send you a sample and if you
- 18:31listening for free, you can see a sanitised version and you can
- 18:34also try it out for free. We have a it's not exactly the
- 18:37same as the true analytics, but there's a self-serve anonymous
- 18:43and not saved. So you can put it in.
- 18:46If you want me to look at it, I will, but you have to screenshot
- 18:49it because we we don't save it to protect confidentiality.
- 18:53But so the report has a one to 100 score.
- 18:56You heard some of the very, very particular waiting that we have
- 19:00thought about and put in. Lynter results are only worth
- 19:031%, developer retentions worth 20 and 25%, etcetera.
- 19:09On on that developer retention, how do you know if the team is
- 19:12still there? Yeah.
- 19:13So we do version control. So the sources of data for all
- 19:18these 8 modules are threefold cloud, the cloud financial
- 19:23modules are looking at, you know you're spending usage in cloud
- 19:25to do cloud. We look at, we scan the domains
- 19:29and subdomains for the light touch pen test.
- 19:32It's not exactly pen test, but for the cybersection.
- 19:34And then the rest is the version control system data.
- 19:38And we don't just look at the code at the end, we look at the
- 19:40code at all points a time series data.
- 19:45So how the code has changed over time.
- 19:47So we know on Tuesday Matt made three commits to repository X
- 19:57and added 100 files. So we have that kind of
- 20:00information. The way that we do team
- 20:03retention, developer retention, is we look at when was the last
- 20:08time that person made a commit. Anywhere into the one of the
- 20:13repositories, you might have 20 products.
- 20:16If you committed to one of those products, you're still late
- 20:19yesterday, you're almost certainly still around and
- 20:23you're available to answer questions on other repositories
- 20:25even if you haven't touched those in a while.
- 20:28And so our, our rule of thumb automatically is if the coder
- 20:32has made a change to the code in the last 90 days, we assume
- 20:36they're there. And if they haven't made changes
- 20:38in the last 90 days, we assume they're not.
- 20:41Code is contextual. You cannot solely rely on that.
- 20:44Someone could be not have coded, but still be there because
- 20:48they're now an engineering manager.
- 20:50Someone could have coded recently and not be there
- 20:53because they left in between. And so that, you know, we start
- 20:58with a automatic quantitative analysis and then as part of the
- 21:01conversation that are, you know, the advisor should use us or, or
- 21:05if we're doing it, we do, we then adjust the results based on
- 21:11based on the conversation that whether or not people are
- 21:12actually there. OK.
- 21:15So that's the, if the person is there, what are the other things
- 21:21that make sure that leadership understands where we're at or a
- 21:26potential acquire IA 100% see the value in this.
- 21:31If you're doing the due diligence, I also see the value
- 21:33in this when you just want to be able to champion for something
- 21:39to the executive team and say, hey, look, we implemented XYZ.
- 21:44And what we're seeing from the code base scans are these
- 21:49results, right? It's almost like another data
- 21:51point that you can point to to say that what you're doing is
- 21:56working. Yeah.
- 21:57No surprise, couldn't couldn't agree more.
- 22:00In addition to their code scam product, which you've been out
- 22:03in the world for seven years, we are prototyping a SAS version to
- 22:07make that easier on a regular basis.
- 22:10And if your listeners want to weigh in, find me, we'd be happy
- 22:13to show you wireframe. So we're pretty we're pretty
- 22:14excited about that. I like, I love analogies.
- 22:19The sales team wouldn't only understand the state of sales at
- 22:24a diligence. They wouldn't work in the dark
- 22:26until someone showed up in a diligence is to tell me what
- 22:28your sales is like. Oh, wow, we learned this, blah,
- 22:31blah, blah. No, of course you're looking at
- 22:32sales at an executive level version of sales every day.
- 22:37If you're the the chief revenue officer.
- 22:40One of the most ironic things, certainly the most ironic things
- 22:43in in the world of coding is that engineering teams,
- 22:46engineering leaders have built dashboards for every person or
- 22:50every job on earth, but have not really built dashboards for
- 22:55themselves. And so you can think of the code
- 22:58scan as a one time CTO dashboard or engineering leader dashboard.
- 23:03We are turning that into a SAS version.
- 23:08It's very easy to do that poorly.
- 23:10So we do not want to do, we had to, we wanted to get a right at
- 23:15a point in time. Once you've got the right at a
- 23:17point in time, we're now building the time series 1 back
- 23:19to it. What does it mean whether or not
- 23:21you're using one of our tools or not?
- 23:23I think one of the biggest, some of the biggest tips for making
- 23:26this understandable to forgetting what you want from
- 23:31the rest of that, from the board, from the from the rest of
- 23:33the C-Suite. Always put things in context and
- 23:38always translate things into dollars and cents wherever you
- 23:42can. So for context, let me go back
- 23:46to Demetrius, your fictitious company.
- 23:50Let's say there were 10 developers who've ever worked on
- 23:54this code base and which for us is relatively small.
- 23:58And let's say we looked for CV ES, which are security warnings,
- 24:04of course, related to open source violation, to open source
- 24:08usage. Every code base has CV ES.
- 24:10It's not a question of if, it's how many.
- 24:13If you had a ten person software, A10 person software
- 24:16team and there were, I'm going to approximate this, let's say
- 24:2215 high risk security warnings, it would be almost certain, high
- 24:29risk CV ES almost certain that your team had a CVE detector in
- 24:34place and your team had permission, resources, capacity
- 24:42to actually fix them. Because SIMA has done, we've
- 24:46looked at a trillion and a half worth of companies, trillion and
- 24:49a half dollars worth of companies.
- 24:51We know that 15 only having 15 high risk security warnings is
- 24:55very, very good compared to your peers.
- 24:58The answer is not zero. In case anyone's wondering,
- 25:01everybody has some security warnings.
- 25:02If you were a ten person engineering team and you had 500
- 25:06security warnings relative to other ten person companies,
- 25:11you'd be in the bottom quartile. And both you didn't have a tool
- 25:15and, and, or almost certainly didn't have a tool and
- 25:17developers weren't able to, didn't have permission to fix
- 25:22it. And I say that intentionally.
- 25:23I've never met a developer who wakes up and says, you know what
- 25:26I want to do? I'm going to add security risk
- 25:28and I want to add technical debt.
- 25:29Like everyone, if they left to their own devices, of course
- 25:31they would want like the most pristine code base that
- 25:34possible, the beautiful ranting a little bit or hopefully
- 25:39inspiring, maybe a combination of both.
- 25:41The incredible thing about being a software developer is that you
- 25:43get to create for a living and it's this amazing craft that can
- 25:48be really high job satisfaction, really high comp.
- 25:52The exchange, the get the gift for that is we have to build
- 25:55things that are commercially reasonable or that meet the job
- 25:58that meet the needs of the organisation we're serving.
- 26:01That is what allows engineers to be able to have these amazing
- 26:04jobs. And so the amount of tech, there
- 26:08should be technical debt, there should be security debt, there
- 26:10should be intellectual property debt, all of those things
- 26:12because it's, it's not about having none, it's about having
- 26:15the right amount for the size and stage of your business.
- 26:19So back to this, how do you, how do you explain things back to
- 26:22the C-Suite? Don't say we have 15 warnings.
- 26:26We have 500 warnings. I don't know.
- 26:29It doesn't like, what am I supposed to do with that?
- 26:30As someone who doesn't know, say, the data, the benchmarking
- 26:34data says we're in the bottom quartile of bottom quartile of
- 26:39companies of our size and stage. It would behove us to not be in
- 26:43the bottom quartile, yeah. And then they say why?
- 26:48And then they say why code security can lead to.
- 26:54So if it's if you're an investor back company, being in the
- 26:57bottom quartile on any of these dimensions will make it harder
- 27:00for you to raise the next round or harder for you to get
- 27:02purchased. And being below average on
- 27:06security risk increases the likelihood that you're going to
- 27:09have a catastrophic data leak breach, etcetera.
- 27:14You can't prevent them at all, but you can get out of you can,
- 27:17you can be, you can avoid being the lowest, the lowest
- 27:21performer. So that's so one of the piece of
- 27:23advice is put it in context. And the other piece I said is
- 27:26can wherever possible, can you translate it into dollars and
- 27:29cents? That's hard, but it's definitely
- 27:34doable. And you know, let's say you had
- 27:38500 warnings that were legit. You could say, and let's say
- 27:44they receive, let's say there were SAS warnings.
- 27:46Just make it easier for a second.
- 27:48On average, each of those warnings takes about four hours
- 27:51of developer time to fix. 500 * 4 is 2000 hours and you know
- 27:58that's the average year is 1500 working hours.
- 28:01So it's one and a quarter one and a third.
- 28:05Excuse me, you know FT ES worth of work to clean up those
- 28:09warnings. For a giant company that would
- 28:12be worth it. For a brand new company would be
- 28:14incredibly expensive road map time relative to what else
- 28:17people can work on. And you can do the same thing
- 28:20with adding tests. We can you know, because of AI,
- 28:23we can add five tests an hour. It's going to take us 2 tests an
- 28:28hour. I don't I don't want to minimise
- 28:30it. We in order to get from 5%
- 28:35coverage to 15% coverage, it's going to take X 1000 hours and
- 28:38that translates to this many this many FT ES as well.
- 28:42It is reducible to person time or tooling cost which can then
- 28:48get summed up, you know, And again, executives are there
- 28:52because they're good at making trade-offs.
- 28:54If you can explain it in the language of you know they have a
- 28:57budget, implicitly or otherwise, of how to improve non functional
- 29:01requirements, it makes it much easier to you know to get to the
- 29:05right answer for the code base. Man I love this.
- 29:10This is really helping me understand how do you, like you
- 29:14said, speak a different language almost.
- 29:17And I do often hear how you need to always be able to tie your
- 29:25work that you're doing to a certain metric.
- 29:27And ideally it's a metric that the business cares about.
- 29:30And so translating something into dollars and cents is
- 29:35incredible. I have found that whenever I am
- 29:39working with startups, it's a little optimistic to think that
- 29:43you can translate it into dollars and cents like that.
- 29:46Because I think the startups are when you're in that infancy
- 29:52stage, you have so many things that like so many bullets right
- 29:57in front of your face and you got to be Neo in the Matrix and
- 30:00try and dodge all of them, right?
- 30:02And so you're thinking about many things that are of utmost
- 30:08important because there's a bullet 6 inches away and there's
- 30:11a bullet 7 inches away and then 112 inches away.
- 30:14And it is easy to say, OK, let me translate this into dollars
- 30:20and cents and let me do this reverse engineering of if we add
- 30:25X amount of tests and that's going to take us this many hours
- 30:28and that's X amount of developer time.
- 30:33Where I think it falls down is everybody says that that I've
- 30:36taught that I've encountered, right?
- 30:37Everybody will say that. And then the actual, all right,
- 30:41well, let's act on that information or let's do
- 30:44something about that is where I, I tend to find it falls down.
- 30:48Totally. And I think I would say from you
- 30:50know from our experience, if you have not raised or earned $10
- 30:57million, I wouldn't worry about anything that Sema says except
- 31:02maybe developer retention and then there still could be good
- 31:06reasons to have to switch. The only thing that matters is
- 31:11getting the product market fit and not running out of money.
- 31:14The only two things, those are the only two things.
- 31:16Do not worry about code quality, do not worry about code
- 31:18security. Get to a place, process
- 31:22consistency, any of these things get make it, get out, get to
- 31:27escape velocity and then future dollars, whether it's customer
- 31:31dollars or. Venture.
- 31:34Dollars or whomever then they use that money to work on these
- 31:37non non functional requirements. The first of the list that I
- 31:42might care about is testing because testing can increase
- 31:49velocity which can then help you get faster to product market
- 31:51fit. But I would be incredibly
- 31:54sceptical about adding unit tests or any kind of testing.
- 31:58I'd be very sceptical. Doesn't mean the answer is no,
- 32:00but I'd be very sceptical for almost any business adding them
- 32:04in those early stages. You'd have to be incredibly
- 32:08intentional that there was a return on investment of the
- 32:10developers time rather than just coding.
- 32:13Not that you shouldn't be adding it later.
- 32:15And obviously AI has, is testing is one of the best use cases for
- 32:21AI because it just makes it go so much faster.
- 32:23But any, any engineering leader, I would be inclined to be
- 32:26sceptical of of adding tests that early on.
- 32:30You can still fundraise like investors don't care at A at a
- 32:33Series A. They're expecting you to work on
- 32:35product market fit every with the right people and with the
- 32:38right budget. Any problem, any code problem is
- 32:41fixable. You need to stay in business and
- 32:44you need to grow. So get those things right and
- 32:46then hopefully when you make it then you can come back and worry
- 32:50about these non functional requirements.
- 32:53Brilliantly said. So let's dive into Gen AI and
- 32:58specifically in my mind, I've had this paper that I read
- 33:04probably 6 to 8 months ago that will not leave my head.
- 33:11And it is all about how something around the lines of
- 33:1775% of code that was created by Gen AI is then later deleted.
- 33:23And so it, it really goes back to this theme that you're
- 33:27talking about, move fast and then come back and refactor
- 33:30almost. And there's a time to move fast
- 33:34and there's a time to do what you have to do to make sure all
- 33:38your keys are crossed and your eyes are dotted.
- 33:42What have you found when you are looking at the Gen AI code?
- 33:46We are absolutely bullish on using Gen AI code full stop.
- 33:53We think it is better for developers, we think it's better
- 33:56for organisations. I would say it was high enough
- 34:00quality at least a year ago to be more useful than not.
- 34:05And it's only been it's only gone up the quality curve since
- 34:09in terms of accuracy, usefulness, etcetera.
- 34:15We really like using and really recommend using Jenny out a code
- 34:20in in almost all situations. But it comes with an incredibly
- 34:26strong recommendation, which is to apply every kind of rigorous
- 34:30review that you normally would and then maybe then some.
- 34:34And of course that means putting Jenny I through any of your
- 34:40quality gates, your security dates.
- 34:43Not that anyone would do this, but you can't we you know, you
- 34:47don't run open source framework through a security scan.
- 34:51You use it right, because you're it's gone through others.
- 34:55This you I mean, you would run the CV ES, you wouldn't run a
- 34:58SAS or DAT. You wouldn't you wouldn't put it
- 35:00a SAS or DAS scan on your on open source libraries.
- 35:04You most certainly need to put security scans, quality scans,
- 35:08any scans you have on on Jenny I code.
- 35:12Most importantly, code is a craft is code review most
- 35:17important. So if you are you know, you
- 35:19don't we don't code review open source libraries we're using.
- 35:22We just use them. That's it's obviously a very big
- 35:24difference here. It should get extra code review.
- 35:28And I'd say the third part is, you know, when Sima scans for
- 35:31Gen AI code, we actually ask two questions. 1 is how much code
- 35:35was Gen AI originated versus not Gen AI originated, Not Gen AI
- 35:38originated could be written by the team, copied from Stack
- 35:42Overflow, copied from, you know, open source reference.
- 35:46If it is Gen AI originated, question #2 is was it modified
- 35:50by a developer? And so we think about Gen AI
- 35:53pure. Gen AI blended.
- 35:55Pure came straight untouched from the prompt.
- 36:00Gen AI blended has been modified at least a bit by a developer.
- 36:05So think of the extreme example. Imagine you were looking at a
- 36:08code base and you asked the developer how they built it and
- 36:12100% of it was Gen AI and it hadn't been modified in any way.
- 36:16It just came straight from the prompt.
- 36:18You should be very sceptical that it was contextually
- 36:21appropriate, that it didn't have major quality holes, didn't have
- 36:25any security risks, etcetera. So that would be an example of
- 36:28100% pure Gen AI. Now if you're prototyping, sure,
- 36:33right. If it just gets the idea across,
- 36:35it's a great, it's a great way to do that.
- 36:37But if you're talking about enterprise grade, you know,
- 36:39production ready code, by all means you should be pretty, you
- 36:42should be quite nervous. And so we measure Gen AI
- 36:45originated, yes, no. And then if Gen AI pure blended,
- 36:50just, you know, a code review could it could be good.
- 36:55So we're not saying Gen AI code has to be 100% blended, but we
- 36:59are saying if it's not largely blended, it's a pretty big risk
- 37:02factor that that folks aren't taking the the review seriously.
- 37:07It's basically the video that I've seen on line where a man
- 37:14teaches his 8 year old daughter to code with cursor and she's
- 37:19able to do it. It's a true feat that she can
- 37:23create a web page with cursor and edit things there.
- 37:27But if it's pure Jenny I code, you're kind of no different than
- 37:33that 8 year old. Yeah, you know, you can prompt
- 37:37it well and you know, I used Mai when I write, certainly when I
- 37:42research and for low stakes stuff if it can be about right
- 37:49or close enough and I I don't need to modify to get the point
- 37:51across. But for anything high stakes, I
- 37:55rewrite it from scratch or certainly line by line I'm
- 37:58editing and most things, most words are getting modified.
- 38:01So the the more serious the same is true for code, the more the
- 38:04higher stakes it is, the more you should expect that you're
- 38:08going to be line editing it. And the more sceptical you
- 38:11should be that if you see code that is high stakes and hasn't
- 38:14been line edited, that would be that would be not determinative,
- 38:17but certainly a red flag. Have you seen patterns of Gen AI
- 38:23code? Because as you were saying,
- 38:25there's, when we write, I think just about everybody uses some
- 38:29form of Jenny I these days to write.
- 38:32I notice I never liked Jenny I writing because it is so
- 38:36verbose. And even if you prompt it well
- 38:39and say short sentences, one sentence, paragraphs, it still
- 38:44doesn't listen and it doesn't really do it.
- 38:47That is a key giveaway for me. And there's some words that are
- 38:52key giveaways that you're using Jenny I in your writing.
- 38:55Are there things that you've noticed or you've seen in scans
- 39:00that potentially the code quality or Jenny is going to to
- 39:05learn more towards this? I've heard stories about how if
- 39:10you are writing in Python, you're good because there's been
- 39:12so much data and training examples in the LLM with Python,
- 39:17But if you're trying to write and go, maybe you get random
- 39:21Python spliced in there. Have you seen any of this in in
- 39:25the code quality side of things or is that a non?
- 39:29Factor. Yeah, it's a really good
- 39:30question. My honest answer is I have heard
- 39:34those stories and I have not found any of them in particular
- 39:38conclusive, which does not mean they're wrong.
- 39:41It means any individual developer out there, I would be
- 39:45at least once 1/4 contemplating switching tools or using more
- 39:50than one tool. Now if you're working in a
- 39:52commercial setting, you have to make sure that you have approval
- 39:55for those tools and they have to be at the right licence level to
- 39:57protect protect your company's intellectual property.
- 40:01But there are at least 5, arguably 10 very high quality
- 40:06LLMS, whether they're specific decoding or not, and more are
- 40:10coming that I would be experimenting pretty regularly
- 40:14to swap out. Do I like is this one doing a
- 40:16good job for this or or not? We see it as a, it's kind of an
- 40:20audience or, but I think you'll know where I'm going.
- 40:22It's a real strength for us if we're looking at a company and
- 40:24they let their developers, they pay for more than one tool
- 40:27because it's a recognition of just how powerful these tools
- 40:31are in terms of helping developers do their best work
- 40:33and an acknowledgement that we're so early in the process.
- 40:37You know, you could mandate everyone use VS Code does many
- 40:41things, right? It may not be the best in every
- 40:43situation, but you're not you're not losing much, you're not
- 40:46losing leaving much value on the table if you force everyone to
- 40:49use the same IDEI don't think that's true for forcing everyone
- 40:52to use a single, a single LLM to code.
- 40:57I think you could be really losing out.
- 40:59And certainly I would want you to make that review that
- 41:01decision pretty regularly. Executives listening it, your
- 41:06coders are using genetic code, full stop.
- 41:08Everybody's using it. So please buy them a commercial
- 41:12grade licence and please take me seriously that you should let
- 41:16them experiment, use more than one, have a workshop like a, you
- 41:21know, a, a slack channel on discussing which ones are
- 41:24working in different circumstances, etcetera.
- 41:27Because, well, it, it very well could be true that language X
- 41:31doesn't work today on, you know, it, it could, that could be a
- 41:34tool specific decision, it could change over time, etcetera.
- 41:37This tools at work, they're very powerful, but they're still
- 41:40being built. So please, please, please
- 41:43encourage and support that. Experimentation.
- 41:48Have you seen trends with Gen AI created code that is actually
- 41:55copyright code? So this is not legal advice.
- 42:01Go talk to your team's lawyer about this.
- 42:05If we think about Gen AI code, you know the plus side of using
- 42:10Gen AI code is it increases productivity, throughput,
- 42:14developer satisfaction, etcetera.
- 42:16The downsides can include the code is not high quality enough.
- 42:20You solve that through code reviews and tooling.
- 42:23The code is not secure enough. You solve that through your
- 42:26security tooling and and code reviews and making sure the
- 42:30developers have time to fix security issues, which is not a
- 42:34given. Third is intellectual property
- 42:38risk from using Gen AI to code. And 4th is what I'm saying.
- 42:42It is something called exit risk.
- 42:43We'll come back to it within. You see, I'm a very structured
- 42:47guy. Within intellectual property
- 42:49risk, there is the risk that your code can't get patent
- 42:54protection, that you're seeking patent protection and can't get
- 42:57it. We think that that risk is 0 to
- 42:59none. You should be able to get patent
- 43:01protection because the patent is protecting the idea, not the
- 43:05text. Another important IP protection
- 43:08is trade secret, which is just like Coca Cola's formula.
- 43:11You just can't let anyone have access to it.
- 43:13The way that you can prevent that is making sure that you're
- 43:17using the right tool with the right licence level.
- 43:21Please play the following clip to anybody who needs to use your
- 43:25your legal team. It is crazy not to give
- 43:28developers enterprise grade licences and implicitly I'll let
- 43:31them use free tools for free. You know non enterprise tools
- 43:36for free. Because those tools train on
- 43:38what people are entering in and it is just like posting your
- 43:41company secret code on the Internet, which you should not
- 43:43do. So trade secret is a real risk,
- 43:45but it's solvable by giving people licences.
- 43:48Some companies seek copyright on their code just like they seek
- 43:54patenting on their code There. It is not clear we would
- 43:57consider that a risk because copyright is you copyright the
- 44:03words themselves or the work itself.
- 44:07And in human writing, you can't say try to be to your whomever,
- 44:13write me a book and then go get it copyrighted because the words
- 44:16are not yours. The words are a computer.
- 44:18So if you're at a company, it's only the largest ones really who
- 44:21seek copyright protection. Number one, please talk to your
- 44:24lawyers and #2 come talk to us because copyright protection,
- 44:29you're going to have to take some safety precautions if
- 44:32you're going to continue to copyright your code.
- 44:34That leaves us with infringement.
- 44:37So copyright of your own code, once you've written it, can you
- 44:39get copyright protection? Now let's talk about infringing
- 44:43because the LLM is trained on code that then passes to you
- 44:51that you should not. So that infringement a little
- 44:55structure again, one is copyright infringement and the
- 44:58other is open source licence risk infringement.
- 45:03We we assess again, it's not, it's not legal advice, talk to
- 45:07your lawyers. We assess that copyright
- 45:11infringement is relatively low because for for it to be trained
- 45:16on copyrighted code, they would have had to have gotten the code
- 45:18in the 1st place. And it's very unlikely that they
- 45:21were training based on copyrighted code, which is it's
- 45:23going to be secret in the 1st place.
- 45:25That leaves infringement of the open source licences.
- 45:30So just like regular open source comes with licences that are
- 45:32risky, so too if the if the training set, you know, it was
- 45:37trained on open source with the wrong kind of licence and then
- 45:40that code made it into your own code, it generates the risk
- 45:47there is unclear. So I would say if your company
- 45:51above average cares about open source legal risk, open source
- 45:55legal risk, then it is likely you should apply that same level
- 46:00of care to open source to open source infringement risk from
- 46:04using Gen AI code. If you today don't care if your
- 46:08company, and I don't mean you as a developer, I mean your legal
- 46:10team, if they don't care about open source legal risks, it is
- 46:15likely that you're not. The the risk of open source
- 46:19legal risk from Gen AI is smaller than directly using open
- 46:23source. So if you don't care about the
- 46:24larger risk, you likely don't have to worry about it.
- 46:27Demetrius, I can only hope that was the most boring 5 minutes of
- 46:29your entire week. Intellectual property risk and
- 46:33and code. Apologies to the listeners.
- 46:35I hope at least some of you found it interesting and aren't
- 46:37like falling asleep at the wheel hearing a little IP talk.
- 46:42Well, I do like how you break it down as a spectrum as opposed to
- 46:47just like, yeah, watch out for it.
- 46:49It's in there and it is very nuanced and it's also what does
- 46:54your company care about. And then you should think about
- 46:59the potential risks. It sounds like the real risk is
- 47:03probably using some type of open source package, not in the
- 47:08generative AI code that could be using open source.
- 47:16That single topic is the Wizard's been the most vigorous
- 47:20debate in the legal community. And so, you know, let me
- 47:24acknowledge there's a debate, which is another even more
- 47:26important reason that you should talk to your lawyers about this.
- 47:29But logically, what you're saying must be true.
- 47:32If the company goes and uses open source with the wrong kind
- 47:39of licence, it's directly risky. Now how likely is that risk to
- 47:43be realised? Depends, but it's a direct use.
- 47:47If the the LLM creator uses training set data with the wrong
- 47:53kind of licence, that itself is not enough to trigger risk in
- 47:58the user. It's enough to trigger risk for
- 48:01the LLMS. The LLMS are getting sued over this or getting sued,
- 48:05but it's not enough just that the the LLM creator is using it.
- 48:09That code would have to make it to your code for it to actually
- 48:13be triggered. There's not a general risk and
- 48:16someone would have to find it and someone would have to care.
- 48:18Now this is my public service announcement given everyone out
- 48:22there. Your code runs on open source
- 48:26directly because you're using it, but also indirectly because
- 48:29it's been the training set for all of your Gen AI tools.
- 48:32Please, you have your company make a suitable investment in
- 48:37doing right by the open source communities you're a part of.
- 48:40Commiserate with what resources you have.
- 48:43If you're a startup, do not spend 0 because the most best
- 48:47thing you can do for the world is make it like you're a small
- 48:49start up. Don't, don't spend any time.
- 48:51And if you're a giant one, I mean, obviously look at the
- 48:53contributions that the that Fang companies have made to open
- 48:57source, right? They can put, I'm sure billions
- 49:00of dollars in over time, make an investment, commiserate.
- 49:03And it doesn't have to be cash. It could be letting developers
- 49:05code on it, etcetera. That's the right thing to do,
- 49:09given that you're getting this for free.
- 49:11And it probably also helps, I guess tactically, were you ever
- 49:15to be challenged by your inappropriate use of open source
- 49:18code, it would be good to be able to point out, hey, we made
- 49:21a mistake. But listen, we take, we take
- 49:23this seriously. We're good.
- 49:24We're good citizens. That doesn't literally get you
- 49:28out of the legal risk you might be facing, but it doesn't hurt.
- 49:32It doesn't. Hurt.
- 49:34You did mention exit risk also. Yes.
- 49:37So exit risk is the possibility that if your company is getting
- 49:41is getting sold or someone's thinking about putting
- 49:43investment in that a buyer or investor looks at the code you
- 49:48wrote and decided we can use AI to build it instead.
- 49:53And your company is no longer valuable to us or is less
- 49:56valuable to us. Wild, wild.
- 50:00I'm sure you've seen wait say that.
- 50:01Again. So basically it's like there's
- 50:03no Moat here. AI can do the, it's the
- 50:07potential. Of it's the potential of no
- 50:08mote. You've seen inception, I hope,
- 50:12right, that Christopher Nolan. Yeah, I like to explain the
- 50:16power of Jen AI in the those world creators where they
- 50:20literally think it and then the world just unfolds.
- 50:23Certainly with respect to prototypes, Jen AI is 95% faster
- 50:29than doing it some other way, right?
- 50:30And seeing some of that actually works with real code, it's so
- 50:33much faster. We there are public published
- 50:36examples of companies in a diligence process, red teaming,
- 50:42taking a group of people and saying, could you just build
- 50:44this yourself? And instead in deciding in at
- 50:48least one instance that they're not going to buy the company
- 50:50they were looking at. Now take a 10,000 foot view.
- 50:54Why do companies buy other companies or invest in other
- 50:56companies? Because of the financials and
- 51:00because of the technology. You know why they invest in
- 51:03technology companies, the financials, Let's take eBay.
- 51:07eBay doesn't matter how they're building the code.
- 51:09They are very, it's a great brand.
- 51:11They have a lot of revenue, a predictable revenue.
- 51:14Whatever they're doing, working. It could be they could have no
- 51:17open source, they could do it by hand.
- 51:18I know that's not true because there's a great team and they
- 51:20rely on open source. Whatever they're doing is
- 51:22working. If you are, you know, if you're
- 51:26building an analytics tool, that if you're building an analytics
- 51:31tool that takes unstructured data and produces plain English
- 51:35insights, well guess what? Any LLM can do that.
- 51:39And even if you make it to the stage of diligence, you, they
- 51:44might say, well could we, could we build this ourselves instead?
- 51:47Now, if you have a whole bunch of customers who love your
- 51:50version of it, then they are not likely to switch to a generic
- 51:54LLM tool. And so the way that we'd say it
- 51:57is if a investor or Enquirer is buying your book of business, is
- 52:01buying your sales, that is still protected regardless of how well
- 52:05of how you got there, not how well if they're buying the tech
- 52:08or they're emphasising the tech. It is less valuable than it was
- 52:126 or 12 or 18 months ago. And that trend is only going to
- 52:15continue. That's kind of the sad news.
- 52:18The good news is you can get to a product that is sellable
- 52:22faster. So if you can build products
- 52:24five times fast, certainly three times faster to get to
- 52:27production on not just prototype, but actually get to
- 52:30production, well, then you can get to business outcomes, you
- 52:33can get to revenue faster. And so yes, there could be an
- 52:37uncomfortable conversation about is your code reproducible, but
- 52:40you're in diligence conversations in three years
- 52:42rather than 5 because you've you've built a valuable product
- 52:47that much faster. It comes back to remember the
- 52:50beginning of this where I talked about pure versus blended code.
- 52:54Blending is your friend because it shows that you are and it
- 52:58don't just do it for its own your own sake, But the more
- 53:02contextualised and specific to the problem you're solving, the
- 53:06more valuable that technology is relative to building it from
- 53:10scratch. So all of the benefits of all of
- 53:14the risks of Jenny I code are addressed by blending to solve
- 53:18security issues, to solve quality issues, IP risk for the
- 53:22most part, and an exit risk because it's it's not your
- 53:26concern. Again, imagine an extreme
- 53:27example. I'd like you to buy my company.
- 53:29Did you write it? No, it's three open source
- 53:32libraries. The the value of that tech is 0
- 53:35because people can get it for free.
- 53:37Now you could have an amazing customers who love it and for
- 53:40some reason are buying it through you, right.
- 53:42That's an extreme example. Jenny eyes.
- 53:45It's it's bringing us in that same direction.
- 53:47The code will matter less, and certainly generic code will
- 53:51matter a lot less than than than truly custom code.
- 53:57Yeah, it's funny. There's something there about
- 54:01the code, but then also everything else around the
- 54:05company and the brand. Is the brand strong enough to
- 54:09where OK, it is generic code, but because the brand is there
- 54:13and people go with it, like you were saying with the eBay
- 54:16example or even I know there, there's plenty of social media
- 54:24sites or templates that you can grab a news feed with a simple
- 54:30plug in and you have on your website a news feed that doesn't
- 54:34make you Twitter or Facebook or whatever name your favourite
- 54:38social media network, right? There's, there's those brands
- 54:40they're granted that's an extreme example because I'm sure
- 54:44the code bases of every one of those that I just named off is
- 54:48very complex and not at all in this same ballpark that we're
- 54:53talking about. But it is fascinating to think
- 54:56about that how how to create that defensibility.
- 55:02And I'm wondering since you are playing in the intersection of
- 55:07companies that are getting bought and basically the
- 55:12acquirers, right, because your tool helps the acquirers
- 55:17understand what's going on in the code bases of companies.
- 55:22Have you seen trends or do you have anything on how many
- 55:27companies are getting bought right now?
- 55:29Is there anything you know how with, I think it's Carta puts
- 55:33out there, this is how many companies are getting invested
- 55:36in Series A, Series B, that type of thing.
- 55:38Do you have any information on that or is it all behind NDA's
- 55:41that you can't share any? Yeah.
- 55:43I can say at a high level, MNA activity is definitely up from
- 55:46last year and definitely up from 2 years ago.
- 55:50We're not all the way there yet of we think 2025 is going to be
- 55:55gigantic in terms of MNA activity.
- 55:59Investors have so much, so much, so much funds to spend that we
- 56:04call it dry powder that they haven't invested yet and it's
- 56:07been building up. So we think so volume is
- 56:09definitely up. It's going to blow up sometime
- 56:12in 2025. Wow.
- 56:15And this is all for SAS companies.
- 56:18Primarily it's. Certainly a SAS companies.
- 56:22I try not to speak about things I'm not super familiar with.
- 56:24I would expect a general increase in investment activity
- 56:31because these investors turn, the investors we know well are
- 56:34multi fund or multi strategy. So they're doing different
- 56:38things. It's not just SAS, but certainly
- 56:41software companies. We'd expect to see a pretty
- 56:43substantial increase in M&A in the next 6 to 12 months.
- 56:48Incredible.