6 ms·
But if building software gets easy enough, maybe there won't be any requirements gathering because it will be directly built by practitioners.
by JoeSmithson 6y ago
But if building software gets easy enough, maybe there won't be any requirements gathering because it will be directly built by practitioners.
- fauigerzigerk 6y agoYes, but I think what those DIY solutions do is to lower the initial barrier to achieve some kind of automation at the cost of accumulating technical debt at a much faster pace. It's not entirely clear to me what the long term impact on demand for software development is. In some cases, cobbled together ad hoc solutions can last and actually work well for a long time. They avoid the cost of overdesigned systems built for a future that never arrives using fashionable technologies of the day. In other cases it looks like the externalities of this designless process are far greater than the direct benefits as adding features either slows to a crawl or massively increases the chance of human error. Judging by the pre-virus job market, there is no sign of any decline in demand for in-house software developers. What worries me far more than that is the tendency toward funnelling everything through a handful of oligopolist gatekeepers that are in a position to extract a huge share of the value developers create.
- yetihehe 6y ago> What worries me far more than that is the tendency toward funnelling everything through a handful of oligopolist gatekeepers that are in a position to extract a huge share of the value developers create. Like with those factory owners who extracted huge share of the value that weavers created? Concentration and amplification of imagining/developin/computing/manufacturing power through tools means someone who wields those tools will have more power. Now the question is how to maintain social equality (give some of that power back to people who do not want to have that power?). That currently leads to heavy taxation of production and basic income experiments.
- fauigerzigerk 6y agoI think what we need is for governments to make sure that markets function properly. In our industry that often means mandating open access to data and guaranteed access to APIs and distribution channels at reasonable cost under reasonable terms. Also, we need independent dispute arbitration when it comes to accessing highly concentrated distribution platforms.
- panta 6y agoI agree. I would only add that when the problem space is not well understood, these cobbled together solutions can also give the illusion of working well, but being suboptimal in the long term they can accumulate large "missed-opportunity" costs. This is where experience can make a huge difference. EDIT: spelling
- bcrosby95 6y ago> What worries me far more than that is the tendency toward funnelling everything through a handful of oligopolist gatekeepers that are in a position to extract a huge share of the value developers create. I was worried about this too back in the late 90s/early 00s. It certainly seemed to be the way the world was heading at the time. But I sort of feel like, due to the low startup costs of software, it is going to be much more difficult to happen. Also, in software, economies of scale kinda work in reverse: the more customers you have, the more complex your software has to be, the more people you have to hire to write it, and the less efficient per developer you are.
- ec109685 6y agoIt depends on what you are measuring efficiency based on. If it is revenge per developer, that will likely go up as the number of customers increase, which is why SaaS businesses can be so lucrative.
- ec109685 6y ago“Revenue” :)
- fauigerzigerk 6y agoI wasn't worried about it back then, because whether or not I could deploy on a particular computer or access some data was a matter of trust between me and my customers. No middlemen, no gatekeepers. Today, many users are only reachable via platforms/shops that are severely restricted and/or dominated by a few all powerful overlords that can ban you for life, rendering your skills null and void in the blink of an AI - no recourse. Some of that is understandable. Users' trust was misused. There is a constant onslaught of all sorts of miscreants trying to exploit every imaginable loophole, technical or social. Everyone is seeking protection in the arms of someone powerful. But there is also a very large degree of market dysfunction. Just look at their margins. Look at their revenue cut. Look at their terms of service. They can dictate absolutely everything and grant you absolutely no rights whatsoever. And there are like five of them on the entire planet ruling over those distribution channels. The only right you have is to walk away. Now try walking away from the only market there is. You're leaving behind 99% of your potential customers. Not in my worst nightmares would I have imagined a dystopia like this back in the 90s.
- freeduck 6y agoJust like SQL was ment to be an easy to use tool for business people to query data :-)
- nogabebop23 6y agonow they just use pivot tables. Bloody pivot tables...
- collyw 6y agoIt seems to complex for a whole generation of developers.
- F_J_H 6y agoI'm puzzled by how many people seem to have a huge "mental block" when it comes to SQL. It is trivially easy to learn, (a weekend), and it is so incredibly powerful. To me, it is a skill like learning how to type properly - it will pay dividends for years to come...
- StudyAnimal 6y agoSql is fine as tweet sized selects. I developed my mental block deliberately after working for a company that had about a million lines of business logic implemented in thousand line sql stored procedures. Now I put as many layers as possible between sql and myself.
- F_J_H 6y agoWell, wait until you have to maintain a system where someone has "reinvented the SQL/database wheel" with a "this is gonna be so awesome" custom ORM, complete with totally re-invented referential integrity enforcement...
- jjeaff 6y agoI'm confused as to how anyone can build data backed software of any consequence without sql.
- partyboat1586 6y agoSoftware will always be technical even when it becomes drag and drop. It will lower the barrier but there will always be a place for people who understand the technical intricacies underlying the interface.
- brodo 6y agoThis is called 'End User Development' or 'End user Programming'. There is a book called 'A Small Matter of Programming' by Bonnie Nardi on this, which is worth a read. My point of view is that everyone who wants to do something like this needs to be able of computational thinking and willing to use these tools. Most people are neither. Moreover, most complexity in software engineering today is due to market forces and legacy systems. Think about why we have Javascript. Think about COBOL systems running half of the banking world. I don't see these going away any time soon.
- goatlover 6y agoCobol was designed so that business people could program it. Then there was Basic, Smalltalk, spreadsheets, office suites, Lotus Notes, Hypercard, Visual Basic, Flash and the web used to be something simple enough anyone could whip a simple page or website together. But now we have Wordpress and Wix. It doesn't seem like any of that has diminished the demand for software professionals.
- lioeters 6y agoThanks for the book recommendation. I've found related info, it's on my reading list now. https://mitpress.mit.edu/books/small-matter-programming https://mitpress.mit.edu/books/small-matter-programming https://en.wikipedia.org/wiki/Small_matter_of_programming https://en.wikipedia.org/wiki/Small_matter_of_programming I've long been a fan of end-user programming, and have promoted it in the form of domain-specific languages and visual building of logic. I love that it gives "non-programmer" users the power to (try to) build what they imagine, and have seen it lead to valuable prototypes and successful tools/products/services. On the other hand, I've come to learn that this is still a form of programming, however higher a layer of abstraction. Users who attempt a complex problem space will sooner or later run into what experienced programmers deal with every day, the challenge of organizing thought and software. What typically happens is, as the "non-program" grows larger and more complex, eventually it starts pushing the limits of the abstraction, either of the user's capacity or the system's. That's when they call in a "real" programmer, to get in there and patch up the leaky abstraction, or convert the prototype into actual software in a better-suited language. I still think low- or no-code programming environments have a lot of potential to change what software means to people, particularly by blurring the boundary between software development as we know it, and forms of "intuitive computing" like putting together mental Lego blocks.
- elindbe2 6y agoWe already have that, it's called Excel.
- derefr 6y agoThe skill of programming is the skill of putting requirements into a rigid, formal model. There's a famous experiment, where you get people (who aren't programmers) to pair up, with one person blindfolded. The person who can see must instruct their blindfolded partner on how to accomplish some complex mechanical task (e.g. making a cake using ingredients and utensils on the table in front of them.) They're given free rein on what sort of instructions to give. The instructing partner almost always fails, here, because their naive assumption is that they can instruct the blindfolded partner the same way they would instruct the people they're used to talking to (those almost always being sighted people.) Though, even the people with experience working with blind people (e.g. relatives of theirs), tend to fail here as well, because newly blinded people don't have a built-up repertoire of sensory skills to cope with vague instructions. Almost all human communication is founded on a belief that the other person can derive the "rest of" the meaning of your words from context. So they give instructions with contextual meanings, unconscious to the fact that their partner can't actually derive the context required. Obviously, the blindfolded partner here is playing the role of a computer. Computers can't derive your meaning from context either. If they could, you could just have a single "Do What I Mean" button. But that wouldn't be a computer; that'd be a magic genie :) The instructing partners who succeed in this experiment, are the people with a "programming mindset"—the people who can repeatedly break the task down until it's specified as a flowchart of instructions and checks that each can be performed without any context the blindfolded partner doesn't possess. And, to succeed at a series of such problems, they also need the ability to quickly attain, for a new kind of "programmable system", an understanding of what kind of context that system does/doesn't have access to, and of how that should change their approach to formulating instructions. That skill, altogether, is formal modelling.
- jimbokun 6y agoHypercard is still the best system ever created for "non-programmers" to write software. It did not eliminate the need for professional programmers. I don't think the lack of good tools is the reason we still need professional programmers.
- Shorel 6y agoThey do that already. It's commonly known as Excel.