Custom Software vs. COTS Products 325
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?"
"innovation" (Score:5, 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.
Re:"innovation" (Score:3, Insightful)
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 fil
Re:"innovation" (Score:3, Insightful)
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 t
Re:"innovation" (Score:3, Interesting)
I work as a software engineer currently, designing and building a product for in-house use. However, there's a commercial product which could probably be used to do the same thing; it includes its own programming language which is somewhat similar to C, and designed to hook into our simulator software the way my in-house product does.
Re:"innovation" (Score:3, Insightful)
Without knowing details about your particular situation (your argument could very well be justified), the boilerplate management arguments against your position are:
Re:"innovation" (Score:3, Insightful)
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 e
Re:"innovation" (Score:2)
yeah, but this guy doesn't know enough about IT to understand that most commercial IT wheels come attached to a commercial IT locomotive engine.
For example, when you only wanted a utility to copy data between databases, and you end up stuck with a $250,000 commercial ETL solution - you are hosed:
- It's going to cost you $75,000 in annual licensing fees
- will cost more to add to more servers
- will probably require training
- configurat
Re:"innovation" (Score:3, 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.
Re:Generic business apps apply here (Score:2, Funny)
Is that what Enron did? :)
Re:Generic business apps apply here (Score:2)
EOL
It's all competitive advantage (Score:5, Insightful)
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).
Re:It's all competitive advantage (Score:2)
Re:It's all competitive advantage (Score:5, Insightful)
Re:It's all competitive advantage (Score:2, Interesting)
Re:It's all competitive advantage (Score:3, Insightful)
If you can find o
Re:It's all competitive advantage (Score:3, Insightful)
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.
Re:It's all competitive advantage (Score:2)
Re:It's all competitive advantage (Score:2)
And any graduate course in engineering economics can tell you that there is no choice of buy vs make for large enterprise apps: the choice is buy & customize vs make.
And given that most enterprise apps have been built as monolithic software rather than truly distributed components - customization is expensive, risky, time-consuming, and difficult to maintain.
Not to say that COTS softwa
Re:It's all competitive advantage (Score:2, Insightful)
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
Re:It's all competitive advantage (Score:2)
From articles posted in VR and CAD journals, Ford's advantage is being able to having the lowest design costs per product (measured in $ per day).
Re:It's all competitive advantage (Score:3, Interesting)
I disagree. Whether you're buying software or producing it in-house, the actual act of obtaining functional code is barely even half the battle. Putting the code to proper use, i.e., implementing
Are you a software company? (Score:5, Insightful)
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
Re:Are you a software company? (Score:5, Insightful)
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.
Re:Are you a software company? (Score:5, Insightful)
Re:Are you a software company? (Score:2)
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.
For
Re:Are you a software company? (Score:3, Insightful)
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.
Obvio
Re:Are you a software company? (Score:2)
Actually, I think I was wrong here. They only have to give source to any changes they distribute. But it'd be silly of them to not give back any changes, since they'd effectively have to maintain their own separate fork.
Re:Are you a software company? (Score:3, Insightful)
This is not very uncommon, either. Consider all the
Re:Are you a software company? (Score:2)
Re:Are you a software company? (Score:2)
Yeah but what if it's open source that requires you to release your changes back to the community?
Yes, you may want to avoid open source software with licenses that require publication. Fortunately, there are very few such licenses (I can't think of one off of the top of my head), and very little software published under them.
Re:Are you a software company? (Score:5, Insightful)
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.
Re:Are you a software company? (Score:3, Insightful)
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 requireme
Re:Are you a software company? (Score:3, Insightful)
Are you a coffee house? (Score:3, Insightful)
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.
are you a restaurant? (Score:5, Insightful)
> 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...
Re:are you a restaurant? (Score:2)
Most people have a pretty good idea of how to wipe. The number of people who can successfully write software is pretty limited. You might compare it to "why should you hire an airplane pilot... why not just sit at the controls and cross your fingers"
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 w
Re:are you a restaurant? (Score:3, Informative)
But seriously, the formula for success that I observed for many many years in the game is - custom applications built on OTS components/frameworks, preferably OSS frameworks.
This gives you best of both worlds - good, custom solution and speed of development based on not reinventing the wheel.
Re:Are you a software company? (Score:3, Insightful)
I have an instictive bad reactio
Re:Sounds like a management problem...AGAIN. (Score:3, Insightful)
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 d
Might be true for very large systems (Score:3, Interesting)
Re:Might be true for very large systems (Score:2)
I work for Health Net, a fortune 200 company. I tell you there's tons of custom stuff. It is supposed to give us an edge on the competition, but some of that stuff is so costly to maintain, one needs to ask oneself.
On glue elements: stick to the unix philosophy: make each program do one thing well, and ascii only.
Re:Might be true for very large systems (Score:2)
Re:Might be true for very large systems (Score:2)
(xml-rpc, no unicode. ASCII 127) ascii is safest for process handling, really. But yeah, point taken, unicode as much as possible.
a perfect example - Nike and i2 (Score:2, Informative)
Yes it is that bad. (Score:3, Interesting)
I love opensource, but between it and toy languages like visual basic it's made an entire cottage industry of 'traveling-snake-oil-salesmen' computer hacks.
The real problem (Score:5, Interesting)
Most contractors can't run a business either.
I love opensource, but between it and toy languages like visual basic it's made an entire cottage industry of 'traveling-snake-oil-salesmen' computer hacks.
I don't dispute this. My company offers software customization services, and we have a few large contracts we are working on at the moment. We sell such services also with a support contract, and it is usually several meetings before we have the required understanding of the requirements to actually build the solution. In general, unless I understand how something is going to be used, I won't try to build it. Even then, any changes which need to be made over the first year of operation if they are due to it not meeting the original requirements are offered free of charge. This is our standard policy. We even pro-actively look for problems after it is deployed (in at least one case, we had to re-engineer part of a solution due to a misunderstanding about requirements!
We also try to sell training and workflow documentation along with the software customization. We do not, however, overly document our code because it is often easier to debug by reading code rather than comments (comments are used to tell the programmer *why* you did something, not *how* something works).
Also, we always contact the open source project maintainers before making the changes and offer to contribute back the additions to their source tree. This is because it makes it less costly for us to maintain if the project accepts our patches.
In general, we find that our customers are satisfied with our work. It costs less than COTS, and it fits their business more. We intend to be in business for years or decades to come, and expect our satisfaction levels to remain high.
Egads (Score:3, Insightful)
Re:Egads (Score:3, Interesting)
Yes (Score:3, Insightful)
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.
Re:Yes (Score:2)
Re:Yes (Score:2)
Comment removed (Score:3, Insightful)
Custom development realities (Score:5, Insightful)
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.
Depends... (Score:3, Insightful)
All of that and more. (Score:2)
#1. Did they even bother to collect them?
#2. From the people who actually do the work?
#3. While they were doing the work and not just what they could remember during a meeting?
#4. Did they collect them over time? Some things happen:
every day
every week
every 2 weeks
every 1/2 month
every month
every quarter
every 1/2 year
every year
#5. Did they do a sanity check of the information they've gathered?
#6. Did they do a sanity check of how management wants to handle the data? (From TF
Incremental improvements (Score:2)
So sure, don't try to jump the whole stream at once -- your testing will be hard, you'll alienate your users, you'll spend a lot of money with no progress metrics, your risk is much higher. Look for stepping stones. But where is the FBI supposed to buy COTS to automate their workload? Spooks-R-US?
Re:Incremental improvements (Score:2)
Re:Incremental improvements (Score:2)
Indeed. Add to that that nobody gets to own COTS, they only get to lease it. Big homemade software are the foundation of successful businesses such as FedEx and Wally*World.
Re:Incremental improvements (Score:2)
You can't call up your local software reseller and ask for Evil Empire IV, originally developed for the KGB.
The pendulum continues to swing... (Score:5, Insightful)
This has been going on for decades and will continue to go on.
Mostly true (Score:2, Insightful)
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 te
Third option-- light customization of open source (Score:5, Insightful)
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.
Pretty Accurate (Score:3, 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.
Re:Pretty Accurate (Score:2)
I didn't say "to
The 99% solution (Score:3, Insightful)
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.
I have seen both ways (Score:3, Insightful)
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 agree... (Score:3, Insightful)
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-an
it follows this logic (Score:2)
For every person that has a negative response to a product, they tell 10 people (provided they don't have something invested in remaining mum).
Thus, you're going to hear a lot more bitching about failures from people that didn't make the decisions.
CarrBomb (Score:5, Insightful)
It's not the software, it's the software dev (Score:2, Insightful)
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
Middle-of-the-road solution? (Score:2)
Maybe the best solution is neither just off-the-shelf software nor just custom software, but easily customizable off-the-shelf software. Of course, "easily" means barely doable by highly-paid well-trained contr
is software really different then other things ? (Score:2)
or lawnmowers: i bought a 250 dollar lawnmower from sears last year, and "badly designed" is an understatement (not to pick on sears - just an example that comes to mind)
or vacumn cleaners: for years, the american consumer had to buy house vacumn cleaners where there was a 2Cent plastic fan tht generated th
Depends... (Score:4, Interesting)
I have just advised a small company to use the small software company next door, not to build them a solution but to build them a model of two core business processes (currently on paper) in either Access or Filemaker (Yes, I know. But the ssc knows Access and Filemaker. OK?) The idea is that when they have defined the process and tested it, they can migrate to an MRP system and import the data they have created - because they will know which fields and reports they actually need, and they can more easily have a discussion about a small and flexible database than try and work their way through the options of an MRP system.
Having said that, the future may be off-the-shelf open source systems with customisation- provided someone solves the documentation problem.
Mod parent up (Score:2)
People need to understand that getting good custom software (including customized COTS like CRM and ERP) needs to be done in stages.
You figure out exactly what the requirements are. Then you create a prototype or first draft and figure out where it doesn't meet the requirements. Meet the minimal requirements first. Then make the small
Re:Depends... (Score:2)
In the ERP/MRP world, there need to be so many customisations and options that just deciding how to map the software onto existing business processes is a major challenge.
I can only speak on the SME level, but I think most of the trouble with finding an ERP/MRP compatible with your business processes comes from not doing things in a way that's easily supported by automated systems, i.e. using the wrong philosophy. Companies that haven't done ERP before have this notion that the way they do things is the
Re:Depends... (Score:2)
Re:Depends... (Score:2)
Yes (Score:2)
Not really, but the track record of project management is that bad, and project management of custom software is harder than implementing most COTS (if it's a reasonable fit).
COTS May Work Now But.... (Score:2, Interesting)
The most common problem I see is that when they do try to change, they will attempted work around their COTS. Not by designing a completely new solution but by slapping something together.
The Company (small, less then 50 people) I've started working for is paying the price for doing just that. They tried to build a MS Access Database App to work with a software prod
In a nutshell (Score:4, 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.
COTS is definitely the way to go... (Score:2, Interesting)
LEAVE IT ALONE
Too many times organizations I've been in buy a piece of COTS (using the %80 metric even) and then start tweaking and nudging and twisting - until they are hostages to the company who sold them the COTS and made the changes for them.
Essentially having built their own customized solution out of an expensive piece of COTS.
Fill in the gaps with custom software (Score:3, Interesting)
COTS won't get you there by itself (Score:2, Interesting)
The difficulty is that answers to big, complex problems usually aren't found in a box. Before someone can give you a solution, they must have first envisioned your problem.
A better strategy is to have an infrastructure upon which various solutions can be developed independently and in parallel. Take the Internet, for example: a common infrastructure with, at first, only a few solutions, but now, with millions.
COTS seldom works (Score:5, Interesting)
Everything I've experienced has taught me one very clear lesson: COTS does not work, for anything beyond a mail client or a suite of 'office' tools. Your internal business critical applications must be custom developed. And when custom developed, in-house development fares better than contracted custom devo.
I've noticed that COTS always seems to look better on paper, and starts off with a lower price tag. But even in the first week of deployment, that biz process you tried to bend to fit the software, just doesn't work when bent that way. So you start to loose business, or you have to modify the COTS software. Usually both. After a year, if you haven't gotten smarter and scrapped the COTS software entirely, and if your business unit is clever enought to stay afloat after that bad COTS decision, you find that you've had to customize it so much that it doesn't even look like the original. Oh, and surprise!, you've spent at least triple what it would have cost for an in-house development effort.
But wait, it gets worse. Eventually the COTS software just can't be customized any further, and must be scrapped. Your good developers... er, 'customizers'... see the ship is sinking. Most of them jump ship to the company that produced the COTS software, so they can do 'real coding'. Now you're doubly screwed.
corporate culture has a lot to do with it (Score:2, Interesting)
As a number of folks have pointed out, the PM/planning/Requirements gathering has a huge amount to do with the eventual success. As does the willingness of the users to actually adopt the system.
You'd hope the if you involve all of the stakeholders at the right point they will buy into the final solution, but in reality, the corporate politics can kill a technically exellent solution more effectivly than a politicall
It's Not The Software (Score:3, Interesting)
It's the management that is the problem.
It doesn't completely matter whether the software is developed in-house or customized commercial software - what matters is does the software do the job, can be it be further modified without excessive expense as the business changes, can it be cost-justified against business revenue or savings resulting from its implementation - and a dozen other standard IT 101 lessons that most managers don't seem to have learned in college...
This guy is a self-promoter whose method is very common: claim that any one solution is totally wrong and the opposite solution rigidly applied is the only possible way to solve the given problem.
In other words, he takes his cue from George Bush...
Right now at City College in San Francisco, we run a standard university admin package which is a pain in the butt. On the credit side, almost no customization (other than that allowed by the package's internals) has been done. On the non-credit side, a fair amount of customization has been done. The man who did most of that customization is looking to retire and when he does, support for those customizations will go out the window. Without those customizations, however, the package would not be nearly as useful to the non-credit division.
OTOH, the library uses an ILS (Integrated Library System) package which is out of date, and has signed a contract with another ILS provider to implement a new one. Part of the contract is that ILS provider must provide integrated access to the college admin system (for example, use the patron ID to verify that the patron is a registered student). This has been tried before in other areas without success. Most companies don't like to have to go into their "standard" package and modify it to allow integration with someone else's package because it reduces their profit on the sale to do customization. So the salesman sells the package by promising integration in the contract, then the company backs out or waters the integration requirement down in order to save their profit on the sale.
In this respect, OSS is much better since the money you end up spending for customization - and you WILL spend that money one way or the other - takes less bite out of your budget than it would if you had to pay for the software first. Better to get the source code and pay some consultant (and in OSS especially, this "consultant" may well be the original developer) to modify it than either develop the entire thing in house or pay a third party consultant for modifications on TOP of the cost of commercial software.
Somehow, management doesn't seem to grasp the simple dollars and cents logic of this.
Big surprise.
Heh! (Score:2)
COTS vs Custom (Score:5, Insightful)
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
COTS? What about FOTS? Or FoSS? (Score:2)
On the other hand, there is all this open source software available, most of which won't cost you a dime unless you need support. And, if you need software changes - as others have pointed out throughout this thread, you can have them do
"SAP Expert" HP's $400m SAP Disaster (Score:2)
HP suffered one of its more embarrassing recent episodes when an internal SAP consolidation cost it $400m in third quarter revenue...But how forthright was HP? During its third quarter earnings call, the company was typically hesitant to say exactly what went wrong with its ordering system. Only later, did word leak out that a failed SAP consolidation was to blame....Many insiders knew the project - code-named Fusion - had every chance of going wrong, despite HP's supposed expertise
It's the maintenance that kills you (Score:2)
If you customize an existing COTS package then you need to be prepared to maintain at least the portion you customized. (And hopefully you kept your customizations modular so you could still upgrade the underlying COTS software as new releases come out.)
If you start with FOSS and customize it, you can probably get some of you
Custom software, open source, etc. (Score:2)
We have applications for all our insurance systems. Risk management, site surveys, customer accessable information, everything. It's all built in house. We have over 6,000 employees total; several hundred being IT staff and development teams.
I couldn't imagine us using an of
Agreed (Score:2)
Innovation (the real kind,
My business plan (Score:2)
If the customer wants a customized version, we can offer services to customize the software for them, at so much per hour. If they want to customize it themselves, they can purchase a license to do so and release it from our license and develop their own version of it for their own pers
The reason custom software fails.... (Score:2)
Vendor Dependent Death Marches VS Open Kaizen (Score:2)
1) Starting a project from scratch staffed by only inadequately experienced developers;
2) Changing members ( managment and programmers ) in projects that have failed to fully document the project;
3) The Vendor Dependent Death March : When in house projects are dependen
The common COTS trap (Score:2)
Company realizes the COTS doesn't do half of what they need it to do.
Company builds a customized hodge-podge of scripts, glue, interfaces, and translators, around and on top of the COTS. If they're lucky it will sort of work for what they need to do.
Result: the worst of both worlds. The labor and time costs of customized software, with the inflexibility and vendor-dependence of COTS.
A tale of two (Score:3, Insightful)
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.
Re:Yes, it's that bad. (Score:2)
Cost = NIL, result = Perfect System
Re:Yes, it's that bad. (Score:2)