8 false economies in application development

Here are the most common ways in which companies choose to save now when developing software, but usually end up paying much more later

Save now, pay later
Credit: ITworld/Steve Traynor

Anybody who’s been a software developer for long enough has been told to fix or implement something in the quickest way possible rather than take the time to do it the “right” way. After all, you can always refactor later, right? Unfortunately, that refactoring often never happens, because you’re too busy with other tasks that need to get done ASAP or because it just becomes too much of a pain, and your application suffers because of it. There are many other such false economies when it comes to creating software. Based partly on discussions and votes in developer forums, ITworld has generated a list of the 8 biggest false economies in application development. How many of these have you experienced?

Offshoring development
Credit: REUTERS/Vivek Prakash
8. Offshoring development

Short term savings: Cheaper labor costs; potentially shorter development time, since more developers can be hired

Long term costs: Increased maintenance costs in the future due to less competent developers; higher project administration costs, through having to bring off-site developers up to speed, delayed communications and oversight

Quotes: "One experienced $100/hr in-house developer may well produce more value for you than five or even more junior $20/hr people overseas." Peter Vaihansky

"...on-shore developers spend most of their time teaching the new off-shore devs the business and technical domain model in addition to providing technical support." Chris Knight

"Many have made unrealistic promises to win contracts...." Jane Bird

No studying
7. No learning for learning’s sake

Short term savings: More developer time spent working on current, revenue-generating projects 

Long term costs: Developers knowledge stagnates; they may not learn about new tools or techniques that could be helpful to solving current or future problems; developers can become dissatisfied and leave the company

Quotes: "...we should always keep ourselves up to date, and the knowledge we gathered would be useful to us in solving existing and future problems." Gan

"learning new technologies is often helpful, even if you never directly apply that technology: new views and perspectives that it provided can certainly be applied using "old" technology." Joachim Sauer

"...new technologies emerge to address new needs and therefore they make it easier to solve certain problems." Giorgio

Quality control
6. Using developers for non-developer tasks

Short term savings: Not paying salaries of professional QA testers, technical writers or client facing support personnel

Long term costs: Paying higher (developer) salaries to fill these roles; lack of formal QA testers can lead to more bugs, increasing maintenance costs; poorer documentation; worse customer support

Quotes: "If you are paying programmer salaries for tester/technical writer work, then you are wasting money…." JohnFx

"Developers normally work with the developer mindset of "how to make this work?". A good tester is thinking about "how to break this?" - a very different mindset." Péter Török

"... developers are the worst testers. In. The. World." Stu

Project managers
5. Not providing dedicated project management

Short term savings: Not paying for dedicated project management resources to oversee the project

Long term costs: Lack of direction for the development team; no one to help remove roadblocks for developers and enable them to do their jobs; a finished product which may not meet user requirements, schedule or budget

Quotes: "I've experienced several times when... someone who already has a demanding day-job should have managed the project, but in fact was too busy with other tasks so the project never really gained momentum." user281377

"Project management is incredibly easy in a perfect world. The world is not perfect however.... This is why they are paid the big bucks." maple_shaft

Do it yourself
4. Rolling your own when good alternatives already exist

Short term savings: No time or money wasted researching, buying or implementing existing solutions

Long term costs: Paying to reinvent the wheel; longer time to deployment; scope creep; inflated development costs; extended project schedules

Quotes"One of the most common examples... are companies trying to develop and in-house CMS system. These invariably start off small, but soon get bloated and out-of-control as features are bolted on…." Dan Diplo

"...a fairly-priced, well-supported off-the-shelf solution can be much better than making the development team reinvent the wheel." Gary Rowe

"We used to say "a week in the lab can save an afternoon in the library". Same thing goes with software." user1249

License plate \H3 DEBT2\
3. Going into technical debt

Short term savings: Time and money saved by implementing something in the quickest way possible, instead of doing it properly

Long term costs: Refactoring of quick, hacky solutions; higher maintenance costs; more difficulty adding features in the future

Quotes: "... debt accumulates from taking hundreds or thousands of small shortcuts.... This kind of debt is... easy to incur unintentionally, it adds up faster than you think…." Steve McConnell

"I've worked at places where you would be fired for spending time refactoring code because it meant you weren't adding value." Wayne M

"We've got code all over with comments like "This is a hack, replace after the demo" that's been in the base for going on 3 to 5 years now." CodexArcanum

Old computer
2. Providing inadequate equipment

Short term savings: Money not spent on sufficient computing power, extra/bigger monitors or replacing outdated equipment

Long term costs: Reduced developer productivity - and job satisfaction - due to slower compile times, problematic systems or not enough screen real estate

Quotes: "I started programming on a really old Pentium II. Compiling took forever, the IDE was not responding properly." Oliver Weiler

"I know for sure that mine [second screen] has saved me many, many hours of work." Arjen Kruithof

"When the hardware is inadequate I make it a point to let management know, usually by doing useful work like clipping my toenails or reading the paper during long compiles" Bob Jarvis

Minimum wage
1. Paying poorly

Short term savings: Money not spent hiring more experienced or skilled engineers or giving appropriate raises and bonuses to existing developers

Long term costs: Lower quality of work; higher maintenance costs; reduced developer morale; loss of good programmers

Quotes: "The 10x or 100x programmers are such insanely incredible value for money; they only get paid 1.5 maybe 2x." Tim Williscroft

"Not paying properly for skills = the skills walk out the door." quickly_now

"These 2 programmers would do a job (some type of low level tasks) that 1 guru would not do" Zzz