Programming for People Who Don't Program Good

Most software companies need to solve problems of a certain size in order to find the right return on investment. But what about all the other smaller problems we deal with? The thousands of paper cuts we endure daily? Can GenAI help MORE people solve SMALLER problems with software?

Programming for People Who Don't Program Good

One of the main goals I have for the TIDAL SERIES newsletter is to be human-centric, which means thinking not only about technology, which is relatively easy to do, but also about the human side of the equation, which is more difficult, and surprisingly something we tend to forget about–myself included. Tied into the human side is capitalism–how do we build companies that solve problems for human beings?

The spark for this particular newsletter entry is a blog post about a talk Maggie Appleton gave regarding, at least partially, on how generative AI (GenAI) could give many more people the ability to program, and how those people can then build interesting and valuable pieces of software that fill a particular niche.

She calls these people barefoot developers.

For the last ~year I've been keeping a close eye on how language models capabilities meaningfully change the speed, ease, and accessibility of software development. The slightly bold theory I put forward in this talk is that we're on a verge of a golden age of local, home-cooked software and a new kind of developer – what I've called the barefoot developer. - https://maggieappleton.com/home-cooked-software
📒
I definitely suggest taking a read through her post. https://maggieappleton.com/home-cooked-software

Now, I'm not sure I completely like the name "barefoot developer", but I think the overall concept is fascinating. I also believe that programming has gotten easier over time and will continue to get easier, opening up the possibility of writing software to a wider group of people, people who can solve more niche problems.

The Long Tail

Appleton covers a lot of ground in her post slash talk. One thing I love is that Appleton gets into the concept of the long tail. I think the long tail is a problem that we encounter all over the place. It's one that I've talked about in terms of cybersecurity with CVEs.

Here, Appleton talks about how long tail problems are rarely solved. The number of them starts to add up.

Maggie Appleton - Home-Cooked Software and Barefoot Developers
"Google Maps is never going to support showing historical borders or tidal patterns, even if those things are essential to a few dozen, or even a few hundred people." - https://maggieappleton.com/home-cooked-software

The long tail is long for a reason. It's there because these things just don't seem financially feasible in a standard business model, especially one that requires the relatively expensive and time-consuming act of creating software to achieve.

Building Software with GenAI

Writing software is an expensive process. It's a difficult job. It takes a lot of thinking and problem solving. The question is, can GenAI help?

It’s easy to generate code, but not so easy to generate good code. - https://stackoverflow.blog/2024/06/10/generative-ai-is-not-going-to-build-your-engineering-team-for-you/

My opinion: GenAI can definitely program. However, it's not great at it, not at the moment, at least. There are many problems with using it to write code, one being that, somewhat counter-intuitively, you might need to know how to program in order to understand what mistakes it makes or what it has created in the first place.

As well, it would be difficult to put code into production that no one understands. (All though the trickster side of me thinks that would be amazing and hilarious at the same time.)

But then again, you can ask GenAI in natural language to write programs for you and it will.

"Ask me any question. I may have a good answer." - Paraphrasing Viswanath Venkatesh on ChatGPT https://doi.org/10.1016/j.ijinfomgt.2023.102642


GenAI is interesting because we can communicate with it in natural language, and it can take the instructions we give it and turn them into executable code. This means that we can talk to the computer in our own language, using our own words, and it can return, perhaps after a few prompts, a working application. It's a program that can create programs it wasn't explicitly programmed to create! Regardless of what we think of the quality of what it generates, this is still an amazing capability.

For example, we can ask GenAI, using plain natural language, to solve a common computer science interview question.

Here's a prompt to write a short program.

PROMPT> Take a signed 32-bit integer x and reverse its digits. If this reversal makes x exceed the signed 32-bit integer range, then the function should return 0. If the reversed integer starts with zeros, they should be removed

Here's the results.

def reverse_integer(x):
    if x < 0:
        sign = -1
        x = -x
    else:
        sign = 1
    
    reversed_x = 0
    while x != 0:
        pop = x % 10
        x //= 10
        
        if reversed_x > (2**31 - 1) // 10:
            return 0
        reversed_x = reversed_x * 10 + pop
    
    return sign * reversed_x

This is a working program. We can use GenAI to help us build applications, maybe not big ones, but programs nonetheless. For now, though, it might be better to think of it as a programming partner, along the lines of "pair programming," something that can help build features and bounce ideas off of and learn from.

Pair programming means all production software is developed by two people sitting at the same machine. The idea behind this practice is that two brains and four eyes are better than one brain and two eyes. You effectively get a continuous code review and a quicker response to nagging problems that may stop one person dead in their tracks. - https://www.agilealliance.org/glossary/xp/

Or, at worst, a relatively advanced autocomplete feature of an Integrated Developer Environment (IDE).

Building Niche Apps

Maggie Appleton - Home-Cooked Software and Barefoot Developers

The United States, and to a lesser extent the rest of the world, is awash in the concept of BIG STAKES Venture Capital (VC). The VC pattern is pretty well understood. Sure, it is hard to win at, but the underlying model is well known. Find big problems with big markets and provide capital and the human network behind it to build scalable companies. As well, this applies to existing software businesses, which tend to be large and in order to continuing growing need to solve bigger and bigger problems with bigger and bigger addressable markets (TAM).

However, only a few problems that can be solved with software are big enough to have a sizable return on investment in order to make financial sense for VCs. Humans have many smaller problems, or large problems with a smaller TAM, that are never solved, or are solved by humans over and over again on their own without the help of a smaller business, thereby reducing our overall global productivity, which we need to improve our quality of life.

Building Non-VC Model Cybersecurity Companies

One of my areas of interest is cybersecurity. But this area, of course, provides a few problems that other software businesses might not have to deal with.

Kane Narraway talks about this in a Linkedin post.

...there are a ton of problems in the security space that are too niche for anyone to fix at scale. There's a catch-22: - The problems are too small for VC-backed companies - The risk area is too large for small companies - The security space has too many requirements for bootstrappers. - https://www.linkedin.com/posts/kane-n_i-get-approached-by-a-lot-of-startups-promising-activity-7201337279078932481-oOAa

He goes on to say:

I'd like to see a future where we make it easier and cheaper for bootstrappers to get started so I don't have to fix the same problems over and over again.

As well, we have this post by Rami McCarthy and Kane Narraway that continues the theme...

There's been some recent discussion about the niche problems in cyber security we all seem to have. The venture capital model is focused on large addressable markets to get big wins, and these problems just don’t qualify for investment. This leads to security engineers fixing the same undifferentiated problems internally every time they join a new company because there is no “buy” alternative. - https://tldrsec.com/p/sub-venture-scale-security-problems

...and how risk plays a huge part in how difficult it is to build smaller cybersecurity companies.

The world of micro SaaS is growing and today there is even an ecosystem of accelerators to get micro SaaS companies off the ground and acquirers to sell them to. Yet you’ll rarely find any security companies in this ecosystem and there's a simple reason why - risk. - https://tldrsec.com/p/sub-venture-scale-security-problems

Do we have many small problems in cybersecurity? Yes. Is it easy to build businesses to solve those problems? Not really.

It's Easier to Build Applications Now, but Is It Easier to Build Companies?

There is no doubt in my mind: while complexity has certainly increased (front-end development I'm looking at you) there is also a similar increase in the ease of building applications. We have many new languages (e.g. we don't have to write in C), we have no-code and low-code, we have GenAI that, at the very least, can be a kind of rubber ducky sounding board to bounce ideas off of and perform what I would consider fairly substantial autocomplete for code.

But building a company, even a small one, is much more challenging.

More to come!

Further Reading

Apps

Home-Cooked Software and Barefoot Developers
The emerging golden age of home-cooked software, barefoot developers, and why the local-first community should help build it
Home-Cooked Software and Barefoot Developers | Hacker News
When to Design for Emergence
Market applications on the long-tail of user needs
Shirky: Situated Software
Clay Shirky’s writings about the Internet, including Economics and Culture, Media and Community, Open Source
An app can be a home-cooked meal
I made a messaging app for my family and my family only.

Cybersecurity

Kane N. on LinkedIn: I get approached by a lot of startups promising to fix my woes, but most… | 69 comments
I get approached by a lot of startups promising to fix my woes, but most of the problems I deal with in security today aren&#39;t VC-level problems. The downside… | 69 comments on LinkedIn

https://tldrsec.com/p/sub-venture-scale-security-problems

Micro-SaaS

Micro SaaS: What It Is and How to Build One | HackerNoon
A micro SaaS differs from the traditional one in scope and scale. It’s an ideal business model for indie creators. You’ll find out ideas and steps to start one.

Subscribe to Tidal Series by Curtis Collicutt

Don’t miss out on the latest issues. Sign up now to get access to the library of members-only issues.
jamie@example.com
Subscribe