Slashdot Mirror


Ask Slashdot: What Can Distributed Software Development Teams Learn From FLOSS?

An anonymous reader writes: As a long time free software proponent and leader of a small development team (10+ people) within a mid-sized company, I always try to incorporate my experiences from both worlds. Lately I was confronted with the need to accept new team members from abroad working on the same codebase and I expect to have even more telecommuting people on my team in the future (even though research suggests the failure rate of virtual teams could be as high as 70%). On the other hand, FLOSS does not seem to suffer from that problem, despite being developed in a distributed manner more often than not. What can corporations and managers learn from FLOSS to make their distributed teams more successful? Consequently, what FLOSS tools, methods, rules, and policies can and should be incorporated into the software development process within a company more often? I'm interested in hearing what you think, especially regarding technical issues like source code ownership and revision control systems, but also ways of communication, dealing with cultural differences, etc.

133 comments

  1. Skype is for children. by Narcocide · · Score: 3, Insightful

    Use IRC. Typing skill is not optional.

    1. Re:Skype is for children. by Anonymous Coward · · Score: 5, Insightful

      I use IRC and chat pretty extensively at work, but some conversations just work better over voice.

      Not everything's a nail. Just sayin'.

    2. Re:Skype is for children. by Anonymous Coward · · Score: 1

      What types of conversations are those?

      For most work-related conversations, chat provides (or at least, can provide) unobtrusive, asynchronous communication along with an electronic record. Individuals have the opportunity to read what they wrote and make sure it is what they want to say before sending it to chat. You don't have to deal with heavy accents or speech impediments. Additionally, it's much more difficult for one person to monopolize a conversation in a chat room than it is in a conference room or conference call.

    3. Re:Skype is for children. by Dog-Cow · · Score: 1, Troll

      Conversations that human beings and coworkers have. I understand that an introverted, socially-awkward basement-dweller such as yourself may prefer not to embarrass themselves by speaking to others, but it's a necessary skill if one wishes to succeed in any number of endeavours.

    4. Re:Skype is for children. by Anonymous Coward · · Score: 0

      There are situations where it is necessary to speak, not just interact with a stream of characters flowing to a terminal.

      Not everyone is a gifted written conversationalist. Spoken conversation is a much higher-bandwidth (though less precise) medium. Its often useful to follow-up an initial chat or email with a face-to-face conversation or phone call. This lets you (a) sort out issues people have trouble expressing in writing (b) communicate the importance that *you* attach to the topic (e.g. "he's here, so it must be important") -- to move the topic out of the 'digital limbo' requests often wind up in.

    5. Re:Skype is for children. by Anonymous Coward · · Score: 0

      Oh how many times I have had a 45 minute Skype call about things which could have been put to an email in 10 minutes (from the sender) and another 5 minutes for me to absorb that information...

      Also Skype or voice call leaves no trace of any conversations. There is no information about what was discussed. If one wants that, feel free to write a MoM afterwards, in which case 45 minutes becomes 1 hour.

      Emails and chats have context out-of-the-box and are searchable. Plus it's easy to do the MoM online in the chat, if needed. Even afterwards it's easy because of copy-paste and search facilities.

    6. Re:Skype is for children. by Bacon+Bits · · Score: 1

      Human language is, by it's own nature, hopelessly ambiguous. We use technical terms and jargon to eliminate as much ambiguity as possible, but completely concrete communication is not achievable. With plain text, you lack the voice inflections and tone. With a phone, you lack body language can't get direct listener feedback. Being in person enhances communication in a very real way. About the only thing that's nicer in text is a code snippet, but code snippets on their own are not exactly crystal clear.

      Or have you honestly never had a chain of emails over the course of a couple days, only to have the entire issue hammered out in a few seconds of direct, in person, conversation? Or had a conference call where you know two people are just not understanding what the other is saying?

      --
      The road to tyranny has always been paved with claims of necessity.
    7. Re:Skype is for children. by Anonymous Coward · · Score: 0

      Most probably the parent poster is a developer. For most in-code development tasks, communication skills and dialogue is not really necessary. As long as the tasks keeps coming, work will get done and committed.

      However, in the real world, some people need to find those tasks, understand the needs, prioritize them, make sure it's understood properly, checked for flawed errors and assumptions, etc. If you're unlucky, someone will have to make up a budget and dig after the required funds even. This will require extensive communication, and sadly leaves very little time to get real coding done (tm).

      Been in both places, and both is needed in order to create the real results companies crave done with the least amount of effort involved, at least in theory.

    8. Re:Skype is for children. by El+Rey · · Score: 1

      Meh. I've been working remotely for 17 years. Video call is good enough versus coming into the office, particularly for one on one conversations. Chain of emails or in person are not the only options.

      At this point we can communicate via multi person video, voice, shared document editing, shared whiteboards, chat, etc. The real challenge IMHO is getting people to embrace these new-ish tools rather than being stuck in, "the way we've always done things".

      I've never understood why people seem to feel that connecting via Skype / Hangouts / whatever is more trouble than getting up and walking over to someone's office... It seems like more of a social hangup.

  2. You Can't Fix It by Anonymous Coward · · Score: 4, Insightful

    FLOSS can simply reject code that's not up to standard. If someone on your team turns in shitty code you can't always just not use it.

    1. Re:You Can't Fix It by Demonoid-Penguin · · Score: 1, Insightful

      FLOSS can simply reject code that's not up to standard. If someone on your team turns in shitty code you can't always just not use it.

      Why not? If they're not worried about quality of code why not just outsource the entire project to some random company whose "proposals" fill their email spam filters?

    2. Re:You Can't Fix It by Zero__Kelvin · · Score: 4, Interesting

      An AC, very close to first post, and it is actually spot on!

      Unless you can get management to sign on to a mentality of "it will be done when it's right" rather than "it will be done on Thursday" you have no hope of achieving FLOSS levels of success. I'm not saying you shouldn't try your best, merely that you should be aware of your limitations and from whence they come up front.

      --
      Guns don't kill people; Physics kills people! - John Lithgow as Dick Solomon on Third Rock From The Sun
    3. Re:You Can't Fix It by Zero__Kelvin · · Score: 1

      Dude, I know we work with binary quite a bit, but equating a lack of 100% veto power to complete indifference toward quality of code is taking "all or nothing" a bit too far! (Sorry; I couldn't resist the pun)

      --
      Guns don't kill people; Physics kills people! - John Lithgow as Dick Solomon on Third Rock From The Sun
    4. Re:You Can't Fix It by phantomfive · · Score: 2

      Maybe a better way to say it is: "The code will never be better than the people writing it."

      --
      "First they came for the slanderers and i said nothing."
    5. Re:You Can't Fix It by ranton · · Score: 4, Insightful

      Unless you can get management to sign on to a mentality of "it will be done when it's right" rather than "it will be done on Thursday"

      A mentality of "it will be done when it's right" is almost as foolish as "it will be done on Thursday." Software will never be "right". Quality software requires people who are able to perform proper risk management during all stages of development. I will not prevent my team from moving from discovery to design just because I think there may be requirements we are missing (hint: there always will be). We will move on when I believe the risks of moving on are less than the risks of not moving on.

      My current backlog is full of feature requests, suggestions for more clear UIs, bug fix requests, etc. If I waited for my backlog to be clear before each release, my boss would still be waiting for our alpha version. Part of my job is also making business users comfortable with my change management decisions. If my bosses implore me to finish testing too early or slack on documentation, it is largely my fault for not convincing them it is a bad idea.

      --
      -- All that is necessary for the triumph of evil is that good men do nothing. -- Edmund Burke
    6. Re:You Can't Fix It by Anonymous Coward · · Score: 0

      An AC, very close to first post, and it is actually spot on!

      Unless you can get management to sign on to a mentality of "it will be done when it's right" rather than "it will be done on Thursday" you have no hope of achieving FLOSS levels of success. I'm not saying you shouldn't try your best, merely that you should be aware of your limitations and from whence they come up front.

      Your post is amusing. you act like FLOSS is a highly successful model, it ISN'T. For every successful project their are hundreds of failed ones. I would think FLOSS success rate would be way way worse than the 70% rate mentioned. FLOSS is great for freedom, flexibility and sharing. it is NOT a good team development model.

    7. Re:You Can't Fix It by gweihir · · Score: 3, Interesting

      The problem is that in FLOSS, rejecting code may bruise somebody's ego, but that is it. In commercial development a whole slew of contractual issues come in. The basic difference is that dependent on contract, the bad code still has to be paid for and if not (fixed-price contract), the rejection arguments need to be solid.

      This can be really difficult, and I have been on both sides of the issue. Some times the only way to deal with this is to accept the bad code and have somebody else fix it. Sometimes that would be the only real option, but budget does not allow it. And forget about legal steps: The legal system is so glacially slow that a small shop cannot wait for it. In addition, it is utterly incompetent, when technology is concerned, so even with a very clear case of non-performance by your supplier, you can still lose or only get token compensation.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    8. Re:You Can't Fix It by Kjella · · Score: 2

      A mentality of "it will be done when it's right" is almost as foolish as "it will be done on Thursday." Software will never be "right".

      I don't think it's an unrealistic standard of perfection, the point is that it's done when the code does what it's supposed to do. It won't be done because the boss sets a deadline or marketing wants it or the bean counters want to hit the Christmas sales. Or even because the developer wants it to. They act like the code is in the chain of command, they tell the developer what to do and the developer tells the computer what to do so if they say Thursday it will be done.

      Except the computer doesn't give a damn, isn't responsive to feedback and is entirely unhelpful in tracking down what the problem is, if you've ever thrown your hands in the air and exclaimed "WHY???????" you know what I'm talking about. This is particularly fun during fire fighting, where the answer is that I might find the bug 30 seconds or 3 days after we end this meaningless conversation because I have no basis for an estimate, much less a guarantee for when it'll work.

      Yes, I know that for planning purposes you have to make some kind of educated guess but I can only estimate what I know needs to be done, not the "unknown unknowns" that can throw your estimates off by an order of magnitude or simply make it unfeasible. This is particularly - but not only - true when you're working with third party software and libraries. I say I have a worst-case estimate but really that's probably the 95th percentile, there's no hard limit where you can guarantee it'll work.

      --
      Live today, because you never know what tomorrow brings
    9. Re:You Can't Fix It by Anonymous Coward · · Score: 0

      I don't think it's an unrealistic standard of perfection, the point is that it's done when the code does what it's supposed to do. It won't be done because the boss sets a deadline or marketing wants it or the bean counters want to hit the Christmas sales. Or even because the developer wants it to. They act like the code is in the chain of command, they tell the developer what to do and the developer tells the computer what to do so if they say Thursday it will be done.

      Except the computer doesn't give a damn, isn't responsive to feedback and is entirely unhelpful in tracking down what the problem is,

      Management: "Well then just fire this computer and hire another one"
      Developer: "Err..."
      Management: "Actually... maybe we can outsource our computer, or at least get a cheaper one on a H1B"

    10. Re:You Can't Fix It by Anonymous Coward · · Score: 0

      This is slashdot, everything is binary. Product review by checklist, anything that vaguely resembles another idea means they are identical, etc. Except Android. That is unary. If it's about Android it can't be bad, no matter how bad it is.

    11. Re:You Can't Fix It by Anonymous Coward · · Score: 3, Insightful

      you have no hope of achieving FLOSS levels of success.

      By which you mean, a landscape littered with abject, abysmal, utter failures and abandoned projects?

      Wow, sounds just like closed-source proprietary programming!

      You are aware that "FLOSS" is a superset of "Linux, Apache, and Python," and that a vast proportion of FLOSS projects that are started end up in the Sourceforge / Github / Google Code graveyard, too... right?

      OP: Want to know how to achieve "success like FLOSS"? Only work on projects that are likely to gather massive interest, and preferably, only projects that companies will actually pay people to be full time contributors to. In other words - "FLOSS" as a category really isn't that much different than any other software project... successful FLOSS projects just happen to be things that lots of people want / need / have a monetary interest in, so they attract large communities of willing volunteers and corporate supporters.

      There's no magic sauce. Just utility.

    12. Re:You Can't Fix It by ranton · · Score: 3, Insightful

      Honestly I feel your heart is in the right place, and your level of principles will produce far better products than those who care little for software quality. But your statements really don't reflect those of someone who has ever actually been in charge of large software projects. Either that or you are one who constantly feels things would have been done better if your bosses simply got out of your way. I could very well be wrong, but I doubt it. My guess would be you are a skilled senior level developer who likes to stay on the technical side of things, but that is mostly just a wild guess.

      I don't think it's an unrealistic standard of perfection, the point is that it's done when the code does what it's supposed to do.

      Code is not predestined to do anything. It does what humans have it do, either consciously or accidentally. If I say to release a product (with my bosses' approval), then the software is doing what it is supposed to do, which is go into production.

      It won't be done because the boss sets a deadline or marketing wants it or the bean counters want to hit the Christmas sales.

      This is why I don't feel you are speaking from experience. The fact is getting those Christmas sales are probably far more important than your viewpoints on perfection. And sometimes those deadlines are there for a reason. Developers are not tasked with creating some shining example of what perfect code can be, they are tasked with making a return on investment. I have a project right now which is due at the end of April because it really has to be done by the end of April. The scope of the project has changed frequently as planning and development has taken place to ensure this April 30th deadline will be hit. And it will be hit. It will be hit without 80 hour weeks; it will be hit because proper project management techniques were used throughout the project. And part of those proper project management techniques are respecting that the deadline is there for a reason and there are very few requested features that are more important than this deadline.

      They act like the code is in the chain of command, they tell the developer what to do and the developer tells the computer what to do so if they say Thursday it will be done.

      Honestly, writing code is the least important and easiest job of a developer. We learn how to write code in the first few years of our career; probably in school. A quality software developer's career is spent learning the more important tasks of software engineering. This includes your senior developers knowing what can be done by Thursday. You can hit deadlines without just pretending your code is working. You hit deadlines by understanding the progress of the project and understanding the priority of its features at all times. This isn't some hobby or college assignment. There may be millions of dollars on the line, and thousands of employees or customers waiting.

      I have worked in situations where some features were more important than the project's success. In safety critical situations there are times where you would rather have an entire project scrapped than product an un-safe product. Obtaining FDA approval, for instance, is the type of requirement which must be fulfilled. But these situations are rare; in most software development almost all features can have their priority level be put up for review.

      Yes, I know that for planning purposes you have to make some kind of educated guess but I can only estimate what I know needs to be done, not the "unknown unknowns" that can throw your estimates off by an order of magnitude or simply make it unfeasible. This is particularly - but not only - true when you're working with third party software and libraries. I say I have a worst-case estimate but really that's probably the 95th percentile, there's no hard limit where you can guarantee it'll work.

      These are all very real concerns for real world pr

      --
      -- All that is necessary for the triumph of evil is that good men do nothing. -- Edmund Burke
    13. Re:You Can't Fix It by jellomizer · · Score: 1

      If they are paied employees, then having them write code that is barely ever accepted, is a waste of money.
      Open source projects you have unpaied sources, so rejecting code isn't any cost.
      Trying something like paying only for accepted code may work... However you will need to pay them more to account for the higher risk working for you.

      --
      If something is so important that you feel the need to post it on the internet... It probably isn't that important.
    14. Re:You Can't Fix It by Anonymous Coward · · Score: 0

      As a software developer getting work as a contractor - I see a lot of different source code from a lot of different organizations.
      I'd like to open this mini discussion with my own little motto, which applies to relationships between people mainly: There's three sides to every story: His side, Her side, and the truth.

      (His side)
      So where I'm coming from is this: you're right in your final statement that success is usually measured by the stakeholders being happy with the result. I agree, this is usually a reflection of success. But then, as a manager, you'd want to know your warehouse is in order, and our source-code are the products organized and stored in the warehouse.
      (Her side)
      This is where the bone on contention is. Developers want to make perfect code, and I'm sure you're MORE THAN aware of it! So writing a project three times from scratch might be a great way to feel out your requirements (prototyping) then development (it works wonderfully now, but...) and then finally, the enhanced version.
      (the truth)
      All this might be wonderful, but very expensive. I'm not here to tell you how you should do your job, or how other developers should do theirs. but I'm just saying that in my experience, where you have unhappy developers, you might have some unhappy code, and that means the agility of the project to be able to move forwards with new features is in question, as I'd predict new features taking exponentially more time to implement, as it's likely the code if suffering from a lack of separation of concerns.

      The warning it there from the developer, but the stakeholders are happy. Case closed, move on... until that change request comes in, and the new developer says it's going to take 10x longer than the estimate! Hence, the "just get it working" approach - which further kicks the can down the road called "technical debt". Sooner or later the company pays for it, and often it's with a complete re-write in a few years!

      Enough said, I think.

    15. Re:You Can't Fix It by Zero__Kelvin · · Score: 1

      "A mentality of "it will be done when it's right" is almost as foolish as "it will be done on Thursday.""

      You only say that due to the limited scope of your vision. You think "it" is "the final product"; I never stated or implied any such thing. Each feature. Each bug fix. Each of these is "it". The bug won't be fixed by Thursday, it will be fixed as quickly as possible while still conforming to security standards and following established process. If that is Thursday, awesome! In fact we hope it will be Wednesday, but if it isn't right until Saturday then it won't be done until Saturday; period.

      --
      Guns don't kill people; Physics kills people! - John Lithgow as Dick Solomon on Third Rock From The Sun
    16. Re:You Can't Fix It by Anonymous Coward · · Score: 1

      The problem is that in FLOSS, rejecting code may bruise somebody's ego, but that is it. In commercial development a whole slew of contractual issues come in.

      So write the contract accordingly, then. Such as "Code will be rejected or accepted based on merit. When the product ships, payment only for code that got in."

    17. Re:You Can't Fix It by Anonymous Coward · · Score: 0

      This is why I don't feel you are speaking from experience. The fact is getting those Christmas sales are probably far more important than your viewpoints on perfection. And sometimes those deadlines are there for a reason.

      And the poster still wants FLOSS level quality. FLOSS will make the next christmas sale instead. Profitable, but no "quick money". If you want FLOSS-type excellence, you manage through long-term planning instead of the short term. You take a long time to get a product, but then others have nothing like it.

      Of course a business has to survive too, so there must be some compromises. Make that christmas sale - but if devs says the christmas product was rushed and not up to standards, then they will be allowed to put much work into a january/february upgrade. When there are known bugs (yes, when), fixing them will usually take priority over inventing new features. As opposed to the usual "we got that out the door, lets plan a boatload of features for the next christmas sale and see how many we can complete..."

      You may have to have a new feature each christmas, you may not need to have many. And "bugs fixed/performance improved" is something marketing can use too - not merely new features. You need a culture where "nobody was ever fired for fixing bugs (while obviously delaying feature programming a bit)". Management should understand that a feature with bugs is an incomplete delivery.

    18. Re:You Can't Fix It by Anonymous Coward · · Score: 0

      It's "paid". The word you are looking for is spelled P-A-I-D. You're welcome.

    19. Re:You Can't Fix It by ranton · · Score: 2

      You only say that due to the limited scope of your vision. You think "it" is "the final product"; I never stated or implied any such thing. Each feature. Each bug fix. Each of these is "it". The bug won't be fixed by Thursday, it will be fixed as quickly as possible while still conforming to security standards and following established process. If that is Thursday, awesome! In fact we hope it will be Wednesday, but if it isn't right until Saturday then it won't be done until Saturday; period.

      There is rarely just one possible solution for any single bug. Change management processes are still involved even at this level of granularity. One solution may be to disable the feature causing the bug. One may be to provide a work around. One may be to put a quick "band-aid" on the code in question, and one may be to find and fix the root cause. If a bug needs to be fixed by Thursday, there are still options even if your developers can't figure out the root causes by then. Once again you weigh the risk of providing a quick fix now with the risk of providing a better fix after the deadline has past.

      --
      -- All that is necessary for the triumph of evil is that good men do nothing. -- Edmund Burke
    20. Re:You Can't Fix It by ranton · · Score: 1

      (the truth)
      All this might be wonderful, but very expensive. I'm not here to tell you how you should do your job, or how other developers should do theirs. but I'm just saying that in my experience, where you have unhappy developers, you might have some unhappy code, and that means the agility of the project to be able to move forwards with new features is in question, as I'd predict new features taking exponentially more time to implement, as it's likely the code if suffering from a lack of separation of concerns.

      The warning it there from the developer, but the stakeholders are happy. Case closed, move on... until that change request comes in, and the new developer says it's going to take 10x longer than the estimate! Hence, the "just get it working" approach - which further kicks the can down the road called "technical debt". Sooner or later the company pays for it, and often it's with a complete re-write in a few years!

      Well said.

      This is indeed a worst case scenario, which unfortunately play out too often. It is most often caused by not having enough developers on the "His side" of the argument. I for instance am a senior level developer who is very involved in the business side of my employer's decisions. This probably comes from my time as a contractor where I have also seen these his side, her side, and the truth arguments play out time and again. A company that does not have enough developer minded people in CTO, VP of Software Development, Director of Application Architecture, etc. positions is going to find themselves in your worst case scenario quite often. Most well run companies I have worked for and contracted for have CS/EE majors with MBAs (or equivalently minded people) in the positions I listed above, so "His Side" in these companies have many of the best arguments from "Her Side" already included.

      Technical debt is a necessity in any product. Being aware of this debt and estimating its impact going forward is very much a part of any quality change management process. Martin Fowler has a great blog post describing the relationship between prudent, reckless, deliberate, and inadvertent technical debt that is worth a read. I particularly like his reasoning behind the inadvertent / prudent quadrant.

      If you don't take proper care of your technical debt, it will ruin any software product. But properly managing your technical debt is not the same thing as just taking "Her Side" every time she complains about technical debt.

      --
      -- All that is necessary for the triumph of evil is that good men do nothing. -- Edmund Burke
    21. Re:You Can't Fix It by ranton · · Score: 0

      Management should understand that a feature with bugs is an incomplete delivery.

      So there is no such thing as a complete delivery then?

      --
      -- All that is necessary for the triumph of evil is that good men do nothing. -- Edmund Burke
    22. Re:You Can't Fix It by todslash · · Score: 1

      The problem is that in FLOSS, rejecting code may bruise somebody's ego, but that is it. In commercial development a whole slew of contractual issues come in.

      So write the contract accordingly, then. Such as "Code will be rejected or accepted based on merit. When the product ships, payment only for code that got in."

      You'll have a hard time putting something that subjective into a contract, you could change your mind about the project half way through and just reject all their code. You could also look over all their code, reject it for an arbitrary reason and then write your own implementation using all their best ideas.

      The only way to enforce it would be to have objective criteria such as having the requirements completely specified in fine detail, QA tests to cover all situations and required coding conventions written into the contract before starting but most of the time that's not practical.

    23. Re:You Can't Fix It by tnk1 · · Score: 1

      Not sure anyone would accept that for a contract unless they were desperate. Yes, their work is shite, but the outsourcer did have to pay someone to write it, and those people might work for peanuts, but they aren't working on spec.

      The open source projects succeed in that regard because they really have no direct pressure to release anything. If the next feature comes out, it comes out. If *you* need that new feature, then you have a paid development team work on that feature and you beat *them* into completing on time.

      One of the bigger benefits to FLOSS coding is that much of it is *not* done by volunteer coders, only volunteer organizations. Many of the bigger open source projects have a significant contingent of paid workers doing the work because their parent corporation's products tend to depend on things like the Linux kernel being stable and up to date.

    24. Re:You Can't Fix It by tnk1 · · Score: 1

      I think it is better to say that it gets released when it is complete and tested to totally meet the acceptance criteria set for the feature.

      The feature could still be a bad idea itself. The execution could still be flawed, but it fully meets the requirements of what it was expected to do. That's not perfection, that's a testable end result.

      Work done against a date will find the acceptance criteria bent, or testing skimped on. If either happens, you run into a buggy or half-baked feature.

      I don't know, however, if FLOSS has anything to teach the business world itself in that regard. I think the business world, instead, needs to set criteria that it can meet within its acceptable timeframe. FLOSS can go forever without releasing a feature, because it is not beholden to anyone.

      The business world has legitimate reasons to be beholden to dates because it must coordinate its activities to have things land on a certain schedule. Sometimes those dates are bullshit, but many times, they are not. If you have a factory that is tooling up for a huge run of hardware, and your software is needed to make that work, that code needs to be working by the time that hardware is ready or you screw up the whole process. That costs money and also competitive advantage.

      Businesses who want quality, and also to have their stuff done on time need to learn what their teams can and cannot do, and not force them to push it beyond normal limits. FLOSS doesn't provide a good model for the workflow, but it does provide a good example of the quality of a product that is not released until it fully meets its own criteria.

    25. Re:You Can't Fix It by Anonymous Coward · · Score: 0

      this struck me as project manager turd polish extraordinare:

      > Code is not predestined to do anything ... the software is doing what it is supposed to do, which is go into production

      BS! That's what you have requirements for. And no, "release on such and such date" is not a "requirement", it's a "timeline" which may or may not be realistic, based on the requirements.

      You can release BS all day long, check off cells in your spreadsheet and keep your "steakholders" happy if you want. But if ... you know ... your product doesn't function correctly / is half-assed, eventually that comes around to bite you. And by "you", of course, I mean the people who actually have to use it, and who are responsible for building and maintaining it.

      I think the reason so much awful commercial software exists in the world, is precisely because the people who are impacted by foolish "the requirement was to release code" type decision making are utterly disconnected from the people impacted by it.

      No, "it's done when it's right" is a legitimate goal, and if it's not respected in your organization, you are either turning out crap and pretending it isn't, or behind the curtain somewhere, there is a very dedicated developer or two who *does* respect that goal, and they are likely killing themselves trying to keep your boat afloat. And you don't even know it.

    26. Re:You Can't Fix It by Kjella · · Score: 1

      Either that or you are one who constantly feels things would have been done better if your bosses simply got out of your way. (...) This is why I don't feel you are speaking from experience. The fact is getting those Christmas sales are probably far more important than your viewpoints on perfection. And sometimes those deadlines are there for a reason. Developers are not tasked with creating some shining example of what perfect code can be, they are tasked with making a return on investment.

      No, actually there's where I'd like the manager or business owner to get in the way and do his job of figuring out what's most important and if necessary make those hard calls between schedule, quality and cost. I've actually worked a lot with project and portfolio management tools and I know those warning lights start blinking but poor managers want to have their cake and eat it too. Like one project I was in once was supposed to last eight weeks, it got three weeks delayed due to a contract problem but the deadline didn't move an inch. Neither did the scope. Or the resources. Beneath the manager talk it was just "do eight weeks work in five", like we had three works of slack to begin with.

      It's got nothing to do with perfection, it's to say it takes what it takes. If you give me a list of features and tell me you need all of them, the amount of work doesn't change just because you set a deadline. I can tell you - with some level of uncertainty - what's reasonable to expect in that amount of time. If those two don't add up, you need to solve that not just dump it on me. Or if that was my job I'd have to do it, I'm quite sure I know how but I don't want it. The problem is when you won't manage and just crack the whip then developers won't take the shit. That's when you get progress bars where the first 90% take 90% of the time and the last 10% forever. But it looked great until shit the fan because everyone fudged the numbers.

      The problem when you won't manage is that you often end up with something not actually working but gets rolled into production anyway. To use the infamous car analogy, instead of cutting a few features like lane assistance and automatic windshield wipers you've only half finished the steering, engine, gearbox, transmission and all the other must-have items so you slap the fastest, ugliest hack you got on there and ship it. Yes, I am familiar with time to market but there's no good time to flop in the market. And then you blame the developers for shipping a buggy clusterfuck.

      Honestly I feel your heart is in the right place, and your level of principles will produce far better products than those who care little for software quality. But your statements really don't reflect those of someone who has ever actually been in charge of large software projects.

      If we're trading compliments, it sounds like you've actually got a clue about running software projects and that will produce far better products than those who want to polish their project all day long. But your statements really don't reflect those of someone who has ever actually been on the receiving end of crap management.

      --
      Live today, because you never know what tomorrow brings
    27. Re:You Can't Fix It by Anonymous+Brave+Guy · · Score: 1

      And the reason anyone writing code for you would accept your entirely arbitrary deal where you can reject everything they've done without payment at your own discretion would be...?

      --
      If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
    28. Re:You Can't Fix It by orasio · · Score: 1

      You are right in your assessment, but there should be a solution for that.

      Time and materials contracts can take care of the issues you are talking about. You can reject a pull request, but still pay for the hours.
      It's a lot cheaper to pay for the hours than to fight over them. If it's an employee, help them get better, refine your specs, or maybe move them or replace them, if they are not fit for _that_ project. If it's a contractor, change contractors if they are bad.

      If you are contracting software development, it's always better to assume some risks yourself, because that keeps your providers focused on helping you reach your objective, and not contract stuff. If you don't want to take risks, you shouldn't be developing software in the first place, but buying ready-made solutions.

      .

    29. Re:You Can't Fix It by orasio · · Score: 1

      An AC, very close to first post, and it is actually spot on!

      Unless you can get management to sign on to a mentality of "it will be done when it's right" rather than "it will be done on Thursday" you have no hope of achieving FLOSS levels of success. I'm not saying you shouldn't try your best, merely that you should be aware of your limitations and from whence they come up front.

      "OS" mentality is that it will be done when it's _done_. Not when it's _right_.
      And it's tautologically true. You don't need management to change their mentality, only to _accept_ reality, and act accordingly. I know it might be too much to ask for, but it's not too much to ask.

      While it does make sense to have a roadmap, release dates for new software are too often wrong. It's a good thing to keep yourself honest about expectations, and drive the development process, so you can get quality stuff, in reasonable timeframes, providing the greatest possible value.

      Unrealistic expectations and pressure on estimates won't help you get there faster, or better. Being realistic will help your team improve estimations, and also help you complete stuff faster, and better.

    30. Re:You Can't Fix It by Demonoid-Penguin · · Score: 1

      Dude, I know we work with binary quite a bit, but equating a lack of 100% veto power to complete indifference toward quality of code is taking "all or nothing" a bit too far! (Sorry; I couldn't resist the pun)

      Dud - why reply to my post? Don't you understand sarcasm/satire/irony - or do you just not understand how to reply to posts? FLOSS and closed source can, and should reject crap code. Just because I pay someone doesn't mean I can't reject their code - at least where I live (consistent crap code == termination, either for crap coders or projects that deploy crap code/miss deadlines).

    31. Re:You Can't Fix It by gweihir · · Score: 1

      While I agree on most of what you say, all these solutions only work with a realistic, sensible budget that takes unexpected cost and the benefit of a quality-product into account. That is usually missing these days, as the bean-counters just do not understand that "1 developer day" is not a standardized product at all and can vary in productivity by a factor of 1000x .... -1000x from the average. (Yes, that is a minus and I am not sure I am exaggerating.)

      Example: If I make a fixed-price offer, I do the best I can to come up with a fair price, and then I add 20...40% for the risk of project overruns and in order to be able to deliver a small amount of "extras" for the customer if all goes well. With the way it is going for most software development, the supplier is more likely to get "fair price" - 20...40%, and that does just not cut it. Quality suffers and the customer ends up paying a lot more and quite often does never get a satisfactory product.

      Fortunately, I only do actual coding on high difficulty level (and only a smaller part of my time) so the customer is usually unable to find somebody else to do it or would have to pay even more. That allows me to answer to rate/price reduction demands with a simple "sorry, we cannot match that, look somewhere else". So far we did get all contracts and at full rates, even if it sometimes took a few months of them failing to find anybody else that could do it.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    32. Re:You Can't Fix It by Demonoid-Penguin · · Score: 1

      The problem is that in FLOSS, rejecting code may bruise somebody's ego, but that is it.

      Wrong. It's wastes valuable time. And the only difference between commercial and FLOSS software development is that FLOSS doesn't always pay coders - both styles (closed and open) cost time (time == money), both can produce crap code and miss deadlines, and both can have butt-hurt contributors whose code was rejected. That's why we pay them to piss off and suspend their access rights when we've had enough of their crap code - at least in sane, consistently profitable companies doing closed source software development. (note: I've never worked in a Communist country - YMMV)

      .

    33. Re:You Can't Fix It by Demonoid-Penguin · · Score: 1

      The problem is that in FLOSS, rejecting code may bruise somebody's ego, but that is it. In commercial development a whole slew of contractual issues come in.

      So write the contract accordingly, then. Such as "Code will be rejected or accepted based on merit. When the product ships, payment only for code that got in."

      You'll have a hard time putting something that subjective into a contract, you could change your mind about the project half way through and just reject all their code.

      Yes - it happens all the time (changing projects, rejecting code and terminating employment). We don't need contracts that specify the quality of the code - but they do exist e.g. secure code standards. Don't know what planet you live on where that doesn't happen (Planet Couch?).

    34. Re:You Can't Fix It by gweihir · · Score: 1

      And only a terminally stupid supplier would sign that one.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    35. Re:You Can't Fix It by Demonoid-Penguin · · Score: 1

      If they are paied employees, then having them write code that is barely ever accepted, is a waste of money. Open source projects you have unpaied sources, so rejecting code isn't any cost. Trying something like paying only for accepted code may work... However you will need to pay them more to account for the higher risk working for you.

      Rubbish. I don't know everything about software development - but I have spent thirty odd years doing it, both FLOSS and closed source, and your opinion as contrary to most of my experience. Sure there are corner cases where you're told to keep Dumbo on because the major shareholder is their parent - they're the companies you don't want to work for and are no more useful as a guide than your opinions about bubonic plague and automobiles or "other countries" where people smoke one or two cigarettes a day (novel, but rubbish).

    36. Re:You Can't Fix It by gweihir · · Score: 1

      Apparently you have a reading comprehension issue. Obviously I was _not_ talking about the cost to the contributor.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    37. Re:You Can't Fix It by seepho · · Score: 1

      Jesus, Mr. Spacely, settle down.

    38. Re:You Can't Fix It by Demonoid-Penguin · · Score: 1

      Apparently you have a reading comprehension issue. Obviously I was _not_ talking about the cost to the contributor.

      Neither was I - try re-reading, though you might need to rest your lips a bit first.

    39. Re:You Can't Fix It by El+Rey · · Score: 1

      Sure you can, but it's easier to catch it early and nip it in the bud.

      Design reviews. Code reviews. Senior people mentoring junior people. Pair programming if you must. Refactoring. I've had to have juniors I was mentoring go back and rework something that was lame.

      It's not like people have never heard of these things right?

    40. Re:You Can't Fix It by todslash · · Score: 1

      The problem is that in FLOSS, rejecting code may bruise somebody's ego, but that is it. In commercial development a whole slew of contractual issues come in.

      So write the contract accordingly, then. Such as "Code will be rejected or accepted based on merit. When the product ships, payment only for code that got in."

      You'll have a hard time putting something that subjective into a contract, you could change your mind about the project half way through and just reject all their code.

      Yes - it happens all the time (changing projects, rejecting code and terminating employment). We don't need contracts that specify the quality of the code - but they do exist e.g. secure code standards.

      OK. Now I'm confused:

      So write the contract accordingly, then. Such as "Code will be rejected or accepted based on merit. When the product ships, payment only for code that got in."

      We don't need contracts that specify the quality of the code

      If you're saying that at some point during the contract you realise it's not working out, pay for the time spent and terminate early then that's fine. If you're saying that you'll pay based on some evaluation of the end product then the criteria for success need to be very clearly defined at the outset so that the contractor can assess the risk of failure and decide whether to take the contract.

      Don't know what planet you live on where that doesn't happen (Planet Couch?).

      I don't have any direct experience, I've just chatted to people who are contractors on other projects in our office and the people who hired them. They have been hired because there's an immediate need and no one available with either the time or skills required. The specification is written as well as it can be under the circumstances but it's never perfect. There are some very good contractors who keep getting rehired because they're trusted to deliver without a lot of management and there are some who are over their heads who get let go early. In the middle are the people who delivered as well as could be expected under the circumstances but the results aren't perfect and that's where it gets messy. There's a hard deadline to be met and so something has to be shipped, if the project gets funded for the next stage then they'll try to fix the bugs later, otherwise they'll stay.

    41. Re:You Can't Fix It by Demonoid-Penguin · · Score: 1

      Yes - it happens all the time (changing projects, rejecting code and terminating employment). We don't need contracts that specify the quality of the code - but they do exist e.g. secure code standards.

      OK. Now I'm confused:

      :)
      It's both. Most commonly coders are either employees or contractors - they can be terminated for a number of reasons. Generally it's simplest to simply say "you are surplus to requirements". Less often coders (or companies) are contracted to produce code to a standard (i.e. named security standards) - if the code is not up to standard it's a simple breach of contract. The usual process (best practise) when dismissing an employee or contractor is to give them the required notice but escort them out the door, pay them to the end of the notice period, and remove their code and network access immediately. HTH

      With Open Source we just block their write access and send their messages to nul. The OP is talking out his arse when he conflates any can submit to Open Source therefore all submissions are automagically added.

      We don't need contracts that specify the quality of the code

      If you're saying that at some point during the contract you realise it's not working out, pay for the time spent and terminate early then that's fine. If you're saying that you'll pay based on some evaluation of the end product then the criteria for success need to be very clearly defined at the outset so that the contractor can assess the risk of failure and decide whether to take the contract.

      If a certain benchmark is required then yes - it's written into the contract. Otherwise it's no different to hiring a forklift driver - there's no benchmark but you fire the bastard if he does no work or fails to move product in a suitable manner.

      I don't have any direct experience,

      Neither have many of the other commenters - but they lack the honesty to admit it. My apologies for being harsh.

      I've just chatted to people who are contractors on other projects in our office and the people who hired them. They have been hired because there's an immediate need and no one available with either the time or skills required. The specification is written as well as it can be under the circumstances but it's never perfect. There are some very good contractors who keep getting rehired because they're trusted to deliver without a lot of management and there are some who are over their heads who get let go early. In the middle are the people who delivered as well as could be expected under the circumstances but the results aren't perfect and that's where it gets messy. There's a hard deadline to be met and so something has to be shipped, if the project gets funded for the next stage then they'll try to fix the bugs later, otherwise they'll stay.

      There's a host of difficulties - some times we have to deliver the impossible, most of the time we don't get to do the hiring (ever seen ads for impossible skill sets and experience? Those ads are written by the wittling fools in HR - or worse - wish lists by employment agencies). Regardless of those difficulties as a general rule - crap code gets rejected regardless of the licence model because it defeats the purpose of the project and costs time (in Closed Source time is money - and review and wages costs money). The politics of "next project" is even messier - too many managers leave before the end of doomed projects, still get paid, and move on to other projects they'll doom, others stay and manage badly while putting the blame on the coders. In the long term good management means good coders - and good code means the company/project succeeds for a long time. Government projects are a land of lollipops devoid of market forces (except maybe brown paper bags) but I'm biased by cynicism that is the product of experience. All of which doesn't have much to do with "Open Source has to accept crap code" or "Closed Source has to accept crap code" - both of which are bullshit.

    42. Re:You Can't Fix It by Anonymous Coward · · Score: 0

      As a manager I will sign on to the mentality of "it will be done when it's right" with the simple addition of "I will pay you when it is done right"

    43. Re:You Can't Fix It by gweihir · · Score: 1

      You sound much like a clueless MBA, i.e. one not worth listening to.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    44. Re:You Can't Fix It by Anonymous Coward · · Score: 0

      A mentality of "it will be done when it's right" is almost as foolish as "it will be done on Thursday." Software will never be "right".

      Bullshit

      It depends on the project. Tex is an example of software done right and done.

    45. Re:You Can't Fix It by Anonymous Coward · · Score: 0

      The fact is getting those Christmas sales are probably far more important than your viewpoints on perfection.

      That is why there are so many epic fails in the video game sector.

      Companies rush out a game, especially if it is subscription based, too early and never recover from it.

      Then they do it again with the next failed game.

  3. FLOSS has the same issues by bloodhawk · · Score: 4, Insightful

    Who told you FLOSS doesn't have those problems? they lied. many FLOSS projects fall apart because of the "virtual teams" of people with different goals and aspirations. I would not be surprised if the failure rate is even higher than 70%

  4. What makes you think by Anonymous Coward · · Score: 1

    Open source software has a better success rate than 70%? I suspect it's much lower. Plus you only have to code something if you want to. It's really apples and oranges.

    However having worked remote for 2 years I'd say

    Establish clear communication guidelines - like what hours someone should be available in IM for instance communication
    Make sure your team has tools to virtual whiteboard

    I finally gave up on it when most my team was 6 or more hours off me and no one wanted to joint design. Quite happy to be back face to face most of the time.

  5. Observation by DraconPern · · Score: 3, Informative

    I think a big difference is in how you can just 'fire' people casually in FLOSS. You don't have to accept people's pull request. You can tell them their code sucks, w/o sugar coating it. There's also non-monetary incentives that drives FLOSS that you'll have a hard time duplicating. That said, may be make it clear to your boss that you should be given the power to reject bad code w/o lengthy explanation. The ability to change team members easily if need be. Also, may be the ability to say more about a project when posting job positions, and not just the generic, "Over x years of experience in y". The linux kernel is a good example. Also, you must have people who knows git well.

    1. Re:Observation by Dutch+Gun · · Score: 3, Insightful

      I'd agree except for the "without lengthy explanations". There's also a pretty big distinction between "sugar coating" and using a bit of diplomacy. Telling someone their code sucks with little explanation both does nothing to really help them and may just create bad feelings and frustration. Why create unnecessary tension in the workplace if you don't have to?

      I tend to prefer taking more of a mentor position with programmers on my team if I feel their work needs improvement. This includes not just telling someone how to do something, but listening and finding out *why* they chose to write code the way they did. I think this effort will ultimately make them more productive in the long run, rather than just shuffling them off to another project or another company. If they're not responsive to those efforts over time, either deliberately or because of a lack of talent, then at that point get rid of them or transfer them to a position / place where they're more suited.

      This is a bit different than in the FLOSS world, where you really wouldn't have the time or inclination to mentor everyone who submitted code. It's probably more appropriate to be direct and concise in those cases, as otherwise you'd have all your time sucked away.

      --
      Irony: Agile development has too much intertia to be abandoned now.
    2. Re:Observation by Anonymous Coward · · Score: 0

      I think a big difference is in how you can just 'fire' people casually in FLOSS. .

      You can do that in corporations too. You can't easily fire people from employment, but you can easily put them on other tasks. Good coders get to work on whatever they like (any part of any product). Worse coders are forced onto the less popular tasks. Boring code jobs, keeping docs up to date, or even non-programming tasks within the company.

      So the way to work on "whatever you like" is to turn in good work. Be average, and be told what to do. Be mediocre, and you eventually get laid off.

    3. Re:Observation by Just+Some+Guy · · Score: 1

      More of this, please. Don't demoralize a new programmer who doesn't have the experience to choose well between two similar-sounding options.

      It's probably more appropriate to be direct and concise in those cases, as otherwise you'd have all your time sucked away.

      Agreed, but with a reminder that "direct and concise" is different from "asshole". You can say "thanks for the patch, but it conflicts with our long-term design goals and we can't accept it" is not the same as "LOL nope".

      --
      Dewey, what part of this looks like authorities should be involved?
  6. Reduce commit size by Anonymous Coward · · Score: 1

    Keep the size of commits reasonable in order to give those leading a feature, or function a change to check the code. Many OSS projects appear to use hackathons for larger commits requiring lots of communication.

  7. What can on-location software teams learn from OSS by phantomfive · · Score: 4, Insightful

    Here's what a lot of teams need to learn:

    A lot of meetings can be done more efficiently and effectively by email. Here are ways you can tell:

    1) If half the people in the meeting are checking devices, not listening, the meeting should have been done by email.
    2) If everyone sits down at the 'stand up' most of that meeting should have been done by email.
    3) If people are standing around with blank looks on their face, the meeting is probably a waste.
    4) If the meeting is in the morning, and after lunch no one can remember what happened, the meeting is a waste.
    5) If the meeting ends exactly one hour after it starts, then it's a time filler. Finish the meeting when everything is accomplished, not when the time is up.
    6) If it's not clear what needs to be accomplished in the meeting, it's a waste of a meeting and should be cancelled.

    Someone above suggested that the meeting could be done over IRC instead of email. That is also a perfectly acceptable alternative.

    --
    "First they came for the slanderers and i said nothing."
  8. Yup, exactly by Giant+Electronic+Bra · · Score: 4, Insightful

    All you probably NOTICE are the more successful FLOSS projects. For each one of those, there are 100, possibly even 1000 that languish, maybe make a release or two, and then lie in their shallow graves on sourceforge for the next 10 years.

    --
    "Malo periculosam, libertatem quam quietam servitutem." -- Jefferson
    1. Re:Yup, exactly by gweihir · · Score: 4, Informative

      Very much so. Most FLOSS projects fail or are not very good. The other thing is that successful FLOSS projects often have very small teams of very good and dedicated people. Often you find that things are handled by just one person that really, really knows what they are doing.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    2. Re:Yup, exactly by tigersha · · Score: 1

      All successful 'open' and 'free' and 'democratic' systems (not just software) are run by a small dedicated old boys club.

      --
      The dangers of excessive individualism are nothing compared to the oppressiveness of excessive collectivism
    3. Re:Yup, exactly by Just+Some+Guy · · Score: 1

      It gets weird. Some FLOSS projects stop because the work is "done". I have such a project myself that does data conversions from one database to another, and several distro download counters say it has quite a few thousand installations worldwide. And yet, I only touch the code when a bug report comes in. Other than that, it's more or less finished. It does what the label says, quickly and reliably. Many people use it in production. There's just not a whole lot that can be done to improve it other than succumbing to featuritis and adding a lot of bells and whistles.

      Few commercial projects would hit this point because most rely on upgrade sales. I don't, so there's no incentive to push ahead. I suspect that's the case with many FLOSS projects which have scratched their itch. Why keep scratching?

      --
      Dewey, what part of this looks like authorities should be involved?
    4. Re:Yup, exactly by gweihir · · Score: 1

      Indeed, they do. The question is are they benevolent or not. If they are benevolent, this model works exceptionally well. (Succession is always a problem, of course.) If not, one distinct advantage of FLOSS is that you usually can ignore the bad projects. I have done that for Gnome, KDE, Firefox as of late, etc., and I could not care less about the mess they are making. Systemd is an example where you cannot easily ignore them and hence the growing opposition to it. But such aberrations are rare and the FLOSS community is usually very much merit-oriented.

      Of course, the other thing is that a failed FLOSS project usually only has cost people free time and does not rob them of their livelihood, and hence projects do die.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
  9. 70% "Failure Rate"? by engineerErrant · · Score: 4, Informative

    Gimme a break. One talking head wants to publish a "study" and suddenly it's canon? What does "failure" of a virtual team even mean? Probably, less money for the talking head.

    Virtual-enabled teams, in my own experience, may not result in any massive, curve-jumping gains suitable for a click-baity headline, but I do think they are at least as good, and decisively better in a few key ways, as traditional, rigidly office-bound teams. They are cheaper facilities-wise, and result in vastly higher morale and loyalty among the employees who are able to work from home. They do not result in goofing off or falloff of productivity, except among employees who were worthless anyway.

    Ultimately, virtual-enabled teams amplify whatever is good or bad about the leadership and quality of the hires. Good hires become great hires because they don't waste their work house stuck in ever-increasing traffic. Do-nothing managers become disaster managers. And the morons who represent the failure of the hiring process will spend their days at the beach and be discovered far earlier than they would have.

    Virtualization is a Great Thing. But it highlights how the current state of management and hiring in software is a Terrible Thing. Don't believe the haters.

    1. Re:70% "Failure Rate"? by ranton · · Score: 3, Interesting

      70% failure rate really doesn't seem high at all compared to various failure rate studies I have read. Here is a study which shows 68% of all IT projects fail, so I guess an extra 2% for distributed teams isn't too bad.

      One problem of these failure rate studies is how you measure failure. Most of them lump into one group all projects which exceed their budget, fail to fulfill the full project scope, or other common scenarios. It may seem reasonable at first, but is a one year project that goes live in thirteen months really a failure? Or if the management team carefully removes some features from the scope so it doesn't go over budget, is that still a failure? Sometime yes and sometimes no on both accounts.

      The most important thing to remember is these studies are being marketed to companies who sell requirements gathering tools and consulting services, so they should be taken with a grain of salt. For instance, the company who did the study I linked to above has the following paragraph at the top of its mission. I hope it puts into perspective any doom and gloom predictions made about how likely a project is to fail if you don't use proper enterprise-wide requirements solutions.

      IAG provides world-class enterprise-wide requirements solutions to help clients achieve their business and software development objectives. We champion the position that: accurate and clear definition of true requirements is a key success factor in achieving superior IT delivery results.

      --
      -- All that is necessary for the triumph of evil is that good men do nothing. -- Edmund Burke
  10. It is the same problem between WaterFall and Agile by Anonymous Coward · · Score: 0

    The issue is communication.
    With remote workers agile startes to fail becuase of the lack of meaningful face time. Waterfall slips on time delievery. Floss is combo of them both so same hit.

    Documentation is heavily required. We are talking fine details. Saying "Need an AR by 3pm" will not work. The meaning of A/R report is different every where! So devil is in the details!

    Most important is talk talk talk. Have a meaningful discusion on what is date - yeah a date! Like it is Jan 31, 2016. You add amonth to date, what date do you get back? Add two months? What is being of quarter? ... This is imporatant to get the basics correct! Same goes for names, addresses, time, ...

    Last oversee culture issues hit hard. Far East, it is common to always agree and build consenous. So on the phone and they say "yes", it could just as well mean "no", becuase consenous has been met. Also watch time lines, one was under bid for time by a factor of 10. They quoted the time to do the build (what was asked) then took 9 times that to test everything (their corporate policy). We saw the stretch with in a month showing the missed mark. We asked and talked and asked and talked... their estimate remained the same. Finally got light of problem actual problem, after taking low level developer that I ask to document the proces he was doing.

  11. Face-to-Face Communication Matters by sk999 · · Score: 4, Interesting

    Many years a go I was coordinating a group of developers that was somewhat larger than yours and possibly even more distributed. E-mail and phone conferences were fine, but they were no substitute for face-to-face communication. At some point I just decided that we all needed to get together for a 2-day meeting every month, which meant everyone else had to fly in, except for those in Asia, who joined by videoconference in spite of ridiculous time zone differences. No objections from upper management. It definitely helped (and later learned that people regretted when I stopped holding the meetings.) The key is to make sure you work in a place where it is a non-stop flight for everyone else.

    At the moment I am working on a project where the center of activity is two time zones away. Coming up on a review, I realized that there was a big disconnect in how the people in charge thought my part of the project would work - this in spite of our having even more advanced online collaborative tools to communicate. On my own initiative, I flew out to where the rest of the project is located. It was for 2 days, and it was extremely productive - indeed, essential.

    There always seems to be a mandate in organizations that people travel too much, and it needs to be cut back. I look at it the opposite - people don't travel enough.

    1. Re:Face-to-Face Communication Matters by Anonymous Coward · · Score: 0

      Your anecdote about "how the people in charge thought.. the project would work" is quite often my experience. My development team is spread over 3 time zones in the U.S., Romania, India, and sometimes Australia. Since face-to-face is out of the question, my company has adopted an Architect model, where every developer is responsible to the same person (on a technical basis; hire/fire is a separate issue). The technical coordinator does not write code, but checks up on all the developers. The coordinator is responsible for getting the right people on the phone or chat, and making sure the requirements are clearly understood.

    2. Re:Face-to-Face Communication Matters by Anonymous Coward · · Score: 1

      We've done the opposite - we've let people work from home and/or other offices (interstate and overseas) more and more.

      One of our most efficient (and critical, our core development team) is entirely distributed (not a single pair of developers on that team work in the same place), and more efficient now than a year ago when they were all in the office.

      I suspect the biggest contributor to success is more to do with morale/happiness/freedom than anything, if you have good staff, and give them the benefit of the doubt, let them reign free & manage their own time, but hold them accountable for what needs doing - their lives will be more flexible, they'll be happier as other parts of their lives are going to be less stressful as a result, and they'll enjoy work more and hopefully be more productive as a result of all of that. Not to mention, less distractions with all those redundant meetings and people tapping you on the shoulder every hour.

      Each to their own I guess.

    3. Re:Face-to-Face Communication Matters by El+Rey · · Score: 1

      That's interesting. In retrospect, did you figure out what aspect of the communication was a barrier in the remote case that wasn't a barrier in the in person case (e.g. whiteboards)? Did you have video, shared whiteboards, shared document editing in the remote case?

  12. Re:What can on-location software teams learn from by Anonymous Coward · · Score: 2, Interesting

    Managers love meetings. For some of them, it means that they get to lord power over their subordinates just so those people know who the boss is.

    Most of my meetings were intended for blame-placing. I was doing much scheduling in my previous job, but the software that had been written didn't function properly. Explain this in meetings, provide parameters for the developer to fix it, leave meeting knowing I'd contributed to the success of the business.

    About 30 minutes after the meeting concluded, I would receive an email explaining how the problems with the scheduling/website/whatever were my responsibility to deal with, even though the basic functionality of the tools was compromised (scheduled items could not have punctutation as the code was not properly escaped, other items would be trapped in transit, but these were my problems to deal with because it was my job to ensure everything was correct and professionally written).

    It turned out that what was really happening was that they gave me a chance to explain what was going on, and then after my part of the meeting was over, the manager and his pet IT boys would blame me for not doing it correctly.

  13. A "Paper" Trail by Anonymous Coward · · Score: 2, Interesting

    Open Source projects that are successful are so because they have documented procedures and follow them. They also document their communication in mail list or otherwise, but take the attitude that if the communication didn't happen (or wasn't later summarized) on official channels, it didn't happen at all. Unsurprisingly, these are the things that might other projects successful. I'd suggest making sure you have a good change request system, a good change control system, a method for official communication, documented processes, and zero tolerance for anyone trying to skip process.

  14. Apple and Oranges by Anonymous Coward · · Score: 0

    1. FLOSS development is done for the love of it, not for the payout and benefits

    2. As was stated, FLOSS members can easily be dismissed from the dev group if their code sucks, they suck or other reasons; paid employees cannot unless they have well worded contracts and the company has draconian lawyers

    3. FLOSS development is usually not on a fixed timeline or using some acronym-of-the-month development paradigm, e.g., Agile, SCRUM, Waterfall, etc. so releases happen when releases happen. Not saying there aren't goals, but people don't get fired if a release slips a few months/years

    4. Communication is often more asynchronous and not as immediate with FLOSS (unless severe bug, looking at you OpenSSH!) Things move at a much slower pace than within a corporate, results driven environment

    There are others that I am sure folks will bring up, but those are the major apples-to-oranges issues when comparing FLOSS dev groups to corporate ones. It's a different world when someone else's money and time are involved in developing something. A lot more risk and responsibility involved in the corporate environment when your life literally depends on the paycheck and benefits from your work.

  15. Yet most coding today builds online collab tools by cjonslashdot · · Score: 1

    Isn't it ironic that a great percentage of the programming that occurs today is for using the Internet to enable online commerce, collaboration, and business? And yet the Agile community (of which I am a member, and believe in Agile - although not ever single idea or practice) shuns distributed teams - the very technology that we build.

    http://valuedrivenit.blogspot.com/2013/11/are-agilists-turning-their-backs-on.html

  16. Tools, motivation by manu0601 · · Score: 3, Insightful

    IMO, tools are a secondary problem. Many FLOSS project succeed with just e-mail and a distributed version control system (even plain old CVS). Motivation if the key point of FLOSS: people really want their contribution to get upstream, and that push them to make a lot of efforts. This may be difficult to reproduce with employed developers that may not care much about the project.

  17. God said to Noah, there's gonna be a floody-floody by Anonymous Coward · · Score: 0

    God said to Noah, there's gonna be a floody-floody. Rain came down, it started to get muddy, muddy. Get those animals, out of the arky-arky

  18. If the meetings are productive. travel sucks by Anonymous Coward · · Score: 0

    If those 2 days are really productive, that's one thing. But if it's just people bullshitting, forget it - it's a waste.

    Traveling sucks - and that's if the company allows you to travel on their time. Meaning, drive to the airport at 1:00PM and get at your destination by dinner.

    But what I usually have to go through, is the plane leaves at 7PM so I have to drive in rush hour traffic from work. Then by the time I'm in bed, it's Midnight or later.

    The next morning, I'm wiped and can hardly function.

    Then repeat on the way back.

    Oh, and I better be in by 8AM the next day.

    And that's staying in one time zone! Going across country was just a nightmare.

    I quit that job as soon as I could.

    1. Re:If the meetings are productive. travel sucks by Anonymous Coward · · Score: 0

      Nearly all meetings are people bullshitting and grandstanding. If they make me come to their prison-office, all the time, they can get fucked and I'm leaving.

  19. Paid vs Hobby by The+Raven · · Score: 3, Insightful

    Someone paid to do a job they dislike, with people they don't know, are likely to do only as good a job as they need to get paid. When they are very far away, that could be very little at all.

    Someone volunteering to do a job they enjoy with remote people who share the same hobby and ideals? Unsurprisingly, they tend to do a better job, despite the lower accountability you have when working remotely.

    This isn't rocket science.

    --
    "I will trust Google to 'do no evil' until the founders no longer run it." Hello Alphabet.
    1. Re:Paid vs Hobby by Greyfox · · Score: 1

      That's certainly an aspect of it. Also, I've found it takes about a year to come up to speed on a code base and business process. I mean, really knowing it inside and out. If you come onto a project already knowing the problem that's being solved, the reasons it's being solved and how the team works, that's a huge advantage. You're much more likely to do that on an open source project. Companies hiring short term contractors are never going to see that level of productivity or design insight because they're turning people over too quickly for those people to learn how the company and software operates. People who don't really know how everything fits together will start fixing bugs, and the design of the software will start to suffer. If it was ever designed in the first place, which it usually wasn't.

      --

      I'm trying to teach myself to set people on fire with my mind... Is it hot in here?

    2. Re:Paid vs Hobby by Kjella · · Score: 1

      That depends on whether it's all fun and games. Like what you want to do is play ball, not be the groundskeeper. They can pay someone to do that. You don't want to scrub the toilet in the clubhouse. They can pay someone to do that. Same with FLOSS projects, you're there to write cool new features. Do you want to triage bugs? Write documentation? Test for regressions? Fix the build server? The fun parts will be done better, the not so fun parts is probably the other way around exactly because you're not paying anyone do to them.

      --
      Live today, because you never know what tomorrow brings
  20. Re:What can on-location software teams learn from by Kjella · · Score: 1

    5) If the meeting ends exactly one hour after it starts, then it's a time filler. Finish the meeting when everything is accomplished, not when the time is up.

    What kind of meetings do you go to? Most my meetings have more points on the agenda than we'll conclude on and the remaining discussions are tabled to the next meeting because some of the members have to attend other meetings, the room is booked for a new meeting or people need to leave for the day. Status meetings can be the exception when there's a fixed time slot set off every week and not much is happening, but rarely those where we plan the schedule and resources, discuss the architecture and design, solve implementation issues and so on. It always could be fine tuned further, the question is if it's good enough that we can move on or if we have to resume the discussion later.

    --
    Live today, because you never know what tomorrow brings
  21. New story pls by Anonymous Coward · · Score: 0

    Current has been up too long

  22. Conway's law by 3count · · Score: 2

    Successful FLOSS projects are often compartmentalized in a way that allows developers to complete much of the work independently. If your code is highly interdependent, you'll need more high quality communication between team members and that is more difficult for virtual teams. Some problems, and some code bases, simply do not distribute well. A FLOSS project that grows up distributed is more likely to be successful than a commercial project developed by a collocated team that then is handed off to a distributed team.

    Initially, the code structure follows the team communication structure. Once this is in place, the team communication is constrained by the code structure. When making changes to one, plan to make changes to the other.

  23. Rule #1 by msobkow · · Score: 1

    When someone checks IDE configuration files or broken code into the repository, make sure you publicly and thoroughly humiliate them for the whole team to see. Seriously. I can't tell you how many hours have been lost on projects both corporate/internal and distributed because of crap like that.

    If someone is too lazy to even make sure their code builds before checking it in, they deserve to be humiliated as the unprofessional hacks that they are.

    --
    I do not fail; I succeed at finding out what does not work.
    1. Re:Rule #1 by Anonymous Coward · · Score: 1

      We make people wear a stupid viking helmet for the day when they break the build.

      If it's still broken the next day, they get an Elton John T-shirt to wear.

      No one's ever let it stay broken a third day.

    2. Re:Rule #1 by vanye · · Score: 1

      Punishment cup-cakes.

      If you break the build you have to bring cake ( not necessarily cupcakes) for everyone the next day - "to say sorry for negitively impacting them"

      Some buy, some bake... It's now a relaxed company joke

  24. floss is effective by Anonymous Coward · · Score: 1

    at cleaning teeth

  25. What makes you think FLOSS fails less? by MAXOMENOS · · Score: 1

    No, seriously: can you cite a study with a solid methodology to demonstrate that less than 70% of FLOSS projects succeed? I ask because there's a lot of orphaned projects out there that most people have never heard about and that are effectively dead, their code either unused or in desperate need of replacement (because it's not being maintained).

    1. Re:What makes you think FLOSS fails less? by ray-auch · · Score: 1

      What makes people _think_ fewer FLOSS projects fail is that people only look at the successful ones because they are the most visible. Commercial failures are very visible because of the amount of money lost, people do post mortems, studies to "make sure we don't make the same costly mistakes again". With FLOSS no one cares about the failures, they just move on to something else.

      IT is not alone in this problem, take construction / civil engineering, we judge by the failures: "this bridge has cracks, there are bits falling off this skyscraper, these houses are subsiding". We want impossible success rates: "why with all our building standards and fancy technology do we still get these problems". Then we look at, say, medieval cathedrals and say "see, those medieval stone masons had none of our fancy technology, they didn't have computers to calculate stress and strain, and yet they built all these beautiful cathedrals that have stood for centuries".

      Why can't we be as successful as medieval stone masons / FLOSS projects ? Answer: you can. Just be sure to clear up the piles of fallen stone and above all do not document or dwell on your failures, move on and they will be forgotten.

  26. Ugh by MAXOMENOS · · Score: 1

    s/succeed/fail. Original should read:

    No, seriously: can you cite a study with a solid methodology to demonstrate that less than 70% of FLOSS projects fail? I ask because there's a lot of orphaned projects out there that most people have never heard about and that are effectively dead, their code either unused or in desperate need of replacement (because it's not being maintained).

    1. Re:Ugh by bloodhawk · · Score: 1

      I would be shocked if they could site a study that shows less than 90% fail!

  27. Re:What can on-location software teams learn from by phantomfive · · Score: 1

    Lucky you: you haven't run into those types of meetings. Hang out with business types more often, and you will.

    Also, here's an idea for you, since you're already making up an agenda. Send your agenda to everyone the day before the meeting, have an email discussion on those points, and see how many of those items you can resolve before the meeting. Once you get the hang of it, I'll bet you'll be able to get through all of them, and you can save the meeting time for more important things.

    --
    "First they came for the slanderers and i said nothing."
  28. makes me smirk by Anonymous Coward · · Score: 1

    small development team (10+ people)

    I've been working in the technology field for over 15 years, mostly huge companies, some small ones, and my current team has 10 people and it is by far the largest team I have ever worked on - and the least capable.

    1. Re:makes me smirk by Anonymous Coward · · Score: 0

      I just past my 25 year in IT. I think I have only worked on dev teams less than 10 people for 1 or 2 of those years. my current team has 110, (each with a different section of the project to code, with each section being 5-10 people). large dev teams are very common, The largest I have worked on had 300 devs.

    2. Re:makes me smirk by Anonymous Coward · · Score: 0

      Man, I can't even imagine.

    3. Re:makes me smirk by Anonymous Coward · · Score: 0

      It happens a lot, especially in industries with strict release requirements built around legal requirements. I work in a team that has anything from 20 people all the way up to 400. The size changes on a quarter by quarter basis depending on how many changes are needed to be implemented. think about government/medical/finance areas where often software MUST be updated by Date X with zero flexibility for slippage.

  29. Well, if it's an english team by Anonymous Coward · · Score: 0

    How to do it so not to need to see a dentist?

    Yahoo//

  30. Do what they did at the last company I worked for! by Anonymous Coward · · Score: 0

    Be a bunch of paranoid nancys and don't take submissions from the remote team without a month delay at least. Then revert it a month later without any explaination. Then, after falling behind on a one year project by two years, get everyone fired and the entire division shut down. It seemed to work for them.

  31. Apropos of nothing... by Okian+Warrior · · Score: 1

    Unless you can get management to sign on to a mentality of "it will be done when it's right" rather than "it will be done on Thursday" you have no hope of achieving FLOSS levels of success.

    Apropos of nothing, when will Firefox be done?

  32. From good FOSS projects? ... Everything. by Qbertino · · Score: 2

    From good, working FOSS projects you can learn just about anything. As for the distributed software development: One thing people can learn from FOSS is versioning. Seriously. Quite a few teams I've met in RL can't and don't/didn't version, with FOSS it's mandatory. A very important aspect is that FOSS teams version just about everything, including docs and assets. Very important.

    Another thing distributed teams can learn from successful FOSS projects is not to drown in tooling-bloat. Most tools in FOSS are tried and true and have a track record of decades. IRC, simple IDE/compile setups, tried and true working environments (f.e. LAMP stack), a bug/issue tracker that does the job and maybe a web-forum. I like to use the Google suite for my projects, but that's mostly for FOSS stuff, so it doesn't matter to me that much what Google is reading along. YMMV.

    One thing that I would recommend when doing distributed development is, that you should set up your entire environment and pipeline, so that it is ready for distributed devlopment. You should have different pipelines depending on location. The overall process of versioning, tracking, compiling and deployment should be the same for everyone. The difficult part isn't getting the externals to do their thing but to get the locals to switch to the new, optimsed processes.

    Another thing good (FOSS) projects have in common is a clear vision and good gouvernance. The stakeholders and PMs of FOSS projects actually have their agency behind the thing. If they don't, they quickly drop out or the project simply never gets off the ground. ... That's a huge upside to FOSS btw. In paid development, you get idiots dragging along for years, simply because there's a paycheck involved. Very painful. I've seen that a lot of that.

    --
    We suffer more in our imagination than in reality. - Seneca
  33. Baserates by m.shenhav · · Score: 2

    Parent makes a good point but misses another. We need some baserates indeed to make a reasonable assertion about the damage or benefits to virtualizing teams. But really it doesn't quite matter how you measure failure, as long as you use equal measures on both normal and virtual teams. Of course to get a complete picture different types of failure should be considered, but for each particular measure the comparison is still valuable.

    1. Re:Baserates by ranton · · Score: 1

      Well said

      --
      -- All that is necessary for the triumph of evil is that good men do nothing. -- Edmund Burke
  34. successful principles by Anonymous Coward · · Score: 0

    I've been involved in a number of open-source projects, mainly at apache.org. The common features of successful projects appear to be:

    * code reviews - have a couple of senior developers allocate significant time to reviewing code. Some projects have a "review before merge" policy, some a "review after merge"; I would suggest _before_ if possible, but choosing a decent version-control-system (eg Git) makes this easier. This review process is also the main _communication_ mechanism; you can have all the meetings you like but people still misunderstand things, or don't listen. Having feedback from a reviewer really brings people to understand the right way to do things.

    * good test coverage - with a distributed team there is less ability to just pop over and ask the author of some code what they intended. Good unit tests can at least partially cover for this lack; it's clearer how things were intended to work, and hopefully misunderstandings will trigger test failures.

    * and really try to avoid 1:1 communication where possible, ie communicate via open lists, wikis, etc rather than direct emails.

  35. Re:What can on-location software teams learn from by Anonymous Coward · · Score: 0

    I disagree on point 5, over here we have some co-workers that seem to enjoy extending any meeting that should have lasted 30 minutes to 2h or more. Then the last 75% of the meeting are a waste.

    Whenever I'm in one of those meeting, I make sure to have "something important" planned within one hour of its starting time.

  36. Re:What can on-location software teams learn from by Anonymous Coward · · Score: 0

    I've almost never seen a 1-hour meeting that was productive for the full hour. At least a few of the people attending will be wasting their time being there for 1 hour.
    If someone skilled is leading the meeting, it will usually be over in less than that our and still get the relevant points discussed. If not, it degenerates in discussing loads of things that are irrelevant because the right people aren't available, irrelevant because it's not something that can or should be decided on now, etc. etc. If you want to discuss that kind of thing without a clear agenda and things to solve and think it needs to be face-to-face, meet over dinnner or something, then people are at least in a better mood.

  37. It's MOTIVATION or "engagement" stupid! by Anonymous Coward · · Score: 0

    It's about motivated, interested team members, now fashionably referred to as "engaged", and this is the case whether they are remote or in-office. A highly motivated, capable remote worker is much better than an unmotivated, not-so-capable desk jockey. So -called "teams" are in reality groups of specialists with good communication and good coordination and good remuneration.

    I hate working in offices, particularly cubicle or open plan with no quiet office of my own. Marissa Meyer can **** her **** with a ** *****. I am far more productive online at home, provided I have good interesting work to do and good people to work with, even if they are the other side of the world, it doesn't matter.

    Good tools: we find Slack to be very useful in our distributed teams, keeping people in touch and propagating the occasional bonding joke (which builds relationships), though it can be distracting. Email still has its place. Skype or Google Hangouts for the occasional face to face but mostly an audio call will do, and rarely at that. Minimise meetings but insist on at least one manager-soldier call, preferably one-to-one, every few weeks.

    1. Re:It's MOTIVATION or "engagement" stupid! by Anonymous Coward · · Score: 0

      Oh and a popular bug tracker as well, and github.

  38. Be Mindful of the Tao by Anonymous Coward · · Score: 0

    Thus spake the Master Programmer:

    "Let the programmers be many and the managers few -- then all will be productive."

  39. Representativeness heuristic by nobby · · Score: 1

    I suspect that for every distributed OSS project that succeeds there are many that fail. You see the successful projects and the failed ones tend to slip back into obscurity. You can possibly learn something from the ones that succeed, but it shouldn't be 'OSS projects successfully manage distributed teams all the time.' I think that the majority of such projects actually fail. However, reaching out for advice or examples from the ones that actually work might be helpful. You should find folks on Slashdot who actually are involved with successful OSS projects. Maybe they will have something worthwhile to say.

  40. Re:Yet most coding today builds online collab tool by Anonymous Coward · · Score: 0

    Isn't it ironic that a great percentage of the programming that occurs today is for using the Internet to enable online commerce, collaboration, and business? And yet the Agile community (of which I am a member, and believe in Agile - although not ever single idea or practice) shuns distributed teams - the very technology that we build.

    http://valuedrivenit.blogspot.com/2013/11/are-agilists-turning-their-backs-on.html

    There is absolutely NO reason why software teams have to be "face to face" or even in the same hemisphere let alone country. It's ridiculous. Everyone simply has to know they are supposed to be doing and then produce it. Even when people are in the same office, a technical matter is most likely to be resolved via email or Slack (and then the reasoning process is documented and everyone can re-read it). So why do they need to be in the same office, sending emails to the guy in the next farm cubicle? Ridiculous, and all part of keeping workers chained to a desk and miserable.

  41. FLOSS, successful projects by Anonymous Coward · · Score: 0

    What about some decent project management around whatever toolset you decide to use?

    Whenever a project becomes complex (i.e. many interfaces) the need for competent project management becomes greater, the tools don't make the project successful, its the addition of quality assurance, methods and well defined procedures that make the overall system more likely to succeed, imho.

  42. Sorry, typo. by Qbertino · · Score: 1

    It should say: "You shouldn't have different pipelines depending on location." ... of course. Sorry for the typo.

    --
    We suffer more in our imagination than in reality. - Seneca
  43. buygarcinia.co.nz by Anonymous Coward · · Score: 0

    Garcinia cambogia capsules supports weight management. Garcinia Cambogia are manufactured in Newzealand.

  44. Define "Failure" by mwvdlee · · Score: 1

    How do you know FLOSS projects don't suffer a 70% failure rate too. Or perhaps even worse.

    FLOSS projects typically don't have deadlines unless they get really popular, way after they passed the "success" treshold.
    If a FLOSS project that hasn't had updates for years a failure or a success, even though it's fully functional?

    Projects that don't meet budgets, deadlines or functional criteria are considered failed. Most FLOSS projects don't have any of these unless they already had some level of success. Most FLOSS projects die well before reaching that level, though.

    Judging by my own subjective standards of failure; most projects on Github and Sourceforge are failures. They have no code, cannot compile or have showstopper bugs and no recently activity that could remedy these problems.

    --
    Slashdot social media options: AIM, ICQ, Yahoo, Jabber and Mobile Text. Why no MySpace?
  45. I work with developers around the globe, daily... by Anonymous Coward · · Score: 0

    What is with all the nay-saying?

    - Set clear expectations. Develop good documentation around everything you do, not just around code. Develop clear communication guidelines. Don't be afraid to ask for clarification.

    - Call a turd a turd: file thorough defects for anything that does not meet expectations. Happy path quoting at low prices gets sub-par developer jobs. However, they do not keep them once true cost is calculated, when true cost is actually calculated. This goes for any team, not just the remote team.

    - If it is the situation of an remote development team that is just programmers as opposed to an engineering office, then provide very clearly documented designs and allow time for design review and code review.

    To summarize:
    don't assume. write it down. come to an understanding. don't make excuses.

    It'll make everyone involved happier in the long run

    -dam

  46. Re:Yet most coding today builds online collab tool by Anonymous Coward · · Score: 0

    There is absolutely NO reason why software teams have to be "face to face" or even in the same hemisphere let alone country.

    Not the programmers, no. But a sw project is much more than programmers. You may need extensive communication with users/testers, to get a product that is actually useful. The architects (and the programmers) must understand how the sw will be used. Otherwise, they cannot make something really good.

  47. 70% by Anonymous Coward · · Score: 0

    I don't think FLOSS project have a better success rate. Probably even worse.

      The good thing about the FLOSS fork/merge/die paradigm is that the possibility of failure is integrated in the developpement workflow.

      If there is one thing to take froml FLOSS, this might be it.

  48. Exactly! by Slashdot+Parent · · Score: 1

    How many open source efforts do you know of where there is only one version of the software? Forks are common and even encouraged! I name mysql because that's what's coming to mind right now, but there are several forks of it: drizzle, mariadb, Percona. I realize that the project has a semi-commercial license, but anyway, you get the idea. Projects fork all the time. Hell, there's a "fork" button right on github to make the process easier!

    In the commercial software world, you don't get to just hit the "fork" button.

    --
    They don't grade fathers, but if your daughter's a stripper, you fucked up. --Chris Rock
  49. Have the same avg number of business people: ZERO! by Anonymous Coward · · Score: 0

    Somehow, the vast FLOSS projects out there manage to produce working software without sales, marketing, product experts, managers, executives, VPs or any of those other people who don't actually CONTRIBUTE to writing or testing the code.

  50. Small team is 10+ people? by Anonymous Coward · · Score: 0

    10 people working on a project is pretty large for most companies.

  51. This is true by Giant+Electronic+Bra · · Score: 1

    I use a number of products like that which really don't get much in the way of updates. Even so, at least your project has a maintainer that probably answers the very infrequent question and obviously addresses any bug reports in some fashion. Lots and lots of sourceforge projects never ever release code. I expect many die at the "I had an idea" stage, but others just never really sort out the organizational or "marketing" issues (IE getting people interested and trying the code so that something grows).

    --
    "Malo periculosam, libertatem quam quietam servitutem." -- Jefferson
  52. Tiny Pieces by snadrus · · Score: 1

    Open-Source software has a number of irreconcilable differences from closed-source software that makes comparison tricky:
      - Ownership
      - Rejection of low-quality code
      - No deadlines

    A similarity:
    There are more open-source libraries on GitHub in Javascript than any other language, and quite a bit of consumption of them. Most are built & maintained by one person. Lots of components are used to build an advanced website, but each is fairly replaceable.

    My closed-source employer follows a similar process with each developer exclusively maintaining one or more tiny programs. Some of those were designed poorly to meet a schedule (by people who were let go). Now others (me) are creating replacement programs. Since each program does effectively very little, and it's well-documented for integration purposes, it's quite easy to replace entire programs outright that contain trouble. This gives us the same language freedom that open-source enjoys.
    Further, it's a revolving door. Any program that's sufficiently devoid of "company secrets" is free to be open-sourced. This makes the company "dev-community focused" which helps hiring & retention.

    --
    Science & open-source build trust from peer review. Learn systems you can trust.