Live data from Hacker News

Peter Naur's view of programming

hiringengineersbook.com

111–120 of 198 posts

Re: Peter Naur's view of programming

#111
The relative worthlessness of source code can easily be seen when the situation is flipped around. When you're told you can look at e.g. a competitor's source code, some open source code somewhere, or a prototype that a colleague already built during a proof-of-concept, that will almost never make you go much faster.

Meanwhile, I think organisations underestimate the cost of attempting to keep source code secret. It adds friction to almost every step of the development process, compared to not worrying about whether your build logs or repositories are publicly accessible, even if they're not open source.

Re: Peter Naur's view of programming

#112
Thinking about this more, I wonder if you can predict whether a software project is "failing" by the amount of code that is getting deleted early on.

I've been part of a half dozen or so successful medium->large scale projects, and we never really deleted large parts of the code base. The small teams bootstrapping them had a pretty clear goals of where they were going sufficiently to build a reasonable scafold early on to get somewhat working prototypes. Then as the project took shape things were fleshed or refactored far more than they were thrown away.

OTOH, projects i've seen fail frequently had core pieces rewritten on a somewhat regular basis.

Which if you think about it in the sense that every time a chunk of code is wholesale replaced, that is X man hours of effort flushed down the toilet. Few startups can afford engineers to be working on things which don't go towards the bottom line.

AKA if you have 6 engineers, and on average are replacing 25% of the code base a year, that is the equivalent of just throwing away 25+% of your runway every year. With the team communications overhead/etc I could totally see that it might be possible to never actually make forward progress even though the amount of code being thrown away isn't >50%

Re: Peter Naur's view of programming

#113

Thinking about this more, I wonder if you can predict whether a software project is "failing" by the amount of code that is getting deleted early on. I've been part of a half dozen or so successful medium->large scale projects, and we never really deleted large parts of the code base. The small teams bootstrapping them had a pretty clear goals of where they were going sufficiently to build a reasonable scafold early…

[deleted]

Re: Peter Naur's view of programming

#114

I think the author is seriously confused over the value of some crap his startup created in a couple man years vs actual products with market share, long term maintenance and thousands+ of man years of engineering/testing/documentation time. He even admits that they were rewriting large parts of it on a regular basis. That by itself indicates much of the code actually had little value, if the engineers themselves wer…

I disagree with you... sort of.

I think there's some truth that code has value, and there is some risk that making it available can cut into profits (See: Redis, Mongo, etc, changing course after open offerings became available on AWS/Azure/GCP).

But I think the much larger truth is that most of the value provided by companies (and most of what they charge for) is not "lines of excellent code" but rather the operating expertise of keeping a complicated system stable and available.

For example - All of the companies you listed do have widely available, open source offerings (Android, VS-Code, Mono, Swift, Webkit, etc).

The value wasn't in the code, the value was in the ecosystem around it.

I think this is true in more cases than folks expect. The Windows source code was leaked, but I don't see any companies scrambling to compete with MS by building on that code.

I think even if most of Google's repo was made public - the valuable part was the team that supports the infrastructure behind it, not the lines of code themselves (or at least, they make up a smaller portion of the value)

Re: Peter Naur's view of programming

#116
> Especially for the lower-level components, a good amount of research had been involved. We worked closely with an academic institute that specialized in computer vision. In short, this project wasn’t something that anybody could just easily recreate. So one of the assumptions we had implicitly made was that our source code was one of the company’s major assets.

Why not patent?

Re: Peter Naur's view of programming

#117

Thinking about this more, I wonder if you can predict whether a software project is "failing" by the amount of code that is getting deleted early on. I've been part of a half dozen or so successful medium->large scale projects, and we never really deleted large parts of the code base. The small teams bootstrapping them had a pretty clear goals of where they were going sufficiently to build a reasonable scafold early…

The amount of code written isn't static, and doesn't map neatly to "amount of developer effort."

If everything you write has to be "perfect" the first time around, you'll write a fraction as much as if you're willing to build 3 things (either now, or in the future), and take whichever works out the best. It might take more time, or it might take less time.

Re: Peter Naur's view of programming

#118

I think the author is seriously confused over the value of some crap his startup created in a couple man years vs actual products with market share, long term maintenance and thousands+ of man years of engineering/testing/documentation time. He even admits that they were rewriting large parts of it on a regular basis. That by itself indicates much of the code actually had little value, if the engineers themselves wer…

I disagree with you... sort of. I think there's some truth that code has value, and there is some risk that making it available can cut into profits (See: Redis, Mongo, etc, changing course after open offerings became available on AWS/Azure/GCP). But I think the much larger truth is that most of the value provided by companies (and most of what they charge for) is not "lines of excellent code" but rather the operatin…

Well I don't disagree with that either. Only that I must point out that libre washing a company with an open source product here/there doesn't really count. Sure android is open, but google isn't using it to make money directly, instead it feeds into the closed source ad/marketplace offerings.

If they opened that code, or apple opened up the entire iOS stack its quite likely they would have competitors that as you point out lowered the value of their primary offerings.

A google with a half dozen competent ad/search companies would look very different than the one that can afford to give away a large part of their product portfolio.

So, there is value in operating a "service" buisness, but there is even more value in operating a service business that has high barriers to entry. One way to erect those barriers is with hundreds of millions of dollars in engineering time spent on "source code" be that the code actually doing the searches/etc or the code being used to manage the clusters its running on.

Re: Peter Naur's view of programming

#119

I think the author is seriously confused over the value of some crap his startup created in a couple man years vs actual products with market share, long term maintenance and thousands+ of man years of engineering/testing/documentation time. He even admits that they were rewriting large parts of it on a regular basis. That by itself indicates much of the code actually had little value, if the engineers themselves wer…

I disagree with you... sort of. I think there's some truth that code has value, and there is some risk that making it available can cut into profits (See: Redis, Mongo, etc, changing course after open offerings became available on AWS/Azure/GCP). But I think the much larger truth is that most of the value provided by companies (and most of what they charge for) is not "lines of excellent code" but rather the operatin…

> I think there's some truth that code has value, and there is some risk that making it available can cut into profits (See: Redis, Mongo, etc, changing course after open offerings became available on AWS/Azure/GCP).

An example like that is only valid if you argue that there was a reasonable chance that the company could have 1) developed a comparable closed source version of the product and 2) somehow prevented a competitive open source version of that product from existing and being used by competitors.

Re: Peter Naur's view of programming

#120

I think the author is seriously confused over the value of some crap his startup created in a couple man years vs actual products with market share, long term maintenance and thousands+ of man years of engineering/testing/documentation time. He even admits that they were rewriting large parts of it on a regular basis. That by itself indicates much of the code actually had little value, if the engineers themselves wer…

I think the author makes a great argument, and would add network effects to reasons why code is worthless. Let's say I build an exact clone of Facebook, do I take away any value from Facebook.com? How about Office 365, I offer an exact copy of their cloud, except the sync doesn't work because OneDrive is built into Windows and won't authorize with my clone.

I guess before everything sync'd and auth'd to the cloud I could pirate Photoshop, but as the author points out, cracked software has always been a different landscape that carries malware more often than not and has no stability or feature updates, so why worry, it's no real competition if you're actually innovating your product, not to mention tech support!

As for throwing out code, I'd have to do some digging but there's a talk, maybe Dan Geer, outlining that every 1000 lines of code you write there's a certain number of security vulnerabilities, and you'll never find them all -- and the longer the code stays the same the longer those vulnerabilities are able to be prodded and discovered. So say you have an adversary with access to your source code, they are trying to figure out the "weird machine" of all the bugs in your code. The best way to foil this adversary is to keep changing the way your software works, always switching out one set of undetected bugs for another. Again, having a development team that understands how to change the code is infinitely more valuable than having access to the repo.

Post reply on HN