Slashdot Mirror


Why Your Software Project Is Failing

An anonymous reader writes: At OSCON this year, Red Hat's Tom Callaway gave a talk entitled "This is Why You Fail: The Avoidable Mistakes Open Source Projects STILL Make." In 2009, Callaway was starting to work on the Chromium project—and to say it wasn't a pleasant experience was the biggest understatement Callaway made in his talk. Callaway said he likes challenges, but he felt buried by the project, and reached a point where he thought he should just quit his work. (Callaway said it's important to note that Chromium's code is not bad code; it's just a lot of code and a lot of code that Google didn't write.) This was making Callaway really frustrated, and people wanted to know what was upsetting him. Callaway wanted to be able to better explain his frustration, so he crafted this list which he called his "Points of Fail."

24 of 119 comments (clear)

  1. a little more proof reading please by Anonymous Coward · · Score: 4, Funny

    "he should jut quite his work"

    not a lot, just a little

    1. Re: a little more proof reading please by Reason58 · · Score: 3, Insightful

      This is /. Having horrific "editors" is to be expected. I wonder what it pays to click accept on a story every hour or so.

    2. Re: a little more proof reading please by __aaclcg7560 · · Score: 2

      Actually, the quoted paragraph was copied and pasted with that mistake from the article.

    3. Re: a little more proof reading please by MobileTatsu-NJG · · Score: 5, Funny

      This whole situation makes me sic.

      --

      "I like to lick butts!" by MobileTatsu-NJG (#32700246) (Score:5, Informative)

    4. Re: a little more proof reading please by Nidi62 · · Score: 5, Informative

      In Slashdot's defense, I've seen much more glaring errors on actual journalist sites such as CNN. So it is a growing trend, not just here.

      --
      The only thing necessary for evil to triumph is for it to be pitted against a slightly greater evil
    5. Re: a little more proof reading please by pj2541 · · Score: 2

      Have you seen such things on actual journalist's sites, or only on CNN? For that matter, are there any actual journalists left? It seems most so called journalists can't even read or write English any more.

  2. Slashdot summary, as usual, misses the point by Idarubicin · · Score: 5, Informative

    If we're going to talk about Callaway's Points of Fail, and create a link in the Slashdot summary that *looks* like it takes you to that list, then perhaps there should actually be a link to the list.

    Callaway's original Points of Fail blog post.

    You know, instead of the usual Slashdot way of pointing to an article wrapper that talks briefly about some of the points and then eventually links to the real list.

    --
    ~Idarubicin
  3. Correct link to TRA by Demonoid-Penguin · · Score: 3, Informative

    His list, instead of the link to a blog with an article about the list. That blog post is interesting - though the picture of the author scratching is just weird. Was that taken at a lice convention?

    1. Re:Correct link to TRA by smooth+wombat · · Score: 5, Funny

      Google developers do not understand how to design APIs.

      Wrong. Wrong. Wrong! Google developers get paid buttloads of money, more than you or I could hope to make. These are the elites, the 1% of the 1%.

      Because they are so highly paid the problem cannot lie with them since we are repeatedly told if you pay developers what they're worth you will get excellent results. Just like paying CEOs of companies who go running to Uncle Sam to protect them from their own incompetence.

      The problem must lie elsewhere. Look harder.

      --
      We will bankrupt ourselves in the vain search for absolute security. -- Dwight D. Eisenhower
  4. Here's the list by xxxJonBoyxxx · · Score: 2

    >> 1) If your codebase is too big, it's going to limit who's going to be able to download your code.
    >> 2) There is no good reason in 2015 for a FOSS project to not have public source control. This helps people contribute and determine the health of your project based on the date of the last commit.
    >> 3) If your source control has no web viewer and/or no documentation, these two are obvious things to have
    >> 4) Code that doesn't build is worse than no code! You need documentation on how to build the project from the source.
    >> 5) Use build tools
    >> 6) Bundling is not going not be maintainable. Bundling leads to forking.
    >> 7) Forcing people to install only in a specific directory

    My first thought on reading this is that this guy started coding this year. #1-3 is solved by using GitHub, TFS online or one of the popular choices most FOSS projects already seem to use. (e.g. How would an experienced developer get these problems in the first place?) #4-6 are entry-level build issues. #7 refers to a best practice (let people pick their install directory) that's been commonplace in the industry for at least 15 years.

    I see he's employed by Red Hat. Does this list as news suggest that Red Hat's internal development processes are immature too?

    1. Re:Here's the list by plopez · · Score: 5, Insightful

      What depresses me bout software is how often we JUST DO NOT LEARN! Yes I am shouting. I am frustrated by the situation. Software development seems to be riddled with arrogant know nothings who think they can cut corners or reinvent the wheel because doing the right way isn't "7337".

      Software Development is not an Engineering discipline by any means, at best it is a craft, because the hard lessons are not explicitly taught to newbies who are not evaluated on how well they follow those practices and tests them on them as part of a core knowledge base. Which is how real Engineering disciplines do it.

      --
      putting the 'B' in LGBTQ+
    2. Re:Here's the list by slew · · Score: 5, Interesting

      Clearly you don't understand engineering. Engineering isn't just "model your entire design". Engineering is decomposing your problem into problems that are "spec-able". For example, build your bridge out of steel and bolts. You don't have a model of bolts in your design, you have a spec for bolts that you use in your design that is testable (performance and tolerance) and then you use parts hierarchically in your design. The bolt is designed separately and is made out of some alloy that has specs and is tested (performance and tolerance)...

      The problem with most software isn't that it can't be modelling and rely on basic physical principles, it's that many projects fail to take specs and testing seriously, and the specs that exist don't address performance and tolerance (aka, error handling). If software did this, things would be more engineered.

      Right now many software artifacts are similar to the prehistoric bridges that cross chasms in jungles in third world countries. They work, people cross them every day, but things were made empirically so nobody knows what might cause them to fail, so it's hard to rely on them.

      It's not that bridges that were built 100 years ago were "better", but they were actually built to specs and of course survive to this day (which can't be said for the prehistorical variety). However, improved bridges are continually desired so we use better parts and build even better bridges today because modeling allows us to get tighter specs on the parts that make up bridges and the stresses that we are putting on those parts.

      But doing all that requires better engineering discipline not dismissing it as a something that isn't applicable. Engineering is an useful approximation of the physics (an approximation which always gets improved over time), not a practice of physics.

    3. Re:Here's the list by Darinbob · · Score: 3, Insightful

      In the real world you can learn but you are most often prevented from putting the learning into practice. After 30 years programming, I still spend 95% of my time dealing with other people's code and "maintenance". The opportunity to do things the right way usually was passed years before I joined.

      Actually real engineering disciplines screw up too and for some of the same reasons as software. Quick and dirty hacks in hardware driven by unrealistic deadlines from upper management, last minute bandaids applied because it's too expensive to redesign, confusing document control, lack of knowledge transfer if someone leaves the team, etc.

      Also remember that the list is about open source software. Some of the things that are wrong there aren't wrong with proprietary software or internal tools, distributed teams have different requirements from teams that are all in the same aisle (ie, open source is greatly improved if there's a web based source code control browser, but that loses importance if everyone on the team already has a license of a the source code control system's GUI tool).

      Open Source also means lots of college students or recent grads, full of excitement to get stuff done but without the real world experience to know how to go about it; and full of hobbyists who start off strong then slow down and stop; etc. For example, hobbyist has only a home PC with Windows, and for budget/time reasons does not want to bother with portability to hundreds of different types of systems; or the hobbyist is the sort who thinks Microsoft Visual Something is a really good state of the art tool and bases the entire project on that.

  5. There are LOTS of projects with these problems by dwheeler · · Score: 2

    "How would an experienced developer get these problems in the first place?"

    A lot of projects do not follow widely-accepted best practices... even if they are experienced... and that is a problem!

    A remarkable number of OSS projects fail to have a public source control system (#2). That includes many established projects that everyone depends on. Actually, a number of OSS projects - and projects that people THINK are OSS but are not (because they have no license) - fail many of these points. It's not that Red Hat's internal processes are immature; Tom was trying to bring in software from someone else (Google in this case) and was fed up by the poor practices from people who should know better.

    Yes, #7 refers to a best practice (let people pick their install directory) that's been around for at least 20 years and probably much longer, but it's still widely NOT followed.

    Anyway, that's Tom's point; there are a lot of widely-accepted best practices that are NOT followed, and that needs to change.

    --
    - David A. Wheeler (see my Secure Programming HOWTO)
  6. the usual suspects apply. by nimbius · · Score: 4, Insightful

    As a software dev for closed source, our problems are creeping into open source at an alarming rate. Standups, Kanban, Scrum, swim lanes, and other political middle management bullshit is making it harder and harder to as theo de raadt once said, "shut up and hack."

    The other issue is runaway devs. Gnome and KDE turned into piss pots almost overnight because they followed lockstep with whatever was trending. gnome grew hotspots that were clickable and draggable in an attempt to appeal to tablets, and KDE's widget framework turned into a swirling vortex of lights and colours that chewed through ram like none other. And the "fuck it lets move on" mentality has got to stop. Pottering epitomizes the swinging dick Linus so rightly kicked after his team was called out for set it and forget it code that ultimately broke more things and didnt play nice.

    bottom line: dont lose focus in stability and function.

    --
    Good people go to bed earlier.
    1. Re:the usual suspects apply. by phantomfive · · Score: 3, Informative

      hmm? In one paragraph you say 'shut up and hack' and in the next you criticize Poettering for doing exactly that?

      Specifically, he criticized Poettering for not taking care of features he'd created.

      --
      "First they came for the slanderers and i said nothing."
  7. Re:I disagree with some of these points by TheRaven64 · · Score: 2

    It depends a lot on the codebase. Codebases tend to accumulate cruft. Having people refactor them because their requirements are different to yours can help, as can having a project developed without key product ship dates as the driving force. The bigger barrier is culture though. It's really hard to have a group of developers that have been working on a project for 10 years in private move to developing in public. In the list, he actually gives different numbers of fail points, more for projects that were proprietary for longer than they were open, which makes a lot more sense than the summary in the 'article'.

    The one that I disagree with is 'Your source builds using something that isn't GNU Make [ +10 points of FAIL ]'. I disagree for two reasons. The first is that it implies using GNU make features, which likely means that you're conflating building and build configuration (which should gain some fail points). The projects that I most enjoy hacking on use CMake and Ninja for building by default (CMake can also emit POSIX Makefiles that GNU Make can use, but I take his point to mean that gmake is the only command you need to build, so the CMake dependency would be a problem). LLVM still more or less maintains two build systems, though the autoconf + gmake one is slowly being removed in favour of the CMake one. If I make a small change, it takes Ninja less time to rebuild it than it takes gmake to work out that it has nothing to do if I don't make any changes.

    I'd also disagree with 'Your code doesn't have a changelog' - this is a GNU requirement, but one that dates back to before CVS was widely deployed. The revision control logs now fill the same requirement, though you should have something documenting large user-visible changes.

    --
    I am TheRaven on Soylent News
  8. Re:meh by superwiz · · Score: 2

    "editing flat text config files"

    All while working for RedHat. RPM relies on shell scripts and doesn't have a reliable rollback/commit mechanism.

    Is it just the slam against "Microsoft Visual Anything"?

    But yeah, this obvious attempt at slamming business competition under the guise of technical know-how is oh, so 1995 (which was 20 years ago). But, in todays world, we have gotten to the point when it is not only easier, but more reliable to generate code than to write it by hand. And while they have some learning curve, visual code analysis tool are still better than text-only ones. Even the resurgence of C can be mostly attributed to the fact it's simpler syntax makes it easier to generate than the new C++ syntax.

    --
    Any guest worker system is indistinguishable from indentured servitude.
  9. Linux gets +30 Points of FAIL by ajedgar · · Score: 2

    "You've written your own source control for this code [ +30 points of FAIL ]"

    1. Re:Linux gets +30 Points of FAIL by prefec2 · · Score: 2

      You get -60 points of FAIL if you can convince the rest of the world to use your new and shiny version control system.

      He just forgot that.

  10. Re:meh by superwiz · · Score: 2

    What do you mean "locked to a single platform". I admit that I haven't tried it, but they give away the source code to VS 2015. Which is pretty much why RedHat it trying to claim that code which used to be owned by a single company is a point of failure. It's another business swipe at MS. RedHat is running for the hills because pretty soon they'll lose all purpose.

    --
    Any guest worker system is indistinguishable from indentured servitude.
  11. Re:self-serving list by tomhath · · Score: 4, Insightful

    People start projects because they want to create something cool, not because they want to be project managers. But if they don't manage the project it fails.

  12. Mod parent up. by khasim · · Score: 3, Insightful

    What depresses me bout software is how often we JUST DO NOT LEARN!

    And not just software. Look at security as well. And so many other computer-related areas.

    Software development seems to be riddled with arrogant know nothings who think they can cut corners or reinvent the wheel because doing the right way isn't "7337".

    For me it's more like ... someone "learned" one way of handing it when s/he was working ALONE.

    Then that person never learned that the practices need to be changed when you are part of a TEAM.

    And releasing your code to the public is being part of a team.

  13. original list by ihtoit · · Score: 2

    this a slow news day? The list was crafted in 2009!

    --
    Political debates have me rolling my eyes so much I think I got optical whiplash. I should sue. - Foamy The Squirrel