Slashdot Mirror


An Idea For Software's Industrial Revolution

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.

57 of 289 comments (clear)

  1. More and more abstraction by Anonymous Coward · · Score: 5, Insightful

    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.

    1. Re:More and more abstraction by plopez · · Score: 5, Funny

      Magical Elves!

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

      --
      putting the 'B' in LGBTQ+
    2. Re:More and more abstraction by HornWumpus · · Score: 5, Insightful

      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.

      --
      John McAfee 'It was like that time I hired that Bangkok prostitute; to do my taxes, while I fucked my accountant'
    3. Re:More and more abstraction by plopez · · Score: 2

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

      --
      putting the 'B' in LGBTQ+
    4. Re:More and more abstraction by ShanghaiBill · · Score: 3, Funny

      Who is actually making the software

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

    5. Re:More and more abstraction by Anonymous Coward · · Score: 2, Insightful

      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.

    6. Re:More and more abstraction by meta-monkey · · Score: 2

      So,

      Step 1) Code essentially nothing but libraries.
      Step 2) ?????
      Step 3) Profit!

      --
      We don't have a state-run media we have a media-run state.
    7. Re:More and more abstraction by GuB-42 · · Score: 5, Funny

      Better give these peers some work to do, right now, resetting connections is the only thing they seem to do.

    8. Re:More and more abstraction by ceoyoyo · · Score: 2

      Other way around:

      1) Use essentially nothing but libraries someone else wrote
      2) Slap a cutesy GUI on it
      3) Profit!

      Notice there's no ??? step. This is the current business model, and it's currently raking in the cash.

    9. Re:More and more abstraction by Hairy1 · · Score: 2

      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 process of examination of the problem to find what is needed explores the design, where screens are designed, data structures determined, reports specified.

      With agile you realise that development is a process of navigating a virtual space of possible applications. Your strategy is to use evolutionary processes to navigate towards the solution needed based on the fitness function of meeting the users real need. If you go to a user with a blank sheet of paper how can they know what they will need in detail? They don't really know. The process of finding out what they need is design.

      With Agile the requirements are limited to statements that the user can express; very high level and general. They are place holders for a more in depth exploration and feedback. And so we get to the most critical aspect: feedback. Without a feedback cycle and iteration the software does not evolve. The waterfall style development processes inevitably turn into ad hoc evolutionary projects. The difference with Agile is that we are honest; we don't try to say we can know more than we do, or have some magical power to get perfect requirements before starting. We put our ego on the shelf and acknowledge that there are no perfect requirements, no perfect designs, no perfect code. We place evolutionary principles such as short iteration cycles, regular user feedback, and unit testing at the centre of our approach,

    10. Re:More and more abstraction by dcollins117 · · Score: 2

      As Albert Einstein used to say :" two things are infinite in this world. Stupidity is one".

      As Albert Einstein used to say about misattribution: "I didn't say that."

    11. Re:More and more abstraction by Art3x · · Score: 2

      I agree. Something I read 10 years ago really resonated with me, and it refutes this whole idea. From The New Methodology (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 construction to be less skilled intellectually, although they are often very skilled manually. . . . So what we see here are two fundamentally different activities. Design which is difficult to predict and requires expensive and creative people, and construction which is easier to predict.

      ". . . But here lies the crucial question. Can you get a design that is capable of turning the coding into a predictable construction activity? . . . The problem with a UML-like design is that it can look very good on paper, yet be seriously flawed when you actually have to program the thing. . . . This raises an important question about the nature of design in software compared to its role in other branches of engineering.

      "These kinds of questions led Jack Reeves to suggest that in fact the source code is a design document and that the construction phase is actually the use of the compiler and linker. Indeed anything that you can treat as construction can and should be automated.

    12. Re:More and more abstraction by datavirtue · · Score: 2

      Instead of having 10 developers and one architect you would have 6 architects and 4 developers (not "senior developers"). And yes...coding is a commodity, something that can be done by third world developers if they are handed a clean, comprehensive design wrapped around the requirements. People are going to get sick of paying 10 100k dollar a year code monkeys that fuck up everything they touch. We have tried outsourcing/offshoring everything (with sloppy requirements hoping for the best because it seemed cheaper) and that train-wreck didn't work.

      --
      I object to power without constructive purpose. --Spock
    13. Re:More and more abstraction by lucien86 · · Score: 2

      This is as fanciful as shop workers and burger flippers being replaced by robots.. "So this is your new 'Atlas Ten' robot, this is what we're going to use to replace our human employees. ...And how much does it cost?" "Oh about $3 million per unit, plus about $70,000 a year in maintenance costs and another $10,000 a year on battery replacement."
      There's a good reason that CEO is the first job that will be threatened by Strong AI - CEO's frequently earn enough to make the machines cost efficient.

      Now Strong AI can replace your human coders - maybe - in about 20 years. Until then, I'm cynical that anything will. I remember hearing almost identical stuff about replacing coders with designers since about 1990, and I'm sure they were talking about it even before then..

      --
      Below the speed of light Special Relativity is one of the most accurate theories in physics - above the speed of light..
  2. If we just use some buzzwords by NotDrWho · · Score: 5, Funny

    The code will just write itself!

    --
    SJW's don't eliminate discrimination. They just expropriate it for themselves.
    1. Re:If we just use some buzzwords by ColdWetDog · · Score: 4, Funny

      I hear that if you say "peer-to-peer design-domain decentralized design" into a mirror three times, an actual coder will appear and write all your software.

      No, the 'actual coder' will come up behind you with a baseball bat and rearrange your cranium.

      --
      Faster! Faster! Faster would be better!
    2. Re:If we just use some buzzwords by LWATCDR · · Score: 2

      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.

      --
      See my blog http://ilovecookes.blogspot.com/ for light hearted technical information.
    3. Re:If we just use some buzzwords by willworkforbeer · · Score: 2

      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 executes at light speed. Or say, "It Needs to be Really Secure" for an application that is simply unhackable by anyone, anywhere, forever.

      --
      Pretending this is my office full of bitter coworkers..
  3. hmm... by sxpert · · Score: 5, Insightful

    my bullshit meter just exploded

    1. Re:hmm... by phantomfive · · Score: 2

      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.

      --
      "First they came for the slanderers and i said nothing."
    2. Re:hmm... by willworkforbeer · · Score: 4, Funny

      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?

      --
      Pretending this is my office full of bitter coworkers..
  4. It's about time by grimmjeeper · · Score: 5, Insightful

    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...

  5. *Industrial* revolution? by plopez · · Score: 5, Insightful

    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.

    --
    putting the 'B' in LGBTQ+
  6. Dear god, what did I just read?! by SecurityGuy · · Score: 5, Insightful

    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?

  7. Yes by msobkow · · Score: 2

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

    --
    I do not fail; I succeed at finding out what does not work.
    1. Re:Yes by HornWumpus · · Score: 3, Insightful

      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).

      --
      John McAfee 'It was like that time I hired that Bangkok prostitute; to do my taxes, while I fucked my accountant'
  8. Email them by plopez · · Score: 3, Funny

    Let them know what you *really* think.

    team@codevalley.com

    --
    putting the 'B' in LGBTQ+
  9. We've been here before by Anonymous Coward · · Score: 2, Insightful

    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, the appetites of the customer for new features expand. When arithmetic becomes easy, we demand statistical analysis. When this becomes easy, we demand reports. When reports become easy, we demand pie charts and graphs. When this becomes easy, we demand it be displayed on a screen instead of a printout. When this becomes easy, we want a dashboard that shows us everything in real time. When this becomes easy, we want the computer to isolate actionable information in real time. And then handle it without waiting for the user. We're constantly pushing the boundaries of what is possible in software. There's no way to automate this process because there's always more information to gather and always quicker ways to make effective use of it. It's like assembling legos using pieces that don't exist yet.

  10. So how is this different from the promises of 1994 by Matt.Battey · · Score: 2

    Anybody remember CASE 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.

  11. Dilbert called this by goombah99 · · Score: 2

    It's the Elbonian outsourcing model.

    --
    Some drink at the fountain of knowledge. Others just gargle.
  12. Maybe an Engineering Revolution? by ErichTheRed · · Score: 2

    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."

  13. in a way its probably right by Chrisq · · Score: 2

    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.

  14. Toyota engine, Subaru body. Subaru in airplanes by raymorris · · Score: 3, Interesting

    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.

    1. Re:Toyota engine, Subaru body. Subaru in airplanes by HornWumpus · · Score: 5, Insightful

      Just focusing on two parts: You think you can just thoughtlessly bolt any engine to any propeller?

      Not unless you want to die. The FAA certifies them as sets. The certification process is long and involved.

      And idiots still take saws-alls to propeller tips. Thinking they need 20 cm more clearance and never thinking a prop has a resonance frequency.

      --
      John McAfee 'It was like that time I hired that Bangkok prostitute; to do my taxes, while I fucked my accountant'
    2. Re:Toyota engine, Subaru body. Subaru in airplanes by mrchaotica · · Score: 3, Insightful

      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's the other way around: the car you're referring to is RWD coupe with a flat-four engine. If it had been Toyota engine / Subaru body, it would have been an AWD coupe with an inline-four engine instead.

      --

      "[Regarding the 'cloud,'] ownership was what made America different than Russia." -- Woz

    3. Re:Toyota engine, Subaru body. Subaru in airplanes by phantomfive · · Score: 3, Insightful

      If it works for aviation, it certainly might work for business software.

      It does. Plenty of companies use Hadoop as a component, for example.
      It doesn't work the way these guys are recommending, but anyway.........

      --
      "First they came for the slanderers and i said nothing."
    4. Re:Toyota engine, Subaru body. Subaru in airplanes by cfalcon · · Score: 3, Insightful

      Here's that "same car" thing:

      https://en.wikipedia.org/wiki/...

      "Toyota, led by project leader Tetsuya Tada,[5] offered Subaru involvement in their sport coupé project, co-developing a new boxer engine known as the D-4S..."

      The key here is "co developed". It wasn't either team's ANYTHING, you'll note as you go through that article- the initial engine was dropped for a co-developed engine, each team made components of the car at different parts...

      Essentially, it wasn't two teams communicating to a common spec with clearly delineated design borders, but two teams working together to make a car, crossing lines on each subcomponent constantly.

      It is the OPPOSITE of an example about a top level down design manager jack-off fantasy, as discussed in the OP.

  15. Needed: Cast-iron QA by Chris+Mattern · · Score: 4, Insightful

    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?

    1. Re:Needed: Cast-iron QA by thinkwaitfast · · Score: 2
  16. non sequitur for today is: by Anonymous Coward · · Score: 3, Funny

    If it works for aviation, it certainly might work for business software.

  17. Re: configure; MAKE; make install by Skinny+Rav · · Score: 3, Interesting

    And how is car production different from today software solutions? Microsoft or myriad of open source developers create an OS, Oracle or someone provides a database, someone else an integration toolkit, somebody else designs a schema and a frontend and finally a hosting/SaaS vendor puts it all together and configures the whole package.

  18. What's old is new, all over again by timelorde · · Score: 2
    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 largely defined the modern concept of a software component.[4] He called them Software ICs and set out to create an infrastructure and market for these components by inventing the Objective-C programming language. (He summarizes this view in his book Object-Oriented Programming - An Evolutionary Approach 1986.)

  19. The 1970's are calling by sribe · · Score: 4, Insightful

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

  20. I'm sure I have heard this before by Minwee · · Score: 4, Insightful

    "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."

  21. Can You Say "Software Factory"? by careysub · · Score: 4, Informative

    This idea is an old one, and has been tried. It is known as the "software factory" 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.

    --
    Starships were meant to fly, Hands up and touch the sky - Nicky Minaj
  22. It's comoditization by rsilvergun · · Score: 2

    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 countries it becomes possible. Of course, it mean being a programmer creases to be middle class work, but I think that's the point.

    --
    Hi! I make Firefox Plug-ins. Check 'em out @ https://addons.mozilla.org/en-US/firefox/addon/youtube-mp3-podcaster/
  23. Re:Yet Another Software Engineering Revolution? by cfalcon · · Score: 4, Insightful

    Forget about these wild dreamers replacing software engineers, I bet we could replace said wild dreamers with a small perl script that cranks out terrible ideas...

  24. Re:configure; MAKE; make install by SecurityGuy · · Score: 2

    So that monstrous document is saying we should use libraries?

    Yes, we should. We already do.

  25. Re:configure; MAKE; make install by Grishnakh · · Score: 3, Insightful

    What's more, you make it sound like complex products are assembled from off-the-shelf parts. That simply isn't true for most things. With aircraft even, there's only certain engines which will fit in a certain chassis. With cars, it's much worse; car chasses are designed specifically for certain engines (usually made by the same company). All the components in the engine bay have to be fitted around the engine itself; you can't just take some other engine and slap it in there without serious modifications and reliability concerns. All the other parts are usually made specifically for that car too, esp. anything in the interior. They don't just grab some dashboard off the shelf, they design it specifically for that model, to fit in aesthetically and functionally, the seats are designed for that model, etc. There'll be a degree of commonality across one manufacturer's line to save costs (they might use some of the same switchgear between two adjacent models, they might even use the same engine, like in my Mazda3 where the optional 2.5L engine is the exact same engine used in the higher-end Mazda6, and also in the CX-5 SUV (though probably with some tuning changes, so it's likely not exactly the same)), but you're not going to swap a power window switch assembly from a Ford to a Chevy without making a lot of modifications.

  26. Re:Yet Another Software Engineering Revolution? by mwvdlee · · Score: 2

    Now if only we could have some way to create such crap-idea-generator scripts without having to code.

    --
    Slashdot social media options: AIM, ICQ, Yahoo, Jabber and Mobile Text. Why no MySpace?
  27. Re:Actually by grimmjeeper · · Score: 3, Interesting

    I've been a software engineer in the civilian and military aerospace world for over 2 decades. I've seen the kinds of software that engineers write in all its hideousness. The last thing this world needs is to let EEs continue to write software. The reason being is that your premise is entirely false. Engineering software is nowhere near "easy enough".

    Sure, writing a simple app for a phone is "easy enough", but there's a lot of complicated stuff going on inside avionics systems these days and it's getting more complex every year. You need good software people to write good software in that environment. Let the EEs and CEs design the hardware and leave the software to the people who have the training and skill set more suited to designing the software.

  28. Re:Wait what? by aaaaaaargh! · · Score: 2

    There's gonna be software, and it'll fit together like KACHUNG!
    Then stuff will flow through it all and be like woooosh! Then there'll be a result and one guy will own it all and be stood there with his hair waiving in the wind, and babes will be all like He's so awesome!

    Goddammit, you just stole my business plan!!!! How did you get through the 7 firewalls into my Gibson server??

  29. Managing Complexity by InterGuru · · Score: 4, Insightful

    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

  30. Re:Wasn't this what "OOP" was largely about? by Tablizer · · Score: 2

    Yip, I also remember the OOP hype. Objects would magically "handle themselves" as you snap them together like Legos.

    Don't get me wrong, OOP can be a useful tool used in the right place and time, but it's merely one more tool in our design belt, and makes a mess if misused just like any other tool or technique.

    I'm seeing similar hype of late in FP and node.js. I'm sure they are useful for certain projects or parts of projects, but they are not even close to a general panacea.

    Ironically a lot of the JavaScript-related functional programming (FP) and node.js hype is because JavaScript's OOP model is crappy. One wouldn't need so many FP "tricks" and anonymous functions if JS had decent OOP.

    If you try to use a new (or more of an existing) paradigm to plug holes in a poor implementation of another paradigm, it's just passing the buck. It should be considered a work-around and NOT a revolution.

  31. Re:configure; MAKE; make install by Grishnakh · · Score: 2

    Um, it's not quite as bad as you describe. Things like bolts are not custom to a single model; go look up the mfgr part numbers for various bolts in your car and compare to other cars by the same mfgr; you'll find they're likely all the same. It's not like they need different kinds of 10mm bolts or flare nuts, unless there's a special application that needs a high-strength version or something. Same thing with engine gaskets: those are certainly particular to an engine, but not a car. The same engine is frequently used on multiple models (though it might be retuned, which is usually a software change, though there could be different manifolds on it too). Stalks and buttons are frequently reused across models by the same mfgr. Go to a Volvo dealership and sit in all the different models; they probably all have the same stalks, or slightly different versions of them (for when they have different options, some might have a rear window wiper and others don't, for instance).

    What you don't see much is the same component from different mfgrs, at least for stuff that drivers typically see. But even here there is some commonality, as they get a lot of components from suppliers who sell to multiple mfgrs. So for instance Takata is a big seat belt and airbag maker, so while the overall modules are probably specific to automakers and even models (because an airbag is usually integrated with some piece of interior plastic), the pieces inside may very well be common. A supplier selling A/C compressors could very well use the same model for different carmakers (though the carmakers would designate it with their own part numbers), though it might have a different pulley on it because Ford wants to use a serpentine belt with ribs and Chevy wants to use a V-belt.

    Wiring harnesses likely are very custom, but even here there might be some commonality (not sure though): if you have two models that are pretty similar (a sedan and a CUV for instance), they might share the same wiring harnesses in the doors if the mounting points are the same. Maybe. One thing that really is the same though is the connectors: one automaker will reuse as many connectors as possible across the whole line. And those connectors are made by a supplier, so you'll probably see that same connector on different automakers' cars.

    The basic truth is that manufacturers save money by reducing their number of unique parts as much as possible, and then buying them in higher quantities, so they try to standardize as much as is feasible to realize savings by economies of scale. But a car is a complex system of parts working together, so there's only so much of this you can do. You wouldn't use the same alternator on a stripped-down econobox as you would a top-of-the-line luxury sedan or SUV.

  32. Re:they are proposing customized outsourced compon by Grishnakh · · Score: 2

    As I mentioned in my original post, my plane can accept three engines, from two different companies.

    That's probably because it was specifically designed that way, and those engines are all very similar to one another. Lycoming and Continental have a bunch of engines that are nearly identical, at least when comparing size, power levels, mounting, etc. But you're not going to grab some random engine and toss it in there.

    My car also comes with three engine options. Each of those engines is also used in other cars and trucks, of different marques.

    Again, that's because those cars were specifically designed that way. The mfrgs wanted the flexibility of being able to offer different engines to customers. Lots of cars have multiple engine options. But you're not going to take a random Chevy and throw in a random Honda engine, they're just far too different. There are some small companies that specialize in making kits for installing engines into cars which weren't designed for them, but these kits are usually quite pricey because they have a bunch of custom-made parts, and that's even when the new engine is from the same mfgr as the old one. You need custom-designed engine mounts, driveaxles, wiring harness adapter, maybe a different hood, etc. And a lot of times, with kits like that, you can't install all the normal equipment, so you might have to go without A/C because there wasn't any room for it.

    In long-term essential software especially, it's good not to be locked in to a single supplier.

    Yes, and that's why your plane was designed for multiple engines. But not just any engine, only the 2/3 models it was specifically designed for. You can't just grab some random engine (even if it's a similar size and power rating) and toss it in there (though truthfully, assuming it's a typical Cessna-like front-engine plane, it's probably easier than swapping engines in a car).

    As for automakers and their suppliers, automakers have *always* used suppliers. Heck, in the early days the automakers didn't even make their cars' bodies! Have you forgotten about "Body by Fisher"?

    That isn't done very much in software.

    Sure it is. You get a database from one supplier, you get components for it from another supplier, you get a source-control system from yet another supplier, etc. Haven't you heard of "applications"? Even a lot of commercial software contains components from other companies; you just don't see them because it's opaque to you, just like you probably have no idea which company made the headlight assemblies for your car.

  33. Time to get rid of developers already? by realsablewing · · Score: 2

    Over the last 30 years, about once a decade, there is an article about how software code can be generated and that software developers aren't needed. In the late 80's my husband worked as a subcontractor on a project for IBM where the software architects had designed the system and written out the design in pseudo code. A lowly developer like him only needed to type in the perfect code they had designed and it would work. My husband kept telling the management team that no, the code wouldn't work, the logic was flawed and it would be buggy. He fixed things on his module and did testing, in spite of direction to implement the code exactly as designed and not test it or integrate it with other modules.

    This perfect code also wasn't supposed to require any integration, so they went directly from development to acceptance testing. That worked about as well as you'd expect, they had to stop testing within an hour after starting. My husband's code was one exception, it mostly worked and actually ran when the tested the system. There were a few bugs but it performed better than other modules i the system. However, they had to delay the schedule so they could get everything integrated. He left that job and went to a small company where lowly developers only worked on coding. That system had few bugs and worked pretty well. Sadly, right before he left the company, they were partnering with IBM and starting to buy into the perfect code design idea. I worked on a similar project for the DoD, I was supposed to code the design exactly as written. Even if it didn't work when it was executed, I wasn't allowed to fix the software unless I had gotten a approved bug report that stated it was priority one and the software would not run at all unless I fixed the bug. Amazingly enough, the customer killed the project before delivery.

    Saw the same thing in the 90's, Java and X-Windows were going to eliminate detailed coding and allow the use of low cost, low experience developers. I still remember explaining a memory overflow bug to a Java developer and that the string was probably longer than 1024 or 2048. He told me it couldn't happen, sure enough, I counted up the string to where it overflowed, the first 1023 characters were fine, it was the 1024 where it overflowed, sigh. In the 00's, it continued, the continuing trend was to use MS Office with Visual Basic, no need to code those back office applications and waste all that time designing, implementing, integrating, beta testing and gradually rolling out into production. Excel and MS Access with Visual Basic are examples of this type of thinking and I've seen how well that has worked out for database development.

    Guess it's time for business types to roll out this idea, consultants to sell it to businesses on how they can cut costs, for software development and then another batch of software consultants will come in and clean up after them from the mess left behind on these systems. Would be nice to be proved wrong, but I haven't seen that much change in the state of the art for the majority of software development. I feel a major breakthrough is required for this to happen that will completely break from previous programming practices and from what I can tell only incremental changes are occurring.

    Oh, and you kids get off my lawn, dang, I feel old after writing this. :-)

    --
    I used to be an adult but then I grew up.