Follow Slashdot stories on Twitter

 



Forgot your password?
typodupeerror
×
Programming Software

An Idea For Software's Industrial Revolution 289

An anonymous reader writes: Tech company Code Valley makes the bold claim that a software industrial revolution may be imminent (PDF). They propose shifting developers from the coding domain (current software development practice) to a "design-domain," where the emphasis is no longer on writing code, but on decentralized design – code becomes simply a by-product of this collaboration. In this design-domain, software programs are designed (and built) by a peer-to-peer supply chain of software vendors, each owned and managed by a software engineer. They envisage a global supply-chain of these software experts capable of reliably delivering immensely complex software.
This discussion has been archived. No new comments can be posted.

An Idea For Software's Industrial Revolution

Comments Filter:
  • by Anonymous Coward on Friday September 04, 2015 @11:11AM (#50457453)

    Who is actually making the software, and why does it make since to divorce design from the people executing it? This is the dumbest idea since Agile was invented.

    • by plopez ( 54068 ) on Friday September 04, 2015 @11:16AM (#50457485) Journal

      Magical Elves!

      It's a whole new paradigm! A new Economy! There's no downside! Etc. etc.

    • by HornWumpus ( 783565 ) on Friday September 04, 2015 @11:23AM (#50457567)

      Decentralized design?

      That's another way of saying 'incoherent design'!

      Imagine 1000 incompatible mini 'rational rose' like abominations attempting to work together.

      Someone is pumping a stock.

      • by raymorris ( 2726007 ) on Friday September 04, 2015 @11:40AM (#50457709) Journal

        Toyota and Subaru sell the same car. Toyota made the engine and Subaru made the body. Or is it the other way around, I don't recall. It seems to work fine, though. And Subaru engines are used by many companies, in airplanes, boats, lots of places.

        In some markets, Subaru engines compete with Rotax. Each company has a line of off-the-shelf engines you can order. Some plane designs can any of three different engines - two choices from Rotax, and one from Subaru.

        Those same planes use instruments made by other companies, etc. A dozen different manufacturers might make stock components that can be used in different aircraft. Airplanes need to be 100% reliable, of course, so you don't often see DUMB design processes in aviation. If it works for aviation, it certainly might work for business software.

    • by plopez ( 54068 )

      Email these guys if you disagrree with their POV team@codevalley.com

    • by ShanghaiBill ( 739463 ) on Friday September 04, 2015 @11:32AM (#50457649)

      Who is actually making the software

      The coding is not done by programmers, but by peers. It says so right in the summary. Duh.

    • Re: (Score:2, Insightful)

      by Anonymous Coward

      Agile works great when you apply it to an organization that refuses to do a proper requirements gathering process.

      An code generation based off design type system could work if you could create software that doesn't have to contend with insane contradicting requirements based off of flawed business rules that can't change. Otherwise you will always need to tweak around the pure design aspects.

      • by Hairy1 ( 180056 )

        The word 'proper' is a trigger word for me . So lets talk about requirements gathering; what is 'proper' requirements gathering? How much detail do you need to get for it to be good enough?

        Requirements are like measuring the perimeter of a country; the shorter your ruler the longer it is, the more curls and crannies you find. And so it is with requirements; the more detail you get into the more you find. But there is a point at which the requirements become the application. There is a point where the proces

    • And changing programming from an 18th century style craft industry to an assembly line. Look at how computers were manufactured in the 70s and 80s vs today for an example more recent. You break off all the really hard stuff to a few top guys and the rest is done by folks earning minimum wage who don't really understand what they're doing but know if they do certain steps they get certain results. If labor wasn't so cheap this wouldn't work ( too many specific tasks) but at less than a buck an hour in many c
    • Oompa Loompa, mofo!

    • by Art3x ( 973401 )

      I agree. Something I read 10 years ago really resonated with me, and it refutes this whole idea. From The New Methodology [martinfowler.com] (2005):

      Separation of Design and Construction

      "The usual inspiration for methodologies is engineering disciplines such as civil or mechanical engineering. . . . Many design decisions, such as how to deal with the load on a bridge, are made as the drawings are produced. The drawings are then handed over to a different group, often a different company, to be built. . . . This allows the cons

  • by NotDrWho ( 3543773 ) on Friday September 04, 2015 @11:12AM (#50457459)

    The code will just write itself!

    • by plopez ( 54068 )

      Good sig.

    • Who is going to write the code that writes itself?
      • "They envisage a global supply-chain of these software experts" - In other words they envision finally turning software into something that involves as few first world salaries as possible. It gets designed and then created by globalized software sweatshops with the aid of sophisticated software. The stock prices then rise temporarily as profits increase and then two years later the entire tech economy implodes. The state of the software industry and the tech economy are thus inexorably turned to shit.

    • by LWATCDR ( 28044 )

      They idea is that you you a human like language to describe how the program works and then a program converts that into the actual code.
      I think we should call it a compiler.

      • human like language to describe how the program works

        PHB.

        program converts that into the actual code.

        Code monkey.

    • The code will just write itself!

      Yes, using the latest language: iMaginary TM

      iMaginary : iMagine the possibilities of magical code.

      Featuring the patented iMaginary Natural Language Authoring (TM) which allows you to just tell iMaginary what application you want, followed by the command "Make It So" ... And your application is ready instantly, and It Just Works.TM

      Include whatever features are on your wishlist, with "Unlimited Adjective Parameters TM" to enhance the final product, such as "Run Really Fast" for code that just ex

  • hmm... (Score:5, Insightful)

    by sxpert ( 139117 ) on Friday September 04, 2015 @11:18AM (#50457499)

    my bullshit meter just exploded

    • It's worse than you expect. One of the first things the paper deals with is intellectual property. Apparently if people didn't worry about losing their IP, all our software problems would be solved.

      That + concatenation. If we only use concatenation, and don't let the customers dictate requirements to us (seriously), then all our problems are solved. I honestly have no idea how this company got funding, but if they make a lot of noise, it will be fun to watch them crash and burn.
      • I honestly have no idea how this company got funding, but if they make a lot of noise, it will be fun to watch them crash and burn.

        I take that back. If you're the type of company that contracts from Accenture or Oracle or HP, then you're likely to do better with the system these guys are suggesting.

      • Holy shit that's even worse.Yeah it just looked at it and it's basically...the complete opposite of open source. Not even "closed source" but like...completely closed and obfuscated platform where you may not know what the software is doing. It's difficult to describe how monumentally stupid this is. I find myself...stupefied.

        • Heh. I'm no expert, but that's pretty much the impression I got.

          It's almost like they expect us to have faith that the software works as expected.

          What's that smell? Oh, sole-source contracts with options for technical support. Lots and lots of technical support.

          Ka-ching!

        • by mwvdlee ( 775178 )

          So it's a system that assumes everybody is nice and honest and nobody will ever try to cheat.

    • Funny, it was my Bogo-meter that pegged. The bogon flux emanating from the article was simply off the charts.

    • Re:hmm... (Score:5, Funny)

      by willworkforbeer ( 924558 ) on Friday September 04, 2015 @12:49PM (#50458181)

      my bullshit meter just exploded

      Great. More industrial hardware issues. What code was it running, and have you considered decentralizing the peer-to-peer supply chain of software vendors to build a distributed fix?

  • YASER?

    .
    Or more likely, yet another company trying to sell its product that will make the need for software engineers obsolete.

    Self-writing code!!!

  • It's about time (Score:5, Insightful)

    by grimmjeeper ( 2301232 ) on Friday September 04, 2015 @11:20AM (#50457517) Homepage

    This kind of nonsense keeps popping up every few years. It was about time some "visionary" tried selling this crap again.

    I'm sure it's different this time and there's this new thing that will solve all the problems they had the last 15 times someone has tried to push this idea...

  • by plopez ( 54068 ) on Friday September 04, 2015 @11:21AM (#50457539) Journal

    No No No! A thousand times NO!

    Software is a service sector, not manufacturing. Trying to treat it as an industrial process is incorrect and leads to poor management and dysfunction. A development team is more like builders designing constructing the factory, or tools and dies work to be used in the factory, than factory work. But even that is a dangerous analogy. It is soft process rather than a hard process in that it is mostly intangible.

    Do not think of it as industrial in any sense and you will have a better grasp on things.

  • by SecurityGuy ( 217807 ) on Friday September 04, 2015 @11:23AM (#50457561)

    First, it seems like the fundamental misunderstanding these people are making is that the code you write embodies your "specialization". Wrong. Your value is not in the code you wrote yesterday, it's in the problem solving ability in that particular domain that resides between your ears. Your value is the code you can write tomorrow.

    No convoluted construct is required if you want to retain ownership of the code and just license it to whoever wants it written. Put it in the contract. If the buyer won't take it now, they won't take it with some clunky layer of nonsense on top of it, either.

    Seriously, the problem with no industry and no organization anywhere ever is that there aren't enough layers of people making "contributions" that someday trickle down to people who actually do work. It's far more often the converse. You have people with an idea filtered through layers to people who will be tasked with implementing it, who clearly and succinctly explain what's wrong with the idea and how to fix it, then that useful content is filtered back out before it gets to the people who want the thing to begin with. And so yet another project cruises on towards its iceberg.

    But sure, add more layers. What could possibly go wrong?

  • by msobkow ( 48369 ) on Friday September 04, 2015 @11:23AM (#50457563) Homepage Journal

    When you can have your code in 15 minutes, the design becomes the "hard" part. http://msscodefactory.sourceforge.net [sourceforge.net].

    • Re:Yes (Score:4, Insightful)

      by HornWumpus ( 783565 ) on Friday September 04, 2015 @11:26AM (#50457591)

      The design was always the hard part. Which doesn't make the coding easy. Just easier (unless you screwed up the design, then the code can be impossible).

  • Email them (Score:4, Funny)

    by plopez ( 54068 ) on Friday September 04, 2015 @11:27AM (#50457599) Journal

    Let them know what you *really* think.

    team@codevalley.com

  • by Anonymous Coward

    The assumption underlying this is that we can safely hide everything under a million layers of abstraction until all you're doing is giving vague hints to the computer about what you want and it spits out perfectly polished software applications. And BAM, suddenly you don't need those expensive engineers anymore because nothing is complex anymore. Everything is simple and easy.

    The problem is that if it's easy to do, your competitors are probably doing it already. As the capabilities of the platform expand,

  • Was this article written by a person or a computer?

  • by Matt.Battey ( 1741550 ) on Friday September 04, 2015 @11:30AM (#50457635)

    Anybody remember CASE [wikipedia.org] and the drag & drop promises of graphical programming of the 1990's? The at a high level these were great opportunities to both manage software development staff and supposedly increase productivity.

    CASE failed because many assigned to the "design" role didn't have a deep enough understanding of the necessary components to produce a system, so many CASE tasks assigned were woefully under specified, and systems had so many gaps they weren't even functional.

    Similarly the GUI drag & drop programming has only been successful in structural applications like designing entity relationship models. Anything past a simple loop and these technologies just don't support the complexity necessary to develop the applications of the time.

  • In the future all programmers will be super fit and experts at dance dance revolution

    http://www.wired.com/2015/07/b... [wired.com]

  • by ErichTheRed ( 39327 ) on Friday September 04, 2015 @11:38AM (#50457695)

    This piece sounds a lot like an advertisement from a SaaS salesman. I'm in systems integration, so I hear a lot of these. "Our framework is completely extensible! Open APIs! We'll talk to any of your existing systems! We do all the work for you! Fire all those IT nerds! Just sign here and all your problems will disappear!" Now it sounds like they're moving up the stack and trying to promote snap-together replacements for in house development as well.

    There was just a piece yesterday on Slashdot about how you don't need math skills to code...this just seems like a logical extension of that. Someone has to understand how these things work under the hood, what happens when they're introduced into an already overloaded data center network, etc. Yes, most phone apps and CRUD applications can be written easily by someone who knows the bare minimum of how to glue frameworks and libraries together. I see this on a regular basis when I have to make crap applications from "best of breed" consulting firms and enterprisey software companies work in the real world. The trick comes in supporting the mess you build after you release it. I've seen applications that break horribly when various security patches to frameworks occur, as well as chains of dependent stuff stop working when one item in the chain undergoes a tiny change or is configured differently. Is this grand vision of pluggable components from hundreds of vendors taking into account how brittle systems built like this are in real life? Or is the grand vision just repackaging the idea of purchaseable library components being used in software projects when you don't want to write it yourself?

    Here's what I'd like to see -- make software engineering an actual branch of engineering with professional licensing. Put new developers through the same fundamentals everyone else in the profession has, to ensure that they're at least starting out at a functional level. Make PEs liable for crappy designs and bad implementations. I guarantee that once someone's reputation is on the line, you'll see fewer "JQuery boot camp" graduates banging out low quality insecure junk code. Make it a quality revolution, not an industrial revolution. If a business could be reasonably assured of a quality software product, with actual penalties if they don't get it, that would be a much better idea than promoting a future of putting 1500 ill-fitting Legos together to build an "app."

    • CRUD - Create, Read, Update, Delete.

      I like it! Thanks!

    • Not everyone is a web monkey, err excuse me, "ninja." There's still a few of us out there that have to put together something more than ad containers or online catalogs. It is frustrating to me that the conversation always uses them as the representatives for the profession. The detritus of the software development profession tend to settle here. Low barriers to entry I suppose... Either way it skews perceptions and underserves the rest of us.

      I partially agree with your assertion of raising the barrier

  • by Chrisq ( 894406 ) on Friday September 04, 2015 @11:39AM (#50457697)
    It could go the way of hardware engineering. People come up with concepts and designs and then usually go to China or India to actually make the thing. I'm not sure how that will turn out once China and India realise that the West is incapable of doing anything without them.
  • About 35 years ago, a British company brought out a software product called "The Last One", a "program generator" that took high level descriptions and generated a BASIC program. They tried to go beyond the features of the 4GLs of their day (PowerBuilder, etc.) Of course, that software is long gone, and would be totally obsolete anyway. More recently, there are many other efforts at model-driven development, many of which point in the same direction as the vision of these wannabe "revolutionaries". About
    • It works well in some domains. You can turn code automatically into hardware fr example (vhdl, bsdl off the top of my head).
  • by Chris Mattern ( 191822 ) on Friday September 04, 2015 @11:43AM (#50457727)

    The industrial revolution came about because of the development of rigid specifications that covered what parts had to do. If a part met specs, it would work; this made them interchangeable and meant you could get them from anyone who so qualified.

    In order for software to do the same, they require the same rigid specifications that can be tested for. Wake me when we have those, okay?

  • Is this just a really buzzwordy-I-win-bullshit-bingo way of saying "lets outsource our jobs to China/India and surf youtube all day"?

    Because all Apple does is call up Foxcomm every year and tell them "yea, we need a new phone this year, make it a bit bigger and round out the edges, you kno wat I mean", right?

  • And a design that makes sense without real world testing from the get go. Good luck with that.

    This idea sounds like it was formed by a newly minted MBA with no experience in real world sofware development. It's looks like it's designed to churn out cheap untested and untestable crap that might just be good enough to sell. Once. Which is workable (financially) from the the MBA scum's point of view.

  • I have a degree in Industrial and Systems engineering and worked in areas ranging from coding (in multiple languages from assembly up), systems analysis, network architecture and design and even network security so I can follow the buzzwords and hand waving in this about as well as anyone I suspect. However, it is still the most unmitigated piece of managerbabble and bovine excrement that I have read in a long time.
  • From wikiland

    The idea that software should be componentized - built from prefabricated components - first became prominent with Douglas McIlroy's address at the NATO conference on software engineering in Garmisch, Germany, 1968, titled Mass Produced Software Components.[3] The conference set out to counter the so-called software crisis. McIlroy's subsequent inclusion of pipes and filters into the Unix operating system was the first implementation of an infrastructure for this idea. Brad Cox of Stepstone lar

  • by sribe ( 304414 ) on Friday September 04, 2015 @12:03PM (#50457883)

    And the 1980's, and the 1990's, and the 2000's... CASE, 4GL, XP, ITIL, SEI, yadda yadda...

  • Currently, the limiting factor in software development is managing complexity

    Simple programs become complex as features are added and design decisions evolve

    The current direction of layers and layers of frameworks on top of managed runtimes is wrong. It simply adds more incomprehensible complexity

    We need modeling and visualization tools to help us manage and control the complexity

    Almost everything the author said in the article is the wrong direction. We don't need non-interchangeable parts, designed to fac

  • This sounds like the magic bullet [justia.com] we've been promised from the beginning of the computer age: [/sarcasm]

    Patents by Inventor Noel William Lovisa

    SERVICE IMPLEMENTATION

    Application number: 20150032573

    Abstract: The present invention provides a method of allowing a user to obtain a service using a processing system. The method utilises components each of which corresponds to a respective service portion provided by a respective entity. The method includes causing the processing system to determine a combination of components defining a sequence of service portions, in accordance with input commands received from the user. The processing system then implements the components in accordance with the component combination, thereby causing the sequence of service portions to be performed, such that the desired service to be performed.

  • This is the greatest thing ever. We can outsource all of our code to china pakistan and india and integrate it automatically into our applications with no review for security!
  • by Minwee ( 522556 ) <dcr@neverwhen.org> on Friday September 04, 2015 @12:29PM (#50458051) Homepage
    "I'm just an idea guy. I have some really great ideas. I just need someone else to do the easy parts like writing all the code."
  • So, a whole bunch of people just graduated from school and realized the way we're currently doing software development is a lot of hard work, and all you need to do is automate it with magical fairies. As if no other generation of programmers before have come out of school with the same ideas. Further (relevant) reading. [joelonsoftware.com]
  • by careysub ( 976506 ) on Friday September 04, 2015 @12:57PM (#50458257)

    This idea is an old one, and has been tried. It is known as the "software factory" [mit.edu] and was a central part of Japan's Fifth Generation Computer (FGS) initiative from 1982 to 1992, 30 years ago. The FGSI probably holds the record for the most spectacular computer project failure in the history of computer science, with a total of $700 million spent in 2015 dollars.

  • This is probably the dumbest thing I've seen published by Slashdot.... isn't this simply some sort of redefinition of "libraries" or "modules"?
  • For many years, many of us thought that this was the bewst way to produce good software. Perl programmers admire "programs that write programs" (Something that us LISP programmers have been doing for decades). Programs like Rational Rose and Embarcadero and even Eclipse can generate pretty dang good code from models (UML), and there are dozens of good generators out there built on things like FSM design. James Martin wrote books in the'70's called something like, "Software which is Provably Correct" and Sys

  • You still have to tell it what to do.
    Whether you use a language to tell the computer what to do or use a shitload of incomprehensible configuration options to do exactly the same thing.
    Either way you are programming, though in only one of these do you actually have a chance to know what is going to happen.

  • by InterGuru ( 50986 ) <(moc.urugretni) (ta) (dhj)> on Friday September 04, 2015 @02:07PM (#50458657)

    I will show my age. I remember when COBOL, with it's English-like syntax, was supposed to make programming so simple that even your secretary could do it. No go -- writing significant software is managing complexity. No amount of syntactical sugar can hide this.

    It's deja vu all over again

Our OS who art in CPU, UNIX be thy name. Thy programs run, thy syscalls done, In kernel as it is in user!

Working...