Slashdot Mirror


Custom Software vs. COTS Products

andy1307 writes "Nicholas Carr, best known for setting off a firestorm with his "IT Doesn't Matter" article published in the Harvard Business Review, has an op-ed in today's New York Times arguing against the use of custom-built software in favor of off-the-shelf products. He cites the example of Ford scrapping a custom built software solution for buying supplies. He says companies, frustrated by the failure of custom built software, have taken to modifying their business processes around the packaged software solution. The most unbelievable line in the op-ed: "When it comes to developing software today, innovation should be a last resort, not a first instinct.". Most of us know of failed projects using off-the-shelf products that need minor customization. Is the track record of custom built software really that bad?"

46 of 325 comments (clear)

  1. "innovation" by zarr · · Score: 5, Insightful
    "When it comes to developing software today, innovation should be a last resort, not a first instinct.".

    Maybe this is what the author really meant to say: When it comes to developing software today, reinventing the wheel should be a last resort, not a first instinct.

    1. Re:"innovation" by beaststwo · · Score: 3, Insightful
      A really good point. I started writing software again several years ago when I realized two problems with COTS software for specialized problems:

      1. The capabilites may not be available on the market at any price.
      2. The capabilites may have such limited mass market appeal that they exist only in the outskirts of COTS packages, and are badly done and/or not supported well (remember Willie Sutton's answer to why he robbed banks?).

      It's important to realize the difference between "unique, difficult to fill" requirements and "having things just the way you want them". The latter results in reinventing the wheel.

    2. Re:"innovation" by slantyyz · · Score: 2, Insightful

      In the software development companies that I've worked in, the problem was that developers just wanted to play with the newest technologies so that they wouldn't get bored. The reality, however, was that the business solutions we needed to solve were actually quite mundane and could easily be solved with less exciting techniques and platforms.

      While I understand the desire (and need)to play with the latest bleeding edge platforms, techniques and technologies, there is a time and place for that.

      More often than not, my experience with the so-called visionary genius programmers has always been to drive a thumbtack into a wall with a triphammer. The rationale was "Sure, everyone has a thumb, but not everyone has a triphammer!" Not a problem... until the triphammer drives itself into the wall along with the thumbtack.

    3. Re:"innovation" by vsprintf · · Score: 2, Insightful

      Maybe this is what the author really meant to say: When it comes to developing software today, reinventing the wheel should be a last resort, not a first instinct.

      What the author is saying is you shouldn't build a house because there is a company that makes double-wide trailers, and one size fits all. It's more nonsense from a guy known for spouting nonsense, and that's the best reason to ignore it.

    4. Re:"innovation" by Grishnakh · · Score: 2, Insightful

      Perhaps, but why should I accept a crappy career because it might (might, not a sure thing) save some money? It doesn't matter how great a certain solution is if you can't find anyone that wants to implement it for you.

      However, considering that our custom solution only requires about 1.5 engineers, compared to the $500k-$1M/year for licensing the commercial product (which then, like SAP and other commercial products, requires extra development in their funky proprietary language, so you'd still need the engineers), I'd say my company is probably saving money in this case.

    5. Re:"innovation" by slantyyz · · Score: 2, Insightful
      For management, the reasons I give are 1) that it's expensive, and 2) it'll have poorer performance than our custom solution, and 3) it requires specialized knowledge, whereas our in-house product is written in C/C++ which it's a lot easier to find people with expertise in.

      Without knowing details about your particular situation (your argument could very well be justified), the boilerplate management arguments against your position are:
      1. What are the costs of the app versus the fully realized burn of in-house development. What about the elapsed time to deploy for each? Sometimes it's worth spending money on something I can have now as opposed to six months from now.
      2. What is the quantitative performance difference between the two solutions? If the effectiveness of the two solutions is equal (since you did say the commercial app would do the same thing), other time/cost factors may lower the importance of the efficiency criteria, especially if the performance difference is deemed acceptable.
      3. Sure, it's easy to find someone with expertise, but there is still ramp-up time to learn what was developed. That time has both tangible and intangible costs.
      But my big reason for not wanting to get involved with that commercial product? I don't want to pigeonhole my career into becoming an expert in some special proprietary product. By doing work in C/C++/Perl/Verilog, it'll be much easier to find another job if the need arises. If I become an expert in this commercial product and its proprietary language, my career is basically over. No thanks.

      While I hear your perspective, your wording sounds like you're more worried about what you need than what your employer needs, so is the rationale that you're presenting to your employer truly objective?

      Don't get me wrong, I have no problem with developing in-house (who hasn't been burned by a vendor who overpromised and underdelivered?), but all factors need to be considered. Yes, it's important to consider your employees' skill set marketability (you don't want your best people to leave), but you've also got to consider the timeliness and business impact of getting a mission-critical solution deployed.
  2. It's all competitive advantage by antifoidulus · · Score: 5, Insightful

    Any freshman course in Engineering economics can tell you that 99% of the time it's better to buy than to make. You only make what is core to your business. Ford's methods of buying parts/inventory tracking wasn't too unique, so there would have been no reason to make the software unique.
    However, if all you do is buy, you give yourself no competive advantage over the other guy who has access to the same resources as you. Ford probably has a lot of custom software in their factories because that is what really differentiates themselves from the rest of the pack(whether the distinction in this case is good or bad is left as an exercise to the reader).

    1. Re:It's all competitive advantage by freemacmini · · Score: 5, Insightful

      Even if you buy you have to write tons of custom software. Applications like SAP, Seibel etc are not like a word processor where you just install and launch, they are more like application frameworks where you "script" using some proprietary language to make the application do what you want. Most corporations who have deployed these types of applications have a team of developers who do nothing but code in it all day long. Check monster.com for SAP or Seibel jobs and see. Of course these "applications" give you a ton of functionality and maybe it's better to start with that then to roll your own but I think it's a tough call. They cost millions and take months if not years to implement. Finally there is no shortage of companies which tried to implement a monolithic system and gave up after spending tens of millions of dollars. Spectacular failures are not uncommon.

    2. Re:It's all competitive advantage by plumby · · Score: 2, Insightful

      Depends on what type of system you're after, really.

      It's fine for word processing systems (and I'd like to think that not too many companies think that building their own word processor is a sensible option, so that leaves buy v FLOSS), but there's not (for example) many FLOSS credit card management systems available out there.

      Probably the only sort of area that I've come across where there's a realistic choice of any of the three options (buy v build v FLOSS) is content management tools.

    3. Re:It's all competitive advantage by 16K+Ram+Pack · · Score: 2, Insightful
      A lot of "outsourced" software is really hacked like mad. Often, someone will want a product, and a software company will have something sort of close, but the fundamental problem can often be the data model.

      So, instead of rewriting to reflect the bus. requirements, they shoehorn the data into the old system. I've seen this shit frequently.

      Another problem I've seen is that components/packages etc are only any good if they are truly that. Once you ask a company to modify the code for you, it's really no longer a package. You lose all the benefits of changes being reflected in all versions.

    4. Re:It's all competitive advantage by archen · · Score: 3, Insightful

      I think the growing problem with "off the shelf" software is inflexibility. Often you end up with software systems which do not do what you really need them to and you can end up spending a considerable ammount of resources trying to get what you need out of it. The main problem with this is that smaller software companies that address these needs are getting harder and harder to find, while larger software companies are only interested in big generic systems they can market to everyone.

      If you can find off the shelf packages that do all you need them to or are easy to extend, then yes; off the shelf components make sense. But realistically, a large ammount of software does not meet these requirements. And that's assuming that you can even GET off the shelf software to do what you need.

  3. Are you a software company? by jafo · · Score: 4, Insightful

    The first thing you should think about before deciding to develop software rather than purchase it is: Is our organization a software company? If you aren't a software company, what makes you think you can successfully deploy a software project?

    I developed this opinion over a number of years working for a Fortune 500 telecommunications provider. For political reasons, most of the developers had been promoted internally from other jobs. So now we had 30 people thrown at a project, only one of which REALLY loved the work. So there were a bunch of rather ordinary developers working for years on this "next generation" project.

    In other cases I was supporting products developed by another division of the company. These products ran part of the order processing system, but were so buggy that the two of us supporting it literally couldn't take lunch at the same time because various components required constant maintenance.

    I've come to the opinion that under all but the most extraordinary circumstances, a company should not work on developing custom applications in-house. They should either farm them out to a development company, or they should adjust their processes to work with existing Commercial Off The Shelf (COTS) applications. Concentrate on your core business and you're probably better off. If your core business is not software, you probably can't do a successful software project.

    Sean

    1. Re:Are you a software company? by alan_dershowitz · · Score: 4, Insightful

      I've wasted thousands of man-hours messing with our in-house fee calculation app. Instead of just buying Oracle Financials, we had a bunch of PL/SQL hackers write a giant, poorly documented, database-driven general ledger. Fantastic. I'm sure someone thought we were getting off cheap, but I can't even hope to calculate how much money we've lost over the last 7 years due to maintenance and bugfix, not to mention lost productivitly due to the inflexibility of a system built by people that aren't even experts on accounting.

      The problem is that it's easier to convince bean counters you can make a "lean" custom app that only serves our needs _right now_, because it will cost less RIGHT NOW, than an expensive, but reliable and flexible USEFUL package.

    2. Re:Are you a software company? by Feztaa · · Score: 4, Insightful

      At the risk of sounding like a zealot, Open Source is the obvious solution here. Most companies can just drop in a open source software package and use it as-is, much like they would for a COTS package. Companies who need customization can just make minor changes to the program, recompile, and voila! Best of both worlds -- you get custom software that meets your needs, but 99.9% of the development work is handled by the development community, so you don't have to start from scratch.

    3. Re:Are you a software company? by wildBoar · · Score: 3, Insightful

      Eek what a generalisation.

      After working on projects with several so called software houses, eg Accenture, Oracle, EDS.... I cannot recommend them.

      Whether to customise in or out of the shop is very much a case by case thing.

      Criteria for me are how dependent on IT is the company, eg a modern bank will not out source its IT.

      Are you reinventing the wheel or doing something new/specific. eg no one in their right mind will write an inhouse word processor, but a business with pretty specific needs or requirements will be hard pushed to find something on the market.

      The larger the company the more economic sense it makes to have IT internal. There is a point where a critical mass of expertise can be maintained economically in house. This should know the business better and have a sense a better sense of responsibility to the company.

      The big problem with in-house projects is that they are often mismanaged by people put in charge inappropriately. They have unrealistic goals and expectations and unrealistic budgets.

      The big problem with out-sourced/so called standard products are that they often don't do what you think they do. They are inflexible. Any changes/special requests cost a fortune and suffer the same problems as the product itself. Not to mention interfacing problems.

      As to my FP. This in some ways represents a management by FAD. Rather than managing case by case (ie doing their job) lets generalise and do everything the same (everyone else is doing this it must be right). I have seen large IT dependent comapanies out source/standardise on products because it is 'what they should do' despite evidence to the contrary. Even after several disasters and a huge extra spend they keep going. They are scared to admit their mistake and have to manage/take control.

      If you out-source or buy a product then it was the other guys fault - right !

    4. Re:Are you a software company? by barzok · · Score: 2, Insightful
      Even after several disasters and a huge extra spend they keep going. They are scared to admit their mistake and have to manage/take control.
      That's the key. Most management is still stuck in decades past. They can't admit they were wrong, because they believe that doing so would doom their careers. They believe that management must be infallible and if it ever falters or admits to a mistake, disaster will ensue.
    5. Re:Are you a software company? by Anonymous Coward · · Score: 1, Insightful

      Even if you _are_ a software company, you probably can't deploy a successful software product.

      If you are to deploy a successful software product, you are most likely to be someone who knows the core business of the end user. You also need to be someone who knows how to fit the pipes together, but the IT industry is filled with plumbers who know everything about pipes and threads, but who have never even seen a bathroom.

      My two cents.

    6. Re:Are you a software company? by Anonymous Coward · · Score: 1, Insightful

      Unfortunately, most Open Source software is written for standalone webhosting type situations ("LAMP" etc) and not for "enterprise integration".

      Very little oss stuff supports Oracle/MSSQL, LDAP/AD authenication, web service or Java interfaces, and other kinds of stuff that corps write into the requirements.

    7. Re:Are you a software company? by k12linux · · Score: 4, Insightful
      Very few OSS licenses (do any?) require you to release changes back unless you are distributing your changed apps to others. Even the GPL which MS likes to call "viral" doesn't require you to release a single change you make for use within the enterprise so long as you don't distribute your changed software outside of your enterprise.

      And a reply to the person who claims that "Very little oss stuff supports Oracle/MSSQL, LDAP/AD authenication, web service or Java interfaces. Actually quite a few do support major commercial DBs and many which need authentication also support LDAP/AD. Even if they don't, support can usually be added without too much additional effort using avilable libraries and APIs.

      A fair number of FOSS software was written by/for enterprises who realized that maintaining it themselves was not practicle so they released it as OSS. And guess what... many FOSS projects aren't being developed by some computer geek in his basement but instead are the results of programmers being *paid* to do the work. According to a recent Newsweek article, currently as much as 90% of the patches for the Linux kernel are being submitted by people who are being paid to program.

      IBM has over 600 programers working on FOSS projects. If IBM isn't "enterprise" aware then I don't know who would be.

    8. Re:Are you a software company? by Grishnakh · · Score: 2, Insightful

      I've looked at this, and the one serious problem that my employer has with using OSS is the GPL.

      The simple fact is, at least with the nature of our particular business, any internal app has the potential to become a product that we sell at some point in the future. With this in mind, the GPL simply doesn't work. The bosses worry that if any of the tools that support our product become public domain, they can be snatched up by our competitors, thus erasing advantages our solution has over the others.


      Obviously, neither you nor your bosses understand the GPL.

      First, if your internal app isn't linked to any GPL applications, then you can put any license you want on it. Now, suppose you were to place it under the GPL, and sell it this way. This is not "public domain" (if you've been on Slashdot long enough to have a 5-digit UID, you should know this by now). The only stipulation is that anyone you sell the product to, must be allowed access to the source code as well. This does not mean they can re-sell or give away the app; but they do have to give you any changes they make.

      Now, if you were thinking of releasing the app publicly, so that you could benefit from the nameless hordes of programmers working for free, and then releasing that for profit, then too bad. You can't take advantage of the public's free contributions and then sell them. This really should be obvious. Either do it all yourself and sell it, or release it publicly and let other people help you develop it. You can't have it both ways.

      The bosses worry that if any of the tools that support our product become public domain, they can be snatched up by our competitors, thus erasing advantages our solution has over the others.

      You need to decide what your company is in business for. Is it to sell product X, or to sell software that you used to help you sell/make product X? OSS simply doesn't make sense to companies like Microsoft, because their whole business is the software. But most companies don't make software; they make something else, but they have a few programmers on hand to make software that helps them make their own products more efficiently. If all those programmers worked a little bit on publicly-available OSS projects that all these non-software companies need, then they get to cut out the software companies. This might mean they're sharing their software with their competitors, but in the end it benefits them both, because they're both working more efficiently, and not wasting as much time and money on something that's not part of their core business. If this software isn't part of your core business (and probably won't be extremely profitable if you tried to make a new business out of it), then stop hurting yourself by keeping it secret.

    9. Re:Are you a software company? by SJS · · Score: 2, Insightful
      I've come to the opinion that under all but the most extraordinary circumstances, a company should not work on developing custom applications in-house. They should either farm them out to a development company, or they should adjust their processes to work with existing Commercial Off The Shelf (COTS) applications. Concentrate on your core business and you're probably better off. If your core business is not software, you probably can't do a successful software project.
      I have an instictive bad reaction to advice that includes "adjust ... processes to work with existing ... applications". Bending your business to fit some piece of software instead of bending the software to fit your business doesn't seem like a good idea to me.

      However, that is not necessarily an argument against COTS, just an argument against changing things to fit the software instead of finding the software that fits.

      I don't disagree (much) with the major premise -- companies should only rarely develop their own software -- but I think that the size of the company should also be taken into account. A Very Large company should probably maintain a staff of programmers that understand and maintain the software; being beholden to COTS (can vanish in an instant, or be purchased by competitors) or an external development company just seems like a Really Bad Idea.

      As the company gets smaller, the need for software decreases, until at some level, one person is able to run a business without any software at all. Somewhere between the two extremes there's a crossover point.

      In the ideal world, as the cost of software exceeds the cost of a programmer, a company could employ programmers to create, maintain, and adapt open-source software, add a layer of the proprietary business logic, and they'd get the best of COTS and local development, and everyone would win.

      In other cases I was supporting products developed by another division of the company. These products ran part of the order processing system, but were so buggy that the two of us supporting it literally couldn't take lunch at the same time because various components required constant maintenance.
      Did not the maintenance make the product better over time? Or do you mean that you had to do things like "whoops! module XYZ crashed, restore from tape, remove the offending record from the input data set, restart" ?

      And advantage of local programmers is that bugs can be fixed when discovered in something approaching reasonable time, presuming that the source is available, the build environment built, and a non-junior programmer has had time to understand the code. The disadvantage is that a non-junior programmer might get bored and "improve" things...

      An external development/maintenance shop is a sort of happy medium -- but perhaps the most fragile solution. You're tied to a specific, customized, optimized "solution", maintained by a company that can go out of business for a variety of reasons, or get so much business that you become a minor customer and you lose the flexibility and customization as the major customers direct control.

      Or hire away the best developers.

      --
      Pick One: http://www-rohan.sdsu.edu/~stremler/sigs/sigs.html (Note - disable Javascript first!)
    10. Re:Are you a software company? by farquharsoncraig · · Score: 2, Insightful
      I've come to the opinion that under all but the most extraordinary circumstances, a company should not work on developing custom applications in-house. They should either farm them out to a development company, or they should adjust their processes to work with existing Commercial Off The Shelf (COTS) applications. Concentrate on your core business and you're probably better off. If your core business is not software, you probably can't do a successful software project.

      I guess that pretty much invalidates the whole premise of Bell Labs then. AT&T was a software consumer when they developed UNIX which they did because the alternatives were inadequate.
      See also http://www.research.att.com/~bs/bs_faq.html#why-AT T
    11. Re:Are you a software company? by Grishnakh · · Score: 2, Insightful

      We sell product X, but we also provide (gratis) support applications with product X that make it easier to use, speed up workflow with it, etc. Although they are provided free of charge, they are most certainly features of the product, even if they aren't the part that we actually charge for. Given that, we have a vested interest in not taking any advantages our solution might have over a competing product and giving them away to our competitors for free.

      This is not very uncommon, either. Consider all the crap that you get for free from workstation vendors (I have stacks of CDs full of this kind of stuff from Silicon Graphics in my basement) or Windows Media Player. They are totally free of charge for customers (and, in WMP's case, customers of a certain corporation that they desperately need to keep in business), but neither company is going to be making it easy for competitors to port these perks to their platforms. It's the same thing.


      Sounds like you're making the same mistake that SGI did. Where is SGI's business now? In the toilet. IBM, on the other hand, is doing great. They figured out that software is not their main business, and it was something that sold or gave away to support their hardware sales and support services. So they've been giving away a lot of work to the OSS community, and prospering.

      Your problem is that you think that giving away some software is somehow going to help your competitors at your expense; you think it's a zero-sum game. This is not necessarily the case. By giving out the source to your software, which is really only something you give out to help your hardware customers, you'd probably get help from customers who want special custom patches, and you might also get more customers, when they figure out they're better off with your product because, even if your company goes belly-up, they'd still have the source to all the software, and could still get support for it. It might help out your competitors too (though this really depends on how intimately tied together the software and the product X are), but the other benefits to you would probably outweigh this greatly.

      Of course, I could be wrong too; each of these cases has to be looked at individually.

  4. Egads by onyxruby · · Score: 2, Insightful

    Look, most COTS is crap, most homebuilt apps are crap. It's all a matter of finding the right tool to do the job. One isn't neccasarily better than the other. It would be foolish for a financial firm to design their own own in-house word processor for example. However they would almost certainly need their own in-house software to handle a lot of the back of the house. What I've often seen get ugly though is when people design their own custom software around COTS. If you do something like that and the COTS house says they won't support it you can be at their mercy and they don't have to do a damn thing. I'm on one project now using such a solution and the project has lost millions - and their contractually obligated to fill it out. The important thing one way or another is to set design limitation early and stick with them. The second important thing is to listen to the people who are going to use the software on a day to day basis when they say that something is a problem or would be useful. Failure to appease the people using the software can often carry more weight than success at appeasing management and their lofty goals.

  5. Yes by briancnorton · · Score: 2, Insightful
    Is the track record of custom built software really that bad?"

    Custom software projects fail constantly because the developers are morons or lazy scam-artists, the requirements aren't specific, and the company doesn't realize that a COTS solution exists. Millions of employees could be replaced with good custom software, saving businesses BILLIONS, but only if they build it smart, which doesn't often happen.

    --

    People who think they know everything really piss off those of us that actually do.

  6. Wow by finkployd · · Score: 2, Insightful

    It is not often that I read a position paper in which I am nearly 100% in opposition to every idea expressed.

    One of my professional pet peeves is people who feel it is better to identify a problem, then keep redefining the problem until it matches a prepackaged solution. The "if all you have is a hammer" syndrome at its worst.

    Finkployd

  7. Custom development realities by JacobO · · Score: 4, Insightful

    Unfortunately, at the moment few organizations are willing to pay enough for custom development (or system integration) to cover the actual costs, so to get any business at all, IT/SI/CS companies bid too low, and quality suffers (or they go out of business fast.)

    If organizations were willing to spend what it actually costs to provide custom applications, then they wouldn't be so disappointed. I would include in "what it actually costs" things like people skilled in user interface design, and of course adequate project management, things that really matter to the customer.

    Aside from that, we as IT professionals need to set these expectations much better. Customers really believe (because the sales guy blew so much sunshine up their asses) that it will all be perfect and on schedule. No one mentions (and few customers are perceptive enough to notice) that these projects are bid on before any of the requirements process has been performed, and the costings that go into the proposal are wildly inaccurate. But, no customer is going to go for a time and materials contract when some poor software company will offer fixed-price.

    I am a big fan of iterative projects, with well understood features to be included in each release (that can be well costed out.) It's harder to go astray and the customer is getting incremental and obvious benefits from the money they are spending.

  8. Depends... by j_kenpo · · Score: 2, Insightful

    You can't say that that one solution will fit all scenarios. The reason most projects fail is not because of "custom" software or off the shelf products, its due to piss poor planning and incompetent project managers. There are many factors to consider such as size, scope, budget, resources, and requirements just to name a few. If project managers took the time to capture the real requirements and state meaningful objectives and expectations, then using either route would become clear. For example (very general), if the project calls for tracking the amount of training people have taken in an organization, then using almost any off the shelf Learning Management System would work as opposed to building a custom database to do that. Size of the organization also comes into play. A small business is not going to be able to afford an enterprise level LMS vs. a large company like Boeing or Ford. If the project would call for a system modeled around the companies specific policies and procedures, then custom software might be a more ideal solution. There might be particular legal or compliance rules that constantly change and an off the shelf product may not keep up to date with these quick enough.

  9. The pendulum continues to swing... by bigtallmofo · · Score: 4, Insightful

    We are likely moving into another time period of preferring outsourcing/buying off-the-shelf software over insourcing. Then 5 years from now, some bean counter will yell "Eureka! Why are we paying these outside companies money to develop our software? We can save MILLIONS developing it ourselves!" And then the pendulum will swing once again toward insourcing.

    This has been going on for decades and will continue to go on.

    --
    I'm a big tall mofo.
  10. Mostly true by JDOHERTY · · Score: 2, Insightful

    Even dedicated car mechanics rarely try to make their own parts.

    Of , that said there are lots of patient talented folk who do.

    Custom written software is more specific, often nicely tailored to the job and alot more difficult to support in a large integrated environment. Programmers don't hang around an old job site forever any more than construction crews do and wheather it's back to Bombay or San Fran getting it fixed 2 years down the line is alot easier when it comes with a dedicated external support team.

    The future of software engineering is the same as that of any other industry - make hay while the sun shines and get used to it.

  11. Third option-- light customization of open source by einhverfr · · Score: 4, Insightful

    My company offers software customization services where appropriate, but we try to avoid reinventing the wheel where we can. Current such contracts involve adding features to SQL-Ledger's point of sale system, and modifying the same software for another customer to comply with Greek tax law reporting.

    With open source software, you can lightly customize it to meet business requirements, and it is often less expensive than paying for COTS anyway. For example, another customer of ours (a restaurant) has a third party POS system with 5 terminals which cost them $30K. I could impliment a working system for them for maybe a third that and still meet their requirements (with required customizations).

    I agree that building a program in-house from scratch should be a last resort, but, but hiring someone to add features to existing open source solutions is often less expensive than even commercial vertical solutions.

    Also, with UNIX software, often the customization really just involves stringing a bunch of small useful utilities together in a useful way. Conclusion is that the article primarily applies to programs that run on Windows.

    --

    LedgerSMB: Open source Accounting/ERP
  12. Pretty Accurate by RevMike · · Score: 2, Insightful

    Large innovative projects are frequently doomed to fail. One major problem is that it is very difficult to staff a project properly. It takes very bright developers to build innovative things. It takes a lot of very bright developers to build very large innovative things. The odds of being able to collect the kind of talent needed are often very slim.

    The top 5% developers are almost never found on the unemployment line, so you can't hire them from there. They are almost never working for body shops, so you can't find them there. Generally they are 1) comfortably employed somewhere else, and not interested in jumping, 2) working for a commercial software house and not interested in working for a company where they are "overhead" and not the center of the business, or 3) they are self employed and making much bigger bucks freelancing than they could be paid within a corporate job.

    Most companies have a few of these highly qualified people. The best way to insure successful projects is to make sure that there are only as many innovative projects as can be staffed by your innovative people. A large business changing project is out of reach. But a several small to midsize projects can also transform the business, and can be executed by the staff of innovators already on hand.

  13. The 99% solution by cperciva · · Score: 2, Insightful

    There's a mantra which covers this perfectly: If you can solve 99% of the problem with 1% of the work, it's probably a good idea.

    The large, expensive, and failed projects cited were run in what is a very typical manner outside of computing: A group of people sat down, decided exactly what they'd like to have, and then they hired another group of people to produce it.

    The better approach is the 99% solution: Decide approximately what you'd like to have, then look around and see if there are any existing solutions, or parts of solutions, available which give you approximately what you want.

    This is one way that computer software is very much different from "real world" products: If you're building a house, customizations aren't going to change the cost very much, since most of the cost goes into materials and fixed labor costs. With computer software, on the other hand, the materials and fixed costs are zero, and it is entirely possible for a 99% solution to exist at 1% of the cost.

  14. I have seen both ways by ninthwave · · Score: 3, Insightful

    I have seen major companies with bad IT hiring policies create custom software nightmares. A company I worked in created VB applications for all their needs, but to get a programmer, they hired internally based off a test. What they got where college grads, mostly liberal arts majors, who could fill out forms. This created a culture of tonnes of custom solutions for each process that needed addressed. No real it vision and a multi million pound clean up when they outsourced their it.

    I have also seen in the same company money wasted on COTS software that didn't run on their base platform, and then effort gone into updating the platform to get the COTS software to work. This broke in house and other COTS software, and at the end of the day this piece of software was only pushed by the Finance department.

    COTS is good for general business purposes.
    Custom is good for your business specific processes.

    If you are not an IT company don't do either.

    Get an IT company to do this for you.

    The outsourcing of IT, in the sense of the service model that is happening I believe will actually save some of the horrible waste I have seen in non IT companies hiring the wrong people, pushing the wrong projects and wasting focus on their core business.

    I agree COTS will never cover all the computing needs of companies. But for bespoke solutions you have the service vendors there to give you that without any of the hassles of doing it completely in house.

    --
    I was thinking of the immortal words of Socrates, who said: "I drank what?" - Chris Knight (Val Kilmer)- Real Genius
  15. CarrBomb by Doc+Ruby · · Score: 4, Insightful

    Carr is making a career out of his "iconoclastic" announcements. They're basically repackaged IT truisms, like "better to buy than build", which is the big kerfuffle here. His main asset is the PHB fear of discovery of their total ignorance of IT or business, beyond keeping their jobs and defending their budgets. A stable IT industry would welcome Carr's attacks, and use their buzz to get their non-IT bosses to accept some of the reasonable policies he sensationalizes. It's weird for Harvard to engage in this kind of hyperbolic fearmongering, but maybe that's just their idea of "innovation" over there.

    --

    --
    make install -not war

  16. It's not the software, it's the software dev by Bookwyrm · · Score: 2, Insightful

    I suspect the question is not whether the track record of customized-in-house software is bad, but what the track record of companies who do not have good software development skills/project management/methodologies is bad. (i.e. it's not the end product, it's the costs/delays/screwups in trying to get there.)

    It sounds like there could be a third branch here between just buying COTS and trying to development something yourself -- work with a consulting company to develop a customized solution for/with you. That is, rent/acquire the necessary software development expertise/experience needed to get a properly done custom solution.

  17. Generic business apps apply here by Anonymous Coward · · Score: 1, Insightful

    HR
    Accounting
    Inventory management
    Payroll
    etc.

  18. In a nutshell by Todd+Knarr · · Score: 3, Insightful

    My position on custom-written vs. COTS solutions is pretty much this: "If the problem's in our code, I can fix it. If it's in someone else's binaries, we're SOL.".

    If the COTS software exactly fits the problem and has a solid record of not having bugs/problems, it's probably cheaper to use it than to write, debug and maintain your own. On the other hand, most often the COTS software doesn't exactly fit the problem at hand. This is especially true when the problem at hand involves differentiating your offering from everyone else's by doing things differently (hopefully better) than everyone else. In those cases custom-written software at least offers you the opportunity to decide whether it's worth it to make the tweaks. With COTS software it doesn't matter, because beyond the customization built-in you can't change it no matter how much it'd be worth it. Same things with bugs: with custom-written stuff you get to decide whether it's worth it to fix the bug, with COTS it doesn't matter whether it'd be worth it because you can't.

  19. I agree... by wasted · · Score: 2, Insightful

    COTS is good for general business purposes.
    Custom is good for your business specific processes.
    If you are not an IT company don't do either. Get an IT company to do this for you.

    The tricky part is communicating business requirements to the IT company. Since the IT company works in the IT industry instead of the customer's specific business, the IT company may or may not understand what the business really wants. If the business's contract negotiators aren't familiar with the requirements or the nuts-and-bolts of the business, they may not even know what is really desired, which makes miscommunication even more likely.

  20. COTS vs Custom by Liquidrage · · Score: 5, Insightful

    Often the biggest issue when considering COTS vs custom software is existing processes.

    Typically, when we evaluate COTS products 9 out of 10 are missing *something*. Not to mention 8 out of 10 cost more then it would take to write from scratch because 50% of the COTS offering wouldn't be used so doesn't have to be developed when writing custom.

    The existing processes is really the key though. Too often the person who needs the software has the money to get it (either COTS or custom) but not the authority nor the desire to change an existing process to fit a COTS offering. This is a more of a problem with bigger organizations. And it hurts the chances of using a COTS product. But let's not pretend there are not some cases where changing the process is not sensible nor possible.

    If your mission is housing inmates, do you think generic COTS inventory software is really going to suffice? No. The only commercial offerings are custom software written elsewhere that the original developers will sell you. Basically they'll gut the code that doesn't fit and shoe-horn in some new code. Thanks, but I'll pass on that.

    Also, another area where COTS products typically struggles is interfacing with existing software and data. Commercial app that tracks training? Easy to find. One that will leverage existing data such as an HR database? Well you just lost 90% of your potential COTS prodcuts and those other 10% are going to be just as expensive and take just as long to develop most likely.

    And lets not forget that in most places, COTS products are the majority of software. We don't write word processing application, we use MS Word. We don't write a web browser from scratch, we use an existing one. Etc.. But when it comes down to supporting an existing process, use it where it makes sense.

    Now, as to custom software sucking...
    A lot of it sucked. I believe the best thing that ever happened to custom software was the trend of making it web-enabled. Whether it was PowerBuilder, C++, VB, FoxPro, etc..., too much custom software built in the 90's sucked because of their interfaces. I've seen literally 100's of custom client server software written in the 90's and about 95% of them suck and allmost no two act or look alike. Of course this can be overcome with strong development methodologies. But in the real world not every place nor project is wrapped under a strong methodolgy. And very few projects I've done for custom software and anything even close to a working UI team. Not to mention that in the changing software world technology changes fast and even the best and most disciplined development teams can have interfaces that look nothing alike even if they were developed just two years apart.

    To me the greatest strength of web-apps isn't ease of deployment. It's that is forces developers to write simple interfaces. Web apps written by the same software teams generlly do look alike. And even where they don't they at least act alike. MS tried came to us trying to sell us on the ability to use .NET to write regular windows forms apps that are run in the browser. Why I asked? So we can go back to the days of complicated UI's that confuse the user and make maintanence when you were the original developer nearly impossible? No thank you. I understand there will always be applications that have requirements that are not suited for the web. But they are, I will use that. I will keep my interfaces as simple and clean as possible and users that are not 1st and foremost computer people will continue to be able to operate them without a steep learning curve.

  21. Are you a coffee house? by ClosedSource · · Score: 2, Insightful

    The first thing you should think about before brewing coffee rather than purchase it is: Is our organization a coffee house? If you aren't a coffee house, what makes you think you can successfully brew coffee?

    Seriously, all companies do work that they are not in the business of doing. As is usually the case, you have to determine the best course of action on a case-by-case basis.

  22. are you a restaurant? by kpharmer · · Score: 4, Insightful

    > The first thing you should think about before deciding to develop software rather than purchase it
    > is: Is our organization a software company? If you aren't a software company, what makes you think you
    > can successfully deploy a software project?

    Right, likewise - nobody should make their own food at home: there are plenty of restaurants out there that can make it for you. Think about it - you can save $20,000 for the cost of a kitchen on your next hour - and then spend an extra hour a day at work instead of making dinner.

    Hell, why even wipe your own ass? Are you a programmer or an ass-wiper? You can probably find someone to wipe your ass for $20.

    Of course, there are benefits to sometimes doing this stuff yourself:
    - less likely to get screwed by a software integration company
    - ability to exploit internal agile methods, rather than being stuck with more expensive waterfall methods due to contract language limitations.
    - ability to build a solution that is exactly what you need, rather than forced to make do with a COTS app - that may be very different than what you need.
    - ability to ensure that your hamburger wasn't dropped on the floor
    - ability to ensure that your ass is wiped nicely.

    Of course, if you are going to do your own software development - it is essential that you understand the risks associated with this. Get a few really senior, experienced, and talented people. Don't even bother writing your own solutions if you just want to hire idiots. Of course, there's nothing revolutionary here either - don't skimp on talent in engineering brake systems either...

    1. Re:are you a restaurant? by Anonymous Coward · · Score: 1, Insightful

      "The problem is that it's really easy to hire a couple of hotshots fresh out of school who are just sure that they know java and websites so how hard can an accounting and inventory app be?"

      And this situation differs from software companies in what way?

  23. Re:Sounds like a management problem...AGAIN. by symbolic · · Score: 2, Insightful

    So now we had 30 people thrown at a project, only one of which REALLY loved the work.

    I love reading stuff like thie. If you remember the age-old adage, "Garbage in, garbage out," the results shouldn't be any surprise. The company has, or hires inept management, who then has or hires inept employees, and somehow out of all this chaos expects some kind of magical force to take over and produce something great. It doesn't happen.

    Before a company beings lamenting over a bad experience with custom software development, they sould really focus on how much they contributed to the problem. Before they even begin, they should ascertain how much they are willing to contribute to a positive outcome. There are so many ways a software project can be derailed, and I'd guess the inability to manage it effectively is one of the most prevalent.

    Also, I can't help but wonder...how many of the people, OTHER than the one who loved his work, had four-year degrees?

  24. A tale of two by BCW2 · · Score: 2, Insightful

    In High Point, NC there are two companies that illustrate this issue.
    Henreddon Furniture: Needed to improve their DB. Brought in Oracle and spent 18 months with an Oracle team fitting it to their business. Kept adding bells and whistles and went bankrupt without ever putting the Oracle solution in production. Bad planning by bad management? Absolutely. They never knew when to stop adding features and just do what they started. Wasted close to $5 million.
    Culp: Still using programs written by in house development team. Some of these were originaly run on an S36 IBM and now run on an AS400. All software has been written, maintained and upgraded/updated in house. This is one of the very few textile companies based in NC to still show a profit consistantly in a very depressed industry (due to foriegn competition).

    Why anyone should believe this: I had two instructors at the local Community College, one was on the Oracle team at Henreddon and went back to school for his PHD after the collapse, instead of moving halfway across country for the next job. The other is the head programmer at Culp and teaches at night. They know what they are talking about. One common theme: Spend the most time in planning, set the boundries, parameters, etc, then write code. Once codeing starts no changes should be allowed (by management) until the test stage.

    --
    Professional Politicians are not the solution, they ARE the problem.
  25. One word ... WalMart by Anonymous Coward · · Score: 1, Insightful

    Walmart is the killer app of inhouse IT. Any industry which uses computers can and should develop a competative advantage with custom software. Any one who uses COTS software in an area where some competitive advantage could be derrived is just giving that away.