Live data from Hacker News

Software engineering research is a train wreck

buttondown.email

151–160 of 174 posts

Re: Software engineering research is a train wreck

#151
post #133

Earlier quoted context omitted.

The poor ontology backing the term software engineer has always seemed to me like the primary culprit for this problem. I've often heard people doing any of the following for their day job referred to as software engineers: - people who write basic static sties - people who write wordpress sites - people who write simple CRUD apps - people who write hardware drivers - people who write compilers - people who write dat…

Do you think other engineers think this way? Your bridge is only 20 yards over a creek, you're not a civil engineer? I'm sure the complexity, depth, and expected maintenance of some bridges vary too.

In my field (mechanical), there are engineers, technicians, and drafters. Each of the above require more education than the next, and is paid better than the next. Someone who only does drafting work will not describe their job as engineering, nor are companies likely to ask engineers to do drafting because it doesn't make sense to pay someone an engineer's salary for that kind of work.

Basic static site seems like drafting. A CRUD app or WordPress site or similar between drafting and technician.

Re: Software engineering research is a train wreck

#152
post #108

Earlier quoted context omitted.

My impression on reading this list was, uh yeah, there's no avoiding that. Except if you know an expert. Then just ask an expert. Search engines for papers suck, bad. At the fringes of human knowledge, you need an actual brain to process cutting-edge research. Either your own non-expert brain, or an expert brain to help guide you. That process is the same in every field. Older fields have textbooks with knowledge dis…

| Search engines for papers suck, bad. This screams the need for an intelligent search engine, with summarizing features that point out relevant parts of the paper, and (imho) a UI and algorithms that reach across disciplines and encourage discovery. So, for instance (I'm making this up), someone looking for a way to understand interferometry data might stumble on a useful regularization technique from image processi…

Wouldn't be some graph-traversing be enough? You find an important paper and then just search for papers which cite this one? And then sort by how many cite these (similar to the pagerank algorithm) and filter them by year and keyword?

There aren't that many different citing stiles, so I'm pretty sure it would be possible.

Re: Software engineering research is a train wreck

#153
post #5

> I’ve checked a few other papers and think I’m tentatively confident in this line of reasoning: certain bugs take more time to fix (and cause more damage) than others, and said bugs tend to be issues in the design. I haven’t vetted these papers to see if they don’t make major mistakes, though. It’s more time-consuming to do that when you’re trying to synthesize an stance based on lots of indirect pieces of evidence.…

> But too often people forget [...] the value of qualitative metrics which can only be judged subjectively.

When I read the rant, I remembered a story about my university days and your sentence prompted my to write it down.

10 years ago I had to write a meta paper about Test Driven Development (TDD). I was researching this topic and found studies and other meta papers.

Some of the studies were from the likes of Microsoft where they explained they wrote two different drivers with comparable lines of code - one with TDD and one without - and tracked how many bugs they found after version 1.0 and how fast the driver projects were delivered. So in these non-trivial multi-month multi-person projects they claimed TDD was extremely useful to reduce bugs.

Other papers had 20 students learn how to program with TDD and another 20 students without and tried to find differences there. They couldn't find too many differences in the groups doing something like a 2 hour project. Since the group who just learned TDD was a little bit slower, they concluded neutral or negative value of TDD.

When I looked into the meta papers comparing these, I found some that were judging both of these papers as being of equivalent value, which to this day I'm really wondering about.

Re: Software engineering research is a train wreck

#154
The Grand Unified Programming Theory: The Pure Function Pipeline Data Flow with Principle-based Warehouse/Workshop Model

Follower's success stories: Apple M1, HPE Cray SmartSim

Come soon: Qualcomm, MS, Intel, AMD, Samsung, Cray, etc.

https://github.com/linpengcheng/PurefunctionPipelineDataflow

Re: Software engineering research is a train wreck

#155

Earlier quoted context omitted.

| Search engines for papers suck, bad. This screams the need for an intelligent search engine, with summarizing features that point out relevant parts of the paper, and (imho) a UI and algorithms that reach across disciplines and encourage discovery. So, for instance (I'm making this up), someone looking for a way to understand interferometry data might stumble on a useful regularization technique from image processi…

Wouldn't be some graph-traversing be enough? You find an important paper and then just search for papers which cite this one? And then sort by how many cite these (similar to the pagerank algorithm) and filter them by year and keyword? There aren't that many different citing stiles, so I'm pretty sure it would be possible.

It is usually possible to do this (a digital journal can include links to cited/citing papers), but citations happen for a variety of reasons (background information, a single statistic, boosting a colleague's work...). Every citation applies to a different sentence or paragraph in an article. To understand the content and whether it is relevant, we still need to digest the text.

There are also less-cited papers and journals that can be just as relevant--every article starts with zero citations, and the vast majority of good work out there isn't exciting enough to be accepted for Nature.

Further, the process is rather incestuous: Previous person solved X problem with Y approach because that's the first thing someone came up with and it's just how it's done in our field, so let's continue doing this inefficient thing and citing that paper, maybe working on a better way to do things. Meanwhile in some other field, a mathematician or whatever came up with a far better solution to a similar problem long ago, but nobody in this field ever knew that, so it goes unnoticed.

I do want to see what is highly cited because it's probably interesting, but I also want to see things that don't get that kind of attention but are applicable to my work, and things that I wouldn't know are applicable to my work.

Another example: Currently, authors enter relevant keywords when they submit a paper. Maybe that works when someone searches the right combination of words, or maybe it doesn't because the search engines suck. Or because in one part of the world the topic has a completely different vocabulary, and we miss a whole library's worth of useful papers.

I speak from a background in STEM. I can't vouch for other disciplines, but I imagine they have similar pain points. Heck, I don't even know what others in STEM think, other than "that's just how research works."

I don't think it's an easy problem, or we wouldn't still be sifting through mounds of crap to find a few relevant, reproducible works worth reading and citing. I think it would involve figuring out the overarching themes and important methods in a paper and sorting them by their importance, and a little bit of fuzziness to say "hey, this isn't exactly what you're looking for, but it sure seems useful." This could even allow un-cited works a second chance.

I think I'm describing two separate goals, and the fuzzy part could wait until the relevance problem is addressed. I don't think the problems are particularly easy, or Google Scholar would have solved the problem and monetized the solution already. But it seems like they're solvable problems.

Re: Software engineering research is a train wreck

#156
Somewhat related: I enjoyed reading the eBook "The Leprechauns of Software Engineering" by Laurent Bossavit [1]. The author tried to track down the source research behind various pieces of received wisdom. I remember that the claimed cost of fixing bugs at a later stage was one of them.

[1]: https://leanpub.com/leprechauns

Re: Software engineering research is a train wreck

#157
post #32

I worked on engineering productivity research and measurement at Google for two years until about a month ago. (Opinions my own.) Compared to my former colleagues, I'm an infant in this area, so take this with a heaping of salt. In general, I think the author's cynicism about productivity research is justified, but I think it could have been directed more productively. (NB: the following comments say nothing about ar…

>> I'm highly skeptical of attempts to quantify the precise relationship between error discovery stage and cost in a way that is generalizable... I would say universally that bugs found prior to shipping are lower cost (not just cost to fix) than those found after. I've heard from an auto industry friend that over-the-air update capabilities are becoming mandatory for more components. That sounds good because critica…

> I would say universally that bugs found prior to shipping are lower cost (not just cost to fix) than those found after.

There's a survivorship bias in this comparison, though. All software contains bugs - some are found in the architectural, coding, testing, review, and end-user stages. Bugs found after shipping are more likely to be significant to an actual user, because it's likely they were noticed in the course of someone using the software a particular way.

However, it's entirely possible that there are bugs that never need to be fixed. Perhaps these bugs involve scenarios that never crop up, or are part of a product direction that gets abandoned completely. (Example: Quibi probably didn't need to handle credit card expiry gracefully, that would have been wasted effort).

Those bugs that made it into prod and got prioritized for a fix, and were memorable are likely to be higher effort just by the nature of those filters.

Re: Software engineering research is a train wreck

#158
post #95

" Here’s the only technique I’ve found that works, which I call scrobbling even though that means something totally different: " 1. Search seed terms you know, like “cost of bugs”, in an appropriate journal (here’s one). " 2. Find papers that look kinda relevant, skim their abstracts and conclusions. " 3. Make a list of all the papers that either cite or are cited by these papers and repeat. " 4. Find more useful ter…

Now I know why my professor explained breadth first search for an entire week!!

Re: Software engineering research is a train wreck

#159
post #137
post #75

Earlier quoted context omitted.

I seems like many posters in this thread try to classify software enineering as either creative or "mindless factory-work". Where actual enineering disciplines has the risk of removing the creative part. I think this classification is wrong. There IS NO mindless factory-work. Just as in other enineering disciplines, our work is not manufacturing. It's just that the actual manufacturing does not exist (or rather is do…

> It's just that the actual manufacturing does not exist (or rather is done by compiler) Here’s the kicker though: The part that is done by compilers used to be the bulk of software engineering. In his Art and Science book Hamming talks about how programmers rejected the idea of even just automated address assignment. They took great pride in manually managing absolute addressing. Only a sissy who doesn’t know real p…

It seems to go something like this every time:

* We create new technology.

* There's an explosion of creativity and applications of the technology.

* This leads to an explosion in the personalities involved.

* Some of these gravitate towards the tedium and expound on it constantly.

* Some person or group automates that away and increases the ability to be creative.

* Repeat from the top.

It's always fun to watch the wheel go around though. Never any shortage of commentary on HN about it!

Re: Software engineering research is a train wreck

#160
post #108

Earlier quoted context omitted.

My impression on reading this list was, uh yeah, there's no avoiding that. Except if you know an expert. Then just ask an expert. Search engines for papers suck, bad. At the fringes of human knowledge, you need an actual brain to process cutting-edge research. Either your own non-expert brain, or an expert brain to help guide you. That process is the same in every field. Older fields have textbooks with knowledge dis…

| Search engines for papers suck, bad. This screams the need for an intelligent search engine, with summarizing features that point out relevant parts of the paper, and (imho) a UI and algorithms that reach across disciplines and encourage discovery. So, for instance (I'm making this up), someone looking for a way to understand interferometry data might stumble on a useful regularization technique from image processi…

Semantic Scholar exists, and does a decent job mostly, in my opinion.
Post reply on HN