In Favor of Homegrown IT Solutions
snydeq writes "Today's IT organizations turn too readily to vendors, eschewing homegrown solutions to their detriment, writes Deep End's Paul Venezia. 'Back when IT was "simple," several good programmers and support staff could run the whole show. Nowadays, [companies] buy hefty support contracts and shift the burden of maintaining and troubleshooting large parts of their IT infrastructure on to the vendors who may know their own product well, but have a hard time dealing with issues that may crop up during integration with other vendors' gear. ... Relying solely on support contracts and generic solutions is a good way to self-limit the agility and performance of any business. In short, more gurus equals less hand-wringing and stress all around.'"
We can fly to that planet that clones stormtroopers and contract them to grow some IT gurus.
When you treat people like second-class citizens by making them contracted labor, especially in IT, this shouldn't be a surprise.
Twitter supports and protects racists - by smearing their critics with the "Hate Speech" label.
The loaded cost of a developer (including benefits and the like) is in excess of $200,000. Per year. For just one guy. How is this cheaper than most support contracts?
I was trained to be an IT manager, where most people move on to an MBA. All the classes taught were BS outsource this, best of breed that, vendor support another. The technical skills were deemphasized to the point that they are "complementary skills" rather than primary ones. You don't need to know how to manage a server, or configure Active Directory, or run an Exchange mail server. All that you know is to write business requirements for vendors to come in and set everything up.
My company decided to go with a vendor for their accounting platform, Great Plains. And now whenever we want to do any shit in that application, the vendor would take eons to come back with a workable solution and bill a fortune -- a great pain! Fortunately, the IT director, who is a highly technical guy, saw the problem and sent a few folks for Great Plains training.
The general in-house versus outsource vs commodity question here is a bit inextricably tied up in the more specific "enterprise software sucks" problem. I've seen moving from in-house solutions to third-party stuff work well, when it's good third-party stuff. For example, near the end of my time there, my university switched from an aging home-rolled email setup to a Zimbra installation, which, while not perfect, was generally better and more reliable. On the other hand, there is certainly plenty of crap that they pay Oracle and Microsoft $$$ to run that doesn't serve anyone's needs very well, or integrate with anything else.
10 PRINT CHR$(205.5+RND(1)); : GOTO 10
Yes, it's better to make them full time exempt employees, this way you can make them work sixty hours a week without over-time.
I couldn't agree more with this. We run an in-house development shop that continually out-performs areas of the organization that purchase COTS stuff (and then spend millions trying to customize it). In the beginning we got a lot of crap for having a "not-invented-here" approach and coming up with custom solutions. The first time we replaced one of these multi-million dollar solutions with something much cheaper (and easier to maintain) the comments stopped. This isn't to say we don't use commercial frameworks, appliances, etc. But these are tools (sometimes power tools), not pre-fab homes.
Keep in mind that if you are asking someone to do IT, and they paid to be a software engineer, you are paying double for that person. once for IT work and once for lost software productivity. Not an absolute truth, but something that too many nerds overlook.
A high turnover of employees creates problems with in-house development and maintenance of software. The "organizational memory" -- how did we get here, what were the problems, how were they solved -- is lost.
In the U.S. military, cognizant personnel are often rotated to new assignments every 2-3 years. This has the same negative effect on long-term maintenance and evolution of software for military uses. For this reason, military software projects are (or at least were) out-sourced.
For 24 years, I worked for the System Development Corporation (SDC), which eventually became part of Burroughs which then merged with Sperry Univac to form Unisys. We worked with the Aerospace Corporation and with Lockheed. Together, these three companies held the organizational memory needed to maintain computer systems for operating an ever-changing array of earth-orbiting space satellites. Our role at SDC-Burroughs-Unisys was to receive software packages from 10 or more independent software development companies (sometimes the same companies that built the satellites) and integrate them into a single system. We audited the developers' specifications and tests, tested the merged packages, performed configuration management, prepared user documents, conducted training for the end-users, and diagnosed suspected errors. On occasion, we even rejected software and sent it back to the developer company to rework. Contrary to current practices, the most senior professionals also provided "help desk" support. In all the time I worked on this project, not one space satellite was lost due to a software error. Considering the cost of a space satellite, the fact that our task doubled the overall cost of software development was money wisely spent.
While the project on which I worked was technically out-sourced from the U.S. Air Force, the repeated renewal of our contract and the contracts of Aerospace and Lockheed created an in-house professionally-skilled environment for acquiring and evaluating software. As a result, a very large software system with an expected life-span of 15 years evolved and was used for over 20 years.
This brings up a question. My organization replaced our old ERP and CRM-like system which was bought 20 years ago with the source code and heavily customized. The administration (through thir consultants-ugh) declined to buy the source code licenses for the new applications because "modern organizations don't buy source code licenses anymore." Now, predictably, people are upset because we cannot tailor the apps to our business rules. My question is whether the statement of the consultant is crap or not: do companies nor buy the source code license and solely rely on vendors to make changes via upgrades or custom programming?
that's my guess.
For most large organization, overhead is assumed to be 50% of an employee salary.
Of course, we have retirement plans, funded 401K's, excellent medical care, and a great downtown location (to name but a few).
So the original poster had it right.
While I would love to wave this article at my management and say "hire more gurus", I find it somewhat disconnected from reality. This concept would only work if you had a department dedicated to in-house development, with unlimited permanent headcounts all of whom would be flawless in developing, documenting and supporting their respective applications in a uniform, regulatory-compliance friendly manner and who would never, ever move on to the greener pastures. In reality, you have self-proclaimed "developers" from various departments, writing spaghetti code designed to address their specific problems, then eventually quitting and leaving IT to struggle with supporting the uncommented, undocumented application that now cannot be replaced because it contains "all customer data". And when your friendly neighborhood ISO 27001 auditor comes along, you end up hiring 3 more people to fix every missing data validation, credential management and change control problem in this irreplaceable creation, and then, maybe, it becomes that wonderful application the author is hoping to push for.
On the other hand, if you get a third party vendor to provide you with a solution - your upfront costs will seem higher, but chances are - unlike your departed headcount, that vendor exists for the sole purpose of supporting their solution. Their features, functionality, security and regulatory requirements have either already been hashed out by other customers, or will be hashed out for your if you ask for them. And unless they're a small enough vendor to go out of business without selling their assets to someone else who will take over, they will be there to support that application and provide feature updates while your in-house developers come and go...
Bow before me, for I am root.
While having in-house solutions is great, but what happens when people move on? I work in the EDU part of the IT industry, and we have a particular system that was designed by a former employee, picked up by a second, redesigned by the same person, who denies that anything could be wrong with it. Support calls to them go unanswered, and they're rarely in the office. And they are one of the three Directors in IT. Personally, I work on our Windows 7 deployment, and all the underlying AutoIt scripts, plus the virtualization of our applications. I have trained all of my colleagues in what they may need in the event of my demise (or less worrisome event). And I get paid about $34k a year.
You first need to recruit them and that is where the at-least-15-years-experience-with-windows7 headhunters try to score their introduction bonus, providing you with the wrong people loaded with certificates which only prove that they are very good in following the Cisco/Microsoft/Orcale guidelines.
All-round programmers with a solid experience that run entire enterprises with just a small group are a endangered species.
Take good care of them.
Like most things, there needs to be some balance between those things that you get from a vendor, and those things you do in house. Too much of either end of the spectrum is generally a problem. Too much from the vendors and you end up with the scenarios that the author describes. Too much of the in-house work, and you end up with a NMH (not made here) mentality which is ultimately destructive to the company. You end up wasting too much time re-inventing the wheel when an off-the-shelf solution would be adequate for your needs.
In the end, weigh the factors involved (timeframe, cost, how close existing solutions are to what you need ) and just make sure you pick the right tool for the job. Too much time with the hammer, and everything starts looking like a nail.
IF you have a full-time support staff onboard, who "grew from within the ranks" of said organization, you have people who not only know the general tech details of OS, serverware, & programming + network support, but?
Addtionally - You have kept valuable people there at work who KNOW THE BUSINESS TOO, & where the data is, + what it is for and what it does... I.E.=> They "know the lay of the land" & how/why it's the way it is there...
This latter portion? That's what's missing a LOT nowadays in companies...
(And, it's what you miss out on when you decide to "outsource" or "offshore"!_
With "offshoring/outsourcing"? Heh - you get a "support staff" that may (or may not be) knowledgeable with the OS, serverwares, middlewares, & programming languages/toolsets, but also DO NOT KNOW the business flow of information particular to said company & data is a lifeblood source for many companies!
(IS systems wise, & mainly DB device locations + purposes of data they store, reports run over them, languages used to create said reports, etc./et al).
APK
P.S.=> It's a "double-edged sword" when you don't keep a long-term dedicated IS/MIS/IT team in place in a company - you LOSE what I noted above (big thing to lose)...
Why do companies do outsourcing/offshoring then?
Imo, Greed: Why keep on dedicated staff (& the costs like insurances, pensions, etc. as well), when we can "OUTSOURCE/OFFSHORE" & save on those costs in the "long term"?
This only weakens an "economy" when you take better than "hand-to-mouth" minimum wage jobs away from people, especially those in tech trades (as has been done since mid last decade the most imo), & this hurts an economy since less "disposable income" for "fun" above food, rent/mortgage for shelter, utilities, etc is not present in the hands of spenders...apkb
I work at a small law firm, and all of our infrastructure is in house. Since I wear a few hats, and with the IT part of my job now the least demanding part, I've been contemplating moving some of our services out. It does get disruptive when there are fires to be out out right when there are deadlines due.
One thing I've been investigating is abandoning exchange for google apps. It would defiantly help up the security, as we'd only need a single open rdp port. And maintenance, service packs, anti-spam subscriptions would mostly become a thing of the past. Uncomfortable with google though, as we do have a lot of confidential information in our mail flow, and their propensity for analyzing very it of data they an get their hands on seems counter to the need for privacyin our communications.
Or course I haven't read their usage agreement so maybe by virtue of paying them for services, they might eschew the need to learn everything they can about us and our clients.
Point being, there seems to be a trade off that makes outsourcing the deal worth looking into, especially for small firms where budgets and manpower face more constraints than with fortune500 companies.
Any thoughts for or against?
I have 20 people who support 7,500 endpoints, nearly 1,500 printers, 450 servers, and over 500 switches across a multi-site facility. Consider also ensuring that data is backed up, secured, and that disaster recover works they way you planned, or the difficulty in finding people who can solve problems, which is what being a good I.T. professional is actually all about.
I outsource to vendors because I simply haven't got a chance in hell to support it any other way.
For a talking head, such as Paul Venezia to have the audacity to think he knows jack about the enterprise is an insult to those of us who do, and indicative of what is really wrong in I.T.; people who have neither the intellect nor aptitude for information technology being in positions to influence the industry, like the editors for rags like InfoWorld.
Democrats and Republicans are like AIDS and Cancer, I want neither!
Some of us have worked for employers that made the extra hours worth it; that doesn't mean you'll have to exclude large businesses either as well.
How about fixing the overtime law to remove the IT exemption, along with something that makes requirements more reasonable(e.g. if you can't find someone, you're going to be on the hook for directly hiring someone - not as any form of a contractor - and training them as an FTE at full wage)?
Twitter supports and protects racists - by smearing their critics with the "Hate Speech" label.
My experience has been the vendor theoretically knows their product, in that they know where to configure something.... but they know shit about how their product operates in the IT infrastructure of your company. most of the vendor products I have installed needed quite a bit of extra code to be written just to fit into the environment and be able to be properly monitored so the support staff on our end could go home for a weekend and not have to worry about files that did not process for 4 days with the first alert being the people we send these processed files to bitching.
Another product (an e-forms product) was so difficult to publish new forms in, that when I handed it off I wrote a utility that allowed the new support staff to publish, move, rename, and remove forms from any location in the forms tree.
Vendors pretend that their products are the only ones in your IT department. you still need good staff to integrate them.
The company I work for has the best of both worlds. They go out and buy a $500,000 piece of Enterprise Software*, forgo the expensive contractors and dump the setup and configuration on 2 or 3 in-house developers, a project manager (who is usually an outside contractor who happens to be friends with an executive -- a budget locust, if you will) and an IT manager. After about a year the esteemed project manager moves on to the next project, the manager in charge gets promoted, the software is blamed for the lack of results and a new $500,000 purchase is made.
*For those that haven't used the stuff, Enterprise Software doesn't actually work out of the box. It's much like a do-it-yourself plane kit with lots of manuals on FAA regulations, a glossy guide full of pictures of planes "other customers" have built and a box full of parts (with a few random parts missing) but no actual assembly instructions.
When people reference nothing but hardware you know they have no fucking clue about enterprise or the industry in general.
I can count on one hand the number of man-hours spent on switches in a year. There are days when I can't count on both hands and feet the number of man-hours wasted on a buggy vendor-provided API.
It is better to outsource if you are outsourcing to people who are more competent than your in house staff. Unfortunately the people who make these decisions often are not sufficiently competent in IT to make an informed decision. My boss certainly never believes me when I tell him I'm more competent than those bozos.
Most mature organizations have reached the point of understanding that custom solutions cost too much to maintain and support unless they are core to the business. Organizations make do to with off-shelf-solutions and support. As for integration, more and more organizations are also buying software suites instead of standalone products or relying on contractors for integration.
In fact, custom solutions actually makes organizations less nimble by tying them to their customized in-house infrastructure. By buying off-the-shelf solutions, it is easy to change products and migrate data, as competitors provide tools to make transition from competitor products easy. Migrating data from a customized solution, especially a large one, takes takes at least twice as much time and resources. In addition, if the homegrown solution relies on a few gurus to support it, what happens when they leave? At least off-the-shelf solutions have a support organization that understands the product throughout it's lifecycle.
I do agree with Paul Venezia that it is difficult to measure the trade-offs. But most organizations that have lived through the customization era of the 80's and 90's went to off-the-shelf solutions during the Year 2000 upgrade cycle and haven't looked back since. It was during Y2K that they realized just how much all of that customization was going to cost them. The trade-offs, at least at that point, favored off-the-shelf solutions. My thought is that they still do.....
Imagine - you are trusting a PRIVATE party with your sensitive stuff. they can do something stupid and go bankrupt, get sold, this that. you have no power over hirings there, so you wont know whether they are hiring reliable individuals or people who could leak your stuff at any given point. what are their goals their policy changes this that.
basically you are giving your balls to them. and they grip tightly.
i.t. became too complicated now indeed. but, is that much complication really necessary ? KISS rule (keep it simple, stupid) is applied in software development, but, ironically it is not applied in setting up i.t. infrastructure of an organization - nowadays people try to incorporate every 'next big thing' into the setup. and you get a mess.
KISS outside, KISS inside the infrastructure. And then keep your own infrastructure. That's the key.
Read radical news here
I work at a company that has a very high "we build it ourselves" ethic. This can be a great thing if you are actually spending time and energy on building the product you are shipping, as that does crazy things like create value for the company and generate revenues because you deliver the features people actually want. Revenues end up making profits. This pays my salary and ends up putting food on the table, paying the mortgage and keeps the house warm. YAY.
What doesn't do a darn thing for productivity and the generation of those features are competing version control systems, programming environments, poorly written/maintained tools, web pages that are barely comprehensible and business processes that make you want to jump out of the nearest window. For every new technology we have adopted over time, in many cases there was some piece of junk that someone had developed in a blitz over a weekend as a "temporary thing". They moved on to some thing else, and the temporary became five years when much better stuff came and went -- and we still did it The Way We Know.
I'm not saying that any internal wizardry should be avoided -- but really when you develop internal solutions you should know what you are getting into, and know how long you are going to put up with it, especially when the remainder of the world moves on -- and leaves you behind the times. Also be VERY wary of what's termed "the lottery problem" or the "hit by a bus" problem -- as in, when the guru who put together your super awesome sales lead processing database / application stack that's central to your company making money doesn't show up at work anymore, what are you going to do? When the desktop machine that's responsible for keeping track of your development metrics is re-imaged by mistake, what do you do then? When the world's best custom-designed project tracker heads for the bit bucket with all the plans in it, what next? Hopefully these kinds of things can be identified and the little projects that grow into business critical services will be properly supported, but I've seen it go the wrong way quite a few times.
One of my previous jobs was the systems/network administrator for a 65 person company. The yearly IT budget for software licensing, hardware, etc was about $150k. The software we bought met the needs of the company admirably, with only a little bit of customization required. Myself and one of the other IT staff were reasonably skilled as DBAs and could customize reports from our databases (a mix of Oracle, MSSQL, and MySQL), and the other guy was decent at wrapping the GUI around those queries. There's just no way that the $150,000 of our yearly budget could be stretched into hiring programmers to make custom software for us. Nor was there a need to do so - our needs were small enough - and to be frank, generic enough - that existing enterprise software just plain did what we needed with a minimum of hassle. The benefit as compared to the cost of creating a development team just didn't make sense looking at the ROI. In fact, there was no ROI at all.
That said, I can see companies with unique needs and larger companies with more complex business processes needing a better solution. For them, it may well become worthwhile to consider custom solutions for more of their tricky items.
While there are some advantages to outsourcing (to a vendor) you tend to lose Professional Stewardship and Institutional Knowledge.
Something that isn't considered when calculating the savings of outsourcing to a vendor.
That server in the next rack making weird noises is somebody else's problem.
"This is because it relies on people's natural predisposition not to see anything they don't want to, weren't expecting, or can't explain." - Douglas Adams
This is true, but you have to be selective. Sometimes pre-built solutions makes since.
I've seem way to many people try to build solutions when an off the shelf solution would have been easier and cheaper in the long run. (say after a failure, and sometimes before!)
If you need a mail server with lots of accounts, but no bells and whistles. Build it yourself. You need an mail server with all the bells and whistles. (calendaring, etc) Buy one off the shelf. You will save yourself a lot of head aches. (providing you're not stupid in implementing your off the shelf product)
I have a couple of name brand HA NAS devices. I also have a couple of Linux NFS servers running DRBD and heartbeat. I knew where to buy off the shelf and where I could do it myself.
Several decades of bleeding projects, IP locked in the brains of self professed 'gurus' is what brought this about.
How many large projects have you been involved with that a) developed reasonable quality support documentation b) didn't vest all of the knowledge in the project team and c) Had a thorough handing over to a BAU team, with adequate funding and resources to run it.
Crickets?
Yeah, thats why you outsource. All you need to worry about is the bill, and you've got a handy outside organisation to scapegoat when things go wrong. Substantially lower career risk.
IT nerds with poor project discipline brought this change about.
A lot of the time it's because when shit hits the fan then management can shift blame to the vendor and/or support contract.
this is my sig
I'd like to see software "kits" for families of application domains. One purchases the software kit's source code and then customizes it, perhaps with an optional subscription to get future doo-dads.
Doing everything from scratch takes too long and buying pre-built solutions shoehorn you into something both missing features you need and that carries the baggage of features you don't.
Write them in common languages such as Dot.Net, Php, Java, etc.
However, enforcing licenses may be tricky.
Table-ized A.I.
Its where your business processes are implemented these days. If your company has no competitive advantage over others based upon these processes, then by all means, buy the same s/w package that the guy down the street uses. Or hire the same consultants. More often than not, rather than customizing an application to suit your business, they whip out some boilerplate procedures manuals and get some of their inside people to slip them into your business plans. It makes their subsequent sales job much easier.
There are legitimate issues of core competence vs activities outside your companies value chain. Once you can identify what it is you do that gains you an advantage in your market and apply your IT (and other) resources to that, the rest can be bought off the shelf.
Have gnu, will travel.
I understand that some environments can be more flexible or more dialed-in to company/user needs with a full time, active development staff doing everything homegrown.
But the talent pool for this sort of thing is woefully limited. I've seen "in-house" development groups come up with some of the nastiest, most byzantine pieces of crap-hackery you could possibly imagine. And there's ZERO planning for what to do when the system reaches obsolescence. And don't give me any crap about how it won't ever happen. It WILL. Then, what's the upgrade path? How do you get the data out? And a million other niggling little things.
There's also the problem of relying on a group of individuals like this. It's essentially a thinly disguised form of vendor lock-in. Save the vendor is a group of your own employees. And what happens if they all up and move on to greener pastures? How do you maintain the system? CAN it be maintained? Can it be extended? Can ANYTHING be done with the system without bringing it crashing down?
How do you know Joe WannaSecureMyJob didn't back-door the system?
Yes, a lot of these are concerns you face with vendors too. But with vendor approaches, if you dislike the direction the project is heading, you can kill it, cut out the vendor, and move on to something you find more acceptable.
Not saying it CAN'T work. Just that the level of care you have to take when risk managing is different from what you need with outside vendors.
Chas - The one, the only.
THANK GOD!!!
as long as in-house IT staff are considered mere overhead and not an area of strategic advantage, business will continue to outsource critical functions to the lowest bidder and wonder why they have to keep hiring expensive consultants every time a new project or requirement rears it's head. Then, as soon as the project is complete, they let go of all the expensive consultants only to hire a new batch (who of course need a project plan, specs, integration studies with the existing solutions etc) when the next wave of upgrades or projects starts. Tide come in, tide go out lol...
Okay so we assume the obvious that not every system is perfect. The truth is, "vendors" are needed. After all these "vendors" are the ones that are developing the technology that makes it easier for the little guys using homegrown solutions in the IT crowd to do our jobs efficiently. If we didn't have vast communities of people or large organizations developing these products (vendors), you would find that smaller dedicated groups of people would have a harder time producing hardware and software solutions for any business's needs.
As far as security and "Joe WannaSecureMyJob", from the last post calling bullshit, the same thing happens in other job fields and companies have to take necessary precautions to make sure that what's his bucket doesn't cleverly fix the numbers so that employee of the month looks like she made less sales than you did. Again, there are vendors that specialize in that as well. In my eyes that's an entirely different conversation altogether, especially when it comes to cyber quackery. But its a good example of why vendors are needed and why smaller and "homegrown" teams of people need vendors to do their job.
Then I ask, isn't a "vendor" really just made up of smaller teams of people dedicated to doing 1 thing? So that's why we have "Managed IT Services" right? They're just more vendors that are responsible for taking the "IT" focus from a business so the business can focus on what it does best, sell cars, or sell real-estate or whatever. Those kinds of companies, no matter how small or large, simply don't want to deal with trying to manage an IT department. So they turn to someone who can manage it efficiently for them without the costs and burden of employing and managing a team of IT professionals or hacks.
Any way you look at it, whether it's a "vendor" or a small team of professionals dedicated to homegrown solutions, they are almost one in the same these days. And if you have a team of people using a "homegrown" solution, chances are the products they used to create this solution are made by some "vendor" in the first place.
The first, diversity, was mentioned in the article. In the last 20 years (1990 to 2010) we've had countless "core enterprise technologies of the future" spring forth. Some of these concepts or technologies are still in wide spread use, but others have fallen out of favor or have been overcome by events. Many shops have hodge-podge systems with tough to find skill sets. It's hard to staff these positions and the average tenure of an IT person is about 2 years. With a contractor, it's now the HR problem, not your problem, to find someone who knows Delphi, COM, and DB2 to patch your in house app.
By contrast, the CICS was developed in 1969, System 360 1964, and COBOL 1959?. Anyway, you can take a 30 year period from the mid sixties to the mid 1990's and find almost the exact same mix of products. The versions and features evolved, and some additional COTS products were introduced, but there is an amazing consistency. Even the terminal technology for the mainframe was fairly slow to change, with serial terminals in wide spread use until fairly recently. I think the lack of diversity makes it more economical for companies to train and manage an in-house staff. When it's time to find new staff, you used to be able to find an ample supply of people who had COBOL/CICS on their resume.
But I think this problem could be overcome if senior management saw their IT as delivering a competitive advantage relative to their competitors. Even in the mainframe days there was a lot of outsourcing. If we're all using the same COTS packages and building the same applications on the same platforms, it's more about not screwing up than it is about doing something excellent. Companies are more likely to keep their "secret sauce" in house but take the stuff everyone has to do and outsource it to try to reduce cost. That's not to say that companies don't use consultants to help with projects.
You sometimes see this as "know your knitting," meaning understand what makes your company great, it's core competencies and what makes it special. Don't get distracted by the other stuff and just focus on that. If IT isn't something that makes your company special - why would you spend one nickel more than you had to?
Leave the gun, take the cannoli -- Clemenza, The Godfather
You need to decide what business you want your company to be in - if you want to be a SW development company, fine - be a SW house. However, if you want to be anything else, then don't write your own SW. Keep your business focused on what you really do. You don't want to spend resources tracking, designing and coding the annual changes to the tax code, or all the deprecated functions in your chosen framework or the latest trends in user interface design. There is no way you can do all the industry research, application design and code maintenance for the price of the annual SW maintenance, let alone match the amount of resources a large commercial SW vendor can devote to the same problem. His R&D costs are spread across all of his customers - are yours?
Oh - and lets not forget a little thing called Sarbanes-Oxley. Do you really want to prove to your auditors that you have built the same level of controls into your homegrown ERP system that are put into tier 1 or 2 commercial systems?
In the vast majority of companies, the "unique business processes" are a very small percentage of the application - and many of those are simply stubborn and egotistical business users who refuse to believe that the vanilla solution would also work just fine for them if they were just willing to try to understand it.
Ask Texas, Indiana, Virgiania states how well spending unbelievable sums of money - we're talking between 1 to 3 BILLION dollars in each case- on consultants from a Big Name Corp worked out for them.
http://www.inthepublicinterest.org/article/pitfalls-outsourcing-it
Worked out OK for the Big Name Billers I'd say.
apprenticeship system. Take today's tech schools and add apprenticeships to them.
CS degrees build theory and a lot of that is high level stuff with out the skills of working on systems / working with stuff at the hands on levels.
Now with a apprenticeship people can build real world skills and companies get people who are not people who can cram for a test and be come a paper MCSE
maybe it's time for IT unions
So they can at lest not take the blame for a vender mess up and also put presser to do more in house as well.
And what does CS have to do with IT?
And what does CS have to do with IT?
Exactly. This. This is part of the problem.
There's a disjunct between how academia sees Computer Science as nothing to do with IT and how business sees a CS degree as the basic starting point for a career in IT.
Can we please either have a Computers in Business degree that teaches useful skills, or a business culture that doesn't expect academic degrees to be vocational qualifications? I don't mind which, either is good.
Also, the reason your company doesn't have any gurus is that no-one is prepared to spend any time or money training their staff, or even giving them self-development time to train themselves. Companies that do decent training have gurus. It's pretty simple.
Business/App ideas are like arseholes: everyone's got one, they're mostly shit, but very rarely they contain a diamond
When ever you get an upgrade from a vendor you have to do an entire retest because there is a lot of changes, most of which got nothing to do with you. When it is home built you only change what you need to and you can do a better job of isolating your test.
When you have different packages from different vendors it is very difficult to manage the upgrade cycle since each vendor has different release dates. It is also very difficult to integrate packages from different vendors. And extremely difficult to keep the integration working as you update the different products. You may save a lot of time using a vendor package instead of a custom build but once you have more than a couple of packages in from different vendors you start to have a lot of problems managing changes to them. .
Can we please either have a Computers in Business degree that teaches useful skills
Wouldn't that be MIS (Managemnet Information Systems)?
business sees a CS degree as the basic starting point for a career in IT.
Don't people read the CS sections of college catalogs? Wouldn't the course descriptions make it obvious that this isn't what CS does?
In terms of teaching useful skills. Tech schools are better but HR / business culture does not see them as good qualifications.
IT is at the point of plumbers, HVAC, car repair and so on. In where only so much can be learned in class room and only so much theory can get the skills needed to the most common work and 4 years is to long for a starting point even 2 years pure class room is pushing it.
Now say 1 year for basic IT and then maybe some kind of a apprenticeship with on going class and then maybe after that have higher level stuff NOT CS stuff but things like advanced networking, advanced security and so on. CS is way to much on the theory side and the tech schools are lacking the real work place experience.
Right now some can say do a 4 year advanced security and miss out on the part doing the basic work and end up pushing advanced security stuff with out haveing worked with doing stuff at basic level where you find out how at times that advanced security does not work as planed or that you can get by with lot's time wasting work around / paper work coming from a poor security plan.
I keep seeing this posted often on Slashdot. Of all the industries, IT is the absolute worst example you could name being a candidate of some sort of apprenticeship program. That's because Information Technology is fast moving target that defines progress and changes in paradigms. It's also why even IT college degrees are almost worthless too. I'll leave CS out of this because they actually rely on math and other proven techniques that have wide reaching applicability. But certifications such as an MCSE and CCNA only prove familiarity. They do not however prove experience. In fact, I would state that these certifications are best suited to compliment your resume of existing experience.
Life is not for the lazy.
You make it sound like being a contracter is a bad thing. Me and some of my friends are all independend contractors: We like it much better then actually working at those companies. We are treated with respect, are payed for overtime, and are our 'own boss'.
The difference in knowledge is stunning: The bigger the company, the more IT people they have, and the less they get done. Some of my friends are able to replace 5 'normal workers', that are of the kind that only have papers and zero actual knowledge.
Btw we're all in the unix, linux and storage business.
Large institutions (especially financial ones) do this because of the enhanced plausible deniability.
It's to much easier to blame IBM for your outage / downtime / boo boos, instead of admitting you have poor internal IT practices and infrastructure.
Possibly a small part. I've yet to see any student be good at a job in the first few Months. You still need to train them, so to me it doesn't matter what degree they have as long as they get through HR. I could train a Philosophy student in IT.
And the honest truth is that there is NOTHING like seeing some internally developer solution for which off-the-shelf software exists to convince you internally developed software is a nightmare.
And there is is nothing like seeing 99% of off-the-shelf software to convince you that ANYTHING developed internally must be better.
The REAL honest truth is that 99.999% of software sucks donkey-balls. After a thorough rimming job.
It doesn't really matter where it is developed. Design flaws and bugs ALWAYS end up biting YOU in the ass. It doesn't matter where it is developed, if key developers leave, knowledge gets lost. Sure, you MIGHT think that a large software developer has processes in place to guard against this... but you would be a silly person. IT churn is high and this means any software project is always at risk of loosing the people that truly understand the system. A software house might be slightly better at it BUT will have to force its developers to maintain systems no longer relevant to it (do you want to work for a company still supporting windows 3.1 because its customers need it) while an internal development might not have anyway to keep a developer intrested with nothing but maintenance work.
There is no easy answer here. Ideally you would have internally a collection of tailored software that was mostly developed externally. Example, I might run my own webscript but use externally developed OS, database, webserver. But wait, that makes all your tailoring known only by your own staff...
In the end, you just got to pick your poison.
MMO Quests are like orgasms:
You may solo them, I prefer them in a group.
The general question can't be answered. YOU need to do research and understand the cost benefits of each approach and make an informed decision based on the specifics of your situation.
This means all stakeholders need to do necessary reserch and then sit down and communicate with each other.
Personally I've seen enough DIY outcomes from IT shops to have a strong default of preference to keep software development as far away from IT as possible.
Why do people think that contractor = second rate citizen? I don't know any contractors (including myself,) that want to go full time. I don't understand the mentality that choosing to be paid a rate per hour and have no other connection to the employer is somehow a bad thing.
You can't handle the truth.
IT isn't all about shifting paradigms, a lot of the thinking you need to do IT support and build/manage infrastructure simply required the right mindset of considering various possible problems or solutions. I've always been "good with computers" simply because I'm curious, I try things out, and the things I learn from that tend to help me with future things.
I stopped finding IT support interesting within a couple of years though, and have managed to shift my job role in the company to being a lot more programming oriented the last few years. So I guess I'm one of the "gurus" that the article talks about. Unfortunately the department that makes the most use of my software projects has just been sold to another company, and they haven't decided if they want to keep using that software or switch to some general solution yet. I don't really mind either way, management seem to like the idea of me continuing in some kind of programming role for them otherwise they'd have made me part of the deal..
which is totally what she said
apprenticeship system. Take today's tech schools and add apprenticeships to them.
CS degrees build theory and a lot of that is high level stuff with out the skills of working on systems / working with stuff at the hands on levels.
Now with a apprenticeship people can build real world skills and companies get people who are not people who can cram for a test and be come a paper MCSE
What does CS have to do with IT? Having a CS degree and working in IT are two things that are purely coincidental. You do not get a CS degree to work on IT. Ever. The fact that you mentioned both in the same sentence makes your knowledge in both areas suspect.
CS != software engineering != IT != MIS. Overlap != Equality (or equivalence). It's not rocket science for fuck's sake.
IT is pretty big umbrella and given computers are symbolic manipulators and we understand information to be relationships among facts, expressed as symbols you cannot say CS has nothing to do with IT unless you have a deep lack of understanding where the fundamentals are concerned.
Undergrad CS is a perfectly good academic background for someone who is going to be developing business software. Remember an undergraduate program is supposed to provide a foundation for an individual to build on. Expecting to plop a new college grad in front of Visual Studio and tell them to get to work maintaining your enterprise application is wrong. They will need training and some hand holding by the existing staff until they learn the business and other specifics of how things are done in the organization. Knowing something about how computers are designed, operate, the mathematics behind them and some common algorithms is a fine place to start from, not the only place but a fine one.
Where operations are concerned well there is a MIS degree for that!
Repeal the 17th Amendment TODAY! Also Please Read http://www.gnu.org/philosophy/right-to-read.html
A high turnover of employees creates problems with in-house development and maintenance of software.
Having a nice, customised, home-grown system sounds nice. However, a longwinded cautionary tale.... (see end for tl;dr version)
I work for a small company (less than ten employees) that operates a couple of shops and a mail-order website.
The original software was an off-the-shelf package called "Actinic" that small and new businesses appear to like because it's simple to run. Unfortunately, it's also very limited and limiting. (*)
The person previously in my position was a student, and designed an add-on ASP-based system (separate to Actinic itself) that handled the shop transactions and allowed processing the orders by updating Actinic's underlying Access database directly. For something designed by a student, it's actually a pretty impressive system, and works well from an end-user point of view.
There are a number of problems, however:-
* The add-on system uses and was built around the structure of Actinic's existing Access database. It's now pretty much locked into this- there are *lots* of SQL statements in the code reliant upon it. (Some of which I didn't write and have never had cause to decipher so far).
* The add-on system was written in "Classic" ASP. The scripts aren't that bad in themselves, and at a basic level are quite cleanly-written. However, comments are sparse, and they mix functionality and presentation. There is *some* duplication (though it's not a cut-and-paste nightmare). Partly this problem is the general issue that old-school ASP (i.e. 90s style scripting) just isn't suited to larger systems, which is why it was replaced with ASP.Net.
* The system has been added to piecemeal, with many additions being what my boss felt was important at the time (even though we ended up hardly using such subsystems). I've warned him on several occasions that this style of bit-by-bit expansion would accelerate the point at which the system became unmaintainable.
* Some parts of the system aren't really used. It's unclear if my boss requested this functionality (he says he doesn't know anything about it, but it would have been written several years ago if he had), or my predecessor added it or what. Given that my boss has asked for features and/or subsystems that he ended up not using, the former is possible. Anyway, there are a number of parts of the system where I'm unclear of its functionality and/or its motivation.
I've added quite a lot of functionality to the add-on system myself in a relatively consistent style to the original scripts- logic being that short of rewriting the whole thing, the best thing to do would be at least to have a consistent style with my predecessor's stuff rather than a half-baked clash of two styles. Unfortunately, to some extent this has meant I've continued and expanded upon the design faults of the existing system.
I also created what were meant to be some "quick and dirty" standalone systems that ended up getting expanded a lot and (badly) integrated into the main add-on system, which was necessary due to the changes my boss wanted. So their design is horrible and they're integrated in a half-baked manner (ASP.Net interacting with Classic ASP).
I warned my boss a few years ago that we would eventually back ourselves into a corner, and we're now at the point where we have. We've reached the limits of what we can do by adding a whole load of scripts to compensate for an overly-simplistic (and now dated) piece of e-Commerce software.
The website needs completely redone, which shouldn't be that big a deal, but we're now locked into a system that is locked into a five-year-old version of Actinic. The best thing to do would be to scrap it and start again with a cleaner system, but I've no inclination to do this myself.
The biggest problem isn't my looking after the system- *I* know how it works, but the job pay is rubbish and
They also tend to buy retarded shit like Citrix while ignoring robust monitoring solutions offered by several companies. So you end up having expensive developers routinely debugging common IT problems like disks being full, NFS mounts being offline and machines being down. But hey, look at the shiny Citrix!
I'm trying to teach myself to set people on fire with my mind... Is it hot in here?
I wrote about this sentiment a few months ago. A few excerpts.
One of the reasons I like and support the use of open source software is that you can avoid most of the drama that comes from relying on 3rd party vendors. By this I mean.. you must pay exorbitant sums for ongoing maintenance, you are locked into their product upgrade treadmill, you have little say in the direction of their products, you have a single source for support, and if your vendor gets acquired there is a very good chance the product you depend on will go away or change in ways that force you to abandon it with even more pain. I’ve seen this play out from both sides of the table having spent time in both enterprise environments and working for software companies.
In my opinion those resources should be spent building and customizing systems based on open source software whenever practical. Rather than spend your time and money propping up another companies bottom line.. spend them internally refining the tools that run your business until they become a strategic advantage. Build your teams.. invest in your people and develop subject matter experts to give IT a growth path within the company. By doing this you own the results and end up with an advantage that can’t be easily duplicated. Too often IT is viewed strictly as a cost center.. and that’s a real shame because with a little leadership it doesn’t have to be that way. Better to be a builder and own the building than pay rent forever and be forced to move every time the landlord needs more money. And if you are a C level executive.. stop basing your IT strategy on what you read in airline magazines or the latest buzzword-laden reports from Gartner and their ilk.
http://jaredwatkins.com/wordpress/2011/04/dont-be-a-slave-to-your-vendors/
Every normal man must be tempted, at times, to spit on his hands, hoist the black flag, and begin slitting throats. -HLM
The business school I am attending, in a direct attempt to address the issue caused by MBAs running IT departments, created a hybrid business and CS degree to give us the perspective of both worlds. Most of us are already working in IT in some fashion or another, at various levels, so we've got the real world experience already. I suspect more business schools will start looking at this sort of degree - why have a business major running an IT department, when you can have someone who can have an actual "IT" major instead?
Occasionally living proof of the Ballmer peak.
The bigger reason, from first-hand experience, is this. When the month-end accounting database craps out at 2:30 AM on a Saturday, and the on-call programmer can't make heads or tails of it because "the damned thing is tied into a COBOL program that's older than I am", who are you gonna call? The person who wrote the program, who happens to still work for the company, hasn't been on-call in fifteen years, hasn't touched the stuff in over ten years, and is enjoying a nice ride in upper management now.
When your name is on something, no matter what you consider good documentation for abends, there is ALWAYS a haunting possibility that you will get called in to fix it. If your lucky, your long gone from the company and they will be willing to pay a kings ransom to fix it / teach the new guy how to fix it (Saw that one too on an E-mail system).
The several good programmers and support staff are further in their careers and they all dread getting that one haunting call to come in and fix something they built, maintained and worked on from decades ago. And why the hell do we keep going in to fix it? Because those programs are our babies and we like knowing that our clever ideas are still being used decades after the fact.
End of my rant.
Oh, I hate COBOL, Offshore programmers aren't taught JCL for crap and if I hear "Please do the needful" used in a professional setting again I *will* cockpunch someone.
When you have 3 help-desk wookies at $24k/year, they can sit on the support line and click buttons as instructed. They don't need to know how it works, and frankly, most don't usually care. That's what companies want. They will sometimes call in consultants to help with the extra hard stuff because It's cheaper than having a Guru sitting around for 3x the wage waiting for stuff to break/inventing stuff to wait to break.
Until the vendors really, really, REALLY start costing companies more money than it takes to have a guru or two on hand, things will most likely remain the same. Unfortunately, most of the mgrs I've worked for are very easily swayed by sleazy salespeople making holy-grail type claims. The vendors have historically won.
Join the Slashcott! Feb 10 thru Feb 17!
of course thats what happens when you have suits doing buzzword management , whatever is most profitable on paper , no mater how ridiculous because they cant make the diff between a bit and a byte , hell the geeks will fill in between the dots , anyway they walk on water no ?
and/or something similar to the Professional Engineer (P.E.) system. After you receive your engineering degree, pass the Engineer in Training (EIT) exam, and receive your Fundamentals of Engineering (F.E.), you must work (in my state at least) for 4 years under a licensed P.E. (essentially an apprenticeship) before you can even take the P.E. exam and apply for a license.
When you trust the same guy that sold the software and solution, with the job of critizicing on the long-run and updating the same infrastructure you bought from him, you made a critical mistake and are being stolen twice.
But that is the way this industry works. Amazing.
Those must be some bad MBA schools in your area. I got an MBA and I was never taught [that] we should outsource everything.
We were taught to get vendors when the requirements would distract the existing staff from their mission focus. I had to read case studies where outsourcing worked well and when it failed miserably and [they] should have kept the inside staff. We were taught the complexities of global business and that American staff tend to be more productive and creative even though they cost more. How bean counting causes you to miss the good investments. And a good HR policy means treating your workers right and at a good pay.
I am willing to bet there are less MBA but BBA [...okay, WTF]? who are out of a 4 year business with no experience, trying to save money by stepping on the backs of anyone who gets in their way. The MBA program is far more responsible.
Masters-level degree my ass. It's amazing you ever got through high school English.
After free lance consulting for 5 years...I worked for 8 years at one of the world's leading printers...they had a extensive software development effort and much of their competitive advantage came from that fact. Now I work at a place where there is not any development...except for report writers...and the DBAs like myself that have to hump data around for people because they don't have the skill to simply create a flat file from a SQL statement....Vendors are reprehensible and lack knowledge in their own products and in many cases the vendor contracts with a third party to support the products they supposedly wrote.... it is all mostly crap. the stuff that does work is now almost a decade old...I coordinate updates and projects and help IT project managers understand how to update apps or implement enterprise database systems...it is like what have they been doing all these years? What changed?
I can say unequivocally that abandoning all in house software development by organizations was a really bad idea. The discipline of successfully developing inhouse apps creates IT processes that are robust and consistent. In many cases the vendor's product is simple...and they make it overly complicated and fall way behind in maintenance and all to often the product simply fails to deliver the expectations set by sales and marketing...
Organizations abandoned software development because they were afraid the "smarties" would take over and the computer illiterate leadership would lose control to a aggressive CIO....leading a quality IT organization with a smart development team...
Another sad fact is that despite all the technology surrounding us everyday, people have become dumber to to the complexities of information technology not more experienced. It use to be people could write their own reports...and design and help build departmental business processes with IT guiding them. Now the "analysts" simply send a request to install yet another piece of crap that makes little sense based on a glaring lack of understanding and many times the desire to understand..
I agree. My university had two degrees in computer science: Master of Science and MBA (master business agoraphobia?) The problem was that the MBA courses were just bullshit business management courses. If they somehow instead had courses on the practical application of CS in the workplace have taken that track in a heartbeat.
Millions long for immortality who do not know what to do with themselves on a rainy Sunday afternoon. -- Susan Ertz
Nope. You could easily do this with less people, you still dont need to outsource, you DO need to leverage existing ideas and software. That's the difference.
there are lousy homegrown solutions and great vendor applications (and vice versa). It depends on the caliber of the development team.
Yes, it's better to make them full time exempt employees, this way you can make them work sixty hours a week without over-time.
No one would work for an organisation that expected sixty hour weeks and didn't pay over-time! Anything over 37.5 hours is paid at time-and-a-half at the global IT vendor I work for.
We run our own shop, however we bring in consultants for large projects say migrating from exchange 2000 to 2007. There are extremely good reasons to use consultants, in some cases its much better to have couple people with hundreds of migrations under there belt vs internal staff that would be doing it for the first time. Second you have someone else to crucify if there is a problem.
But outsourcing day to day or even large infrastructure projects is never good. Staff need to work on large projects and rollouts.
Then you know very few people. The revised topic says it all.
You're more or less disposable, not flexible.
Twitter supports and protects racists - by smearing their critics with the "Hate Speech" label.
Being with the company directly has the direct benefits and support of the company - versus a disposable contractor that is sought more for easier separation from the company than any merit.
Twitter supports and protects racists - by smearing their critics with the "Hate Speech" label.