Pitfalls of Systems Development

These are some of the pitfalls of systems development that I seen in the past, costing organizations (businesses, charities, and governments) billions (probably trillions) of dollars.

I strongly disapprove of and disagree with each of the following pitfalls and in my work try to avoid all of them.

Some of these can be applied outside the area of systems development as well.

How many of these do you recognize from your organization? Consider how much it has cost your organization.

Index of Pitfalls

Click on a particular topic to go to it or go to the bottom of the page to see them all.

  1. All Assumptions are Well-Known
  2. All Developers are Equal
  3. Amount Produced is Directly Proportional to the Number of Bodies
  4. Anyone Can Manage Technology
  5. Anyone Can Plan Well
  6. Big Name Consulting Firms are More Qualified than Smaller Firms
  7. Concensus produces the Best Solutions
  8. Contractor Performance Independent of the Client's Staff
  9. Contractors Less Expensive than Employees
  10. Contractor Selection Based on Buttering Up the Decision Maker
  11. Cutting Strategic Development in Hard Times is Good Business
  12. Decision Making Outside of Planning Staff
  13. Departmentally-Owned Systems & Data
  14. Developers can be Pigeon-Holed by Skill
  15. Flexibility is too Expensive
  16. Hire based on Short Term Needs Only
  17. Human Resources Effectively Screens Candidates
  18. Industry-specific Technology and Information Technology Planned Separately
  19. Integration Best Done during Application Design
  20. Just-in-time Strategic Planning
  21. Lack of Commitment to Strategic Development
  22. Latest Techniques Ensure Good Systems
  23. Management Position Endows Incumbent with Strategic Thinking Ability
  1. Management Steering Committees Can Effectively Manage Projects
  2. Money Thrown at Problems Solves Them
  3. Most Developers Think Strategically
  4. No Empowered Strategic Thinking
  5. Non-Technical Management
  6. Off the Shelf Systems Integrate Well
  7. One Solution Fits All
  8. One Year Budgeting Drives Development
  9. Outsouring of Service Related Technology helps the Business
  10. Patching Perferrable to Redesign
  11. Planning Done Best Inside Each Organization
  12. Popular Products are the Best
  13. Pretty GUI Indicates Good Design
  14. Process-Focused Development
  15. Short Term Solutions
  16. Staffing Firms Recommend the Best Candidates
  17. Strategic Systems Development is Too Expensive
  18. Strategic Thinking is the Exclusive Function of Executives
  19. Strategic Vision Not Necessary; Just Implement Systems as Needed
  20. Technology Management same as Personnel Management
  21. Technical Thinking within Organization Not Heard by Executives
  22. Testing Done Only When All Development Completed
  23. Users Specify Design

I can provide recommendations on how to avoid these pitfalls if you are interested. The exact solution will vary by organization and probably will require executive support. Contact me and we can arrange something.


The Pitfalls


  1. All Assumptions are Well-Known

    Often there are many hidden assumptions, some of which are not true, that cause significant confusion with most development projects. Try to discover all assumptions from all participants; the one you do not know about could be causing major problems in the development project.


  2. All Developers are Equal

    This pitfall involves assuming that any developer can perform as well as any other developer on any subject area. Many system development pay scales are based on just such an assumption allowing only for a few different pay levels (usually based on years as a developer) and result in organizations unable to acquire and retain the top developers. Systems can be best developed by developers who understand the industry that they are developing for, both the business and techology sides. Productivity varies by person. By treating employees as people each with their own individual talents and expertise and rewarding them appropriately, organizations can significantly benefit from good talent well applied.


  3. Amount Produced is Directly Proportional to the Number of Bodies

    This builds upon All Developers are Equal and adds to it. Often one good person will produce many times more than a less skilled individuals. One unskilled person can reduce the overall productivity by deverting resources to solve that person's questions rather than getting the job done.


  4. Anyone Can Manage Technology

    Performing quality Technology Management requires someone who has a solid understanding of how technologies work, interact, and fulfill the mission of the organization. It is very different from organizational or personnel management.


  5. Anyone Can Plan Well

    Planning requires special aptitudes including the ability to think outside of the box, to consider short and long term ramifications, to understand the area that is being planned for as well as the areas in which it interacts, and to understand the long-term objectives and vision. Good planners are rare, particularly those who can handle the strategic aspects of planning well.


  6. Big Name Consulting Firms are More Qualified than Smaller Firms

    Big Name Consulting Firms generally have better name recognition with the decision makers but usually less ability to deliver good industry-specific solutions than smaller more specialized firms. They also tend to be very overpriced for the quality of service rendered.


  7. Concensus produces the Best Solutions

    If all the players are open-minded, willing to logically consider any solution, and have enough technical knowledge to make informed decisions, it may be true. However, it is rare to see these conditions met, so the few who truly understand the situation are usually overruled by those who don't and then told that they are difficult to work with.


  8. Contractor Performance Independent of the Client's Staff

    In fact, contractors are only empowered to degree the client's staff provides them information (the more comprehensive the better) and support (delegated authority). Good contractors will ask for what they need to do the job well and the responsiveness of the client's staff to these requests often determines the effectiveness of the contractor.


  9. Contractors Less Expensive than Employees

    In fact, unless a short effort or very specialized training is required, contractors are more expensive than employees, particularly when applied over multiple years. Any development organization that plans to address future needs of the organization should be staffed almost entirely by employees. Many companies use contractors to get around their Human Resource imposed salary limitations that prohibit paying a fair wage to highly skilled individual contributors, rather than fixing the problem at the root cause (HR that does not understand technology nor the value of highly skilled professionals).


  10. Contractor Selection Based on Buttering Up the Decision Maker

    This happens when the Decision Maker relies on his impression of the available contracting firms rather than a detailed evaluation of their technical skills. <">Remember that Good Marketing does not equate to Good Technical Abilities. 1


  11. Cutting Strategic Development in Hard Times is Good Business

    This does result in some short savings but in the long term costs far more than it saves. Good Strategic Development positions an organization for the future and enables an enhanced bottom line. I personally would avoid investing in companies that fall for this pitfall.


  12. Decision Making Outside of Planning Staff

    This pitfall is having organization who do not consider the overall picture making the decisions of what development to be done, rather than the experts. A good planning staff considers all the needs of every organization within the overall organization and does what is best for the overall organization.


  13. Departmentally-Owned Systems & Data

    This pitfall permits internal politics to determine what get accomplished, rather then what is best for the overall organization. Generally in these situations. processes and data will not integrate well between departments nor systems.


  14. Developers can be Pigeon-Holed by Skill

    For lightly experienced developers this can work, but for highly skilled developers, it is the ability to combine development skill sets across different development areas to solve on complex problems in cost effective manners that truly makes them valuable. Many firms do not look for the ability to work accross the skills sets, but rather focus on the skill sets almost exclusively. In a lot of cases, the ability to work the general skill, gives a good developer the ability to use specific products and techniques that are new to him with very little effort to learn them.


  15. Flexibility is too Expensive

    If you only consider short term cost, flexibility is more expensive than rigidity, but if you consider long term costs, anytime you know about the need for flexibility in advance you should incorporate it. It will pay for itself many times over in the next few years.


  16. Hire based on Short Term Needs Only

    Too many organizations do not consider long term needs when seeking employees, just the immediate need at hand. This can result in staffs that do not adjust well to change.


  17. Human Resources Effectively Screens Candidates

    For technical positions, most human resource staffs do not have the technical knowledge to proper screen and sort candidates for positions. They tend to look for candidates that fit a generic mode so they miss a number of candidates who skills would mesh well in the organization.


  18. Integration Best Done during Application Design

    Application Design is already too late. The most effective time to address integration is in the strategic architecture which should include how new developments integrate with older ones, the sharing of information (possibly in different forms), and the overall enterprise model.


  19. Industry-specific Technology and Information Technology Planned Separately

    For a number of industries, particularly service industries, planning should be integrated considering the capabilities of each technology and how they can enhance each other. If your organization has distinct planning staffs, with no single staff responsible for overall technology planning, you probably fit in this pitfall.


  20. Just-in-time Strategic Planning

    This pitfalls assumes that you can perform strategic planning on a narrow area as part of a project to implement that area. Good Strategic planning requires looking at the future strategic goals of the entire organization and planning for all areas to meet these goals. Just-in-time strategic planning commonly leads to significant integration problems, unachieveable strategic goals, and much high system development cost. With a good strategic plan, you can usually perform the detailed planning for each area as you implement that area with common elements planned out when first encountered.


  21. Lack of Commitment to Strategic Development

    Many organizations do not commit to strategic development or if they do, they do it on a one-year at a time basis. Many solutions require solid commitment to the overall development, including guaranteed funding and executive backing over multiple years to be fully completed (or even completed enough to be of benefit to the organization and serve as a base for further development).


  22. Latest Techniques Ensure Good Systems

    The use of the latest techniques has no relevance to whether a system is well designed or not. Good strategic design is what makes the difference.


  23. Management Position Endows Incumbent with Strategic Thinking Ability

    Absolutely false. Either a person has the aptitude or they do not. Experiences can help, but generally, if a manager is not a strategic thinker when they get the position, they will not be one in the position.


  24. Management Steering Committees Can Effectively Manage Projects

    Project Management is better handled by letting the project manager manage the project, facilitating his efforts to get the project done in a quality and timely manner, avoiding politizing the project or requiring steering committee concensus prior to work being completed.


  25. Money Thrown at Problems Solves Them

    Money thrown at problems without a well thought out plan that considers the strategic objectives usually makes the problem worse over time instead of resolving it once and for all.


  26. Most Developers Think Strategically

    Absolutely wrong. Most developers are uncomfortable thinking strategically or even outside of their nitch of expertise. It requires significant training, strategic aptitudes, and the ability to think at many levels simultaneously to be a good strategic thinker. Strategic Thinkers are very rare and when empowered make a significant difference.


  27. No Empowered Strategic Thinking

    Many organizations either do not have individuals who consider the strategic goals of the organization and how to use technology to accomplish these goals, or if they have them, they do not give them the power to accomplish what is needed. If you desire good flexible systems, solid executive-supported strategic technical planning is essential.


  28. Non-Technical Management

    In most large organizations, the upper levels of management do not understand technology and rely on their underlings to help them make decisions. Unfortunately, most middle and low level managers also do not understand technology, so politics dominate the decision-making process, usually resulting in inadequate systems development. What would work better is providing the decision-makers with aides (or direct contact with people) who understand technology and can advise them on the technical ramifications of alternatives.


  29. Off the Shelf Systems Integrate Well

    Unless these systems are designed to use and store data within a Enterprised-scoped database (outside of the off the shelf system), integration with other off the shelf systems and company developed systems will be very difficult and probably be difficult to adapt to the changing needs of the business. Some may provide limited interfaces to other off the shelf systems, but usually these lack the flexibility needed by the organization.


  30. One Solution Fits All

    Most Solutions are not flexible to serve all needs of any customer. The larger or more complex the problem, the more important it is to truely understand the problem and to address it specifically. This can require lots of flexibility to be built in the solution.


  31. One Year Budgeting Drives Development

    In many organizations, one year budgeting is strongly applied and drives the development process. This tends to result in good projects that take longer than a year to develop, being deferred year after year as they have no immediate benefit. This costs American companies many billions of dollars are year. Budgeting should look at the bigger picture and not just the short term and should adapt to market conditions. Development project funding should be an ongoing process and not concentrated in one massive effort each year. This wastes developmental resources.


  32. Outsouring of Service Related Technology helps the Business

    For companies which use technology for providing services, comphrensive integration is vital to the organizations ability to adapt to market demands and fulfill customer expections. By outsourcing parts of the solution, such as only information technology when other technologies are also used, such as telecommunications technologies, makes integration extremely difficult and costly and unlikely to be obtained. Also organizations need to watch out for the hidden charges of outsourcing, including significant fees to modify and change agreements, requirements, etcs.


  33. Patching Perferrable to Redesign

    In many cases, particularly when trying to add flexibility or additional capabilities to an application, redesign works better and costs less than repeated patching of existing applications.


  34. Planning Done Best Inside Each Organization

    Where it is important that each organization be involved with planning, it is best to have a specialized planning staff leading the overall effort and considering what it best for the overall organization.


  35. Popular Products are the Best

    The fad is IT today is to implement the latest and newest (i.e. most popular) product. This is usually done by edict without properly analysis and integration and can cost organizations millions of unexpected expenses.


  36. Pretty GUI Indicates Good Design

    Actually, the quality of the design can vary significantly from the quality of the graphical user interface. They should be considered independent factors and evaluated separately. Given the choice between a good design and a good GUI, the good design wins every time.1


  37. Process-Focused Development

    This type of development quickly limits the scope of the development, particular when being applied to a narrowly defined process, but can lead to significant problem integrated across systems and adapting to future needs. It would be better long term to understand the enterprise-wide situation and requirements including strategic requirements and develop processes that use enterprise-quality data to accomplish their needs.


  38. Short Term Solutions

    This is tactic that is used to get something done quickly at the expense of some of the more strategic requirements, usually with the promise to implement the better solutions and throw away the quick fix. However, once implemented, most of these short term solutions become permanent solutions with significant shortcomings. They tend to cost the organization many times the original development cost in work-arounds, patches, and enhancements, resulting in a total long-term cost far exceeding that of the strategic solution.


  39. Staffing Firms Recommend the Best Candidates

    Many staffing firms recommend those candidates that either makes them the most money or that they understand the best (which is a problem when staffing for technical people who are more skilled than the staffing firms' recruiters).


  40. Strategic Systems Development is Too Expensive

    This a common complaint about strategic development. Good strategic systems development pays for itself over time with improved revenues, faster response to changing market conditions, greater levels of flexiblity for customers, faster rollout of new products and services, and reduced overall development costs.


  41. Strategic Thinking is the Exclusive Function of Executives

    This only can work if the executives understand technology, how it integrates and how it can be used to achieve strategic business objectives. Most executives do not understand technology well enough to make informed strategic technical decisions, so they should be assisted by strategic thinking experts who deeply understand technology and its ramifactions to the business.


  42. Strategic Vision Not Necessary; Just Implement Systems as Needed

    Follow this and spend lots more and get systems that do not integrate well. Good Solid Strategic Technology Vision necessary to fulfilling well the Strategic Goals of any organization.


  43. Technical Thinking within Organization Not Heard by Executives

    Even when organizations have good technical thinkers, their thinkings are not heard by the Executive decision-makers but are filtered by the myriad layers of management between the thinkers and the executives. It is very difficult to get ideas past more than one level of inept management.


  44. Technology Management same as Personnel Management

    Very Wrong. These are two very different skill sets, which need to be addressed separately and adequately for each organzation.


  45. Testing Done Only When All Development Completed

    Testing is more effective when done iteratively during the development process, done as early as possible in each area.


  46. Users Specify Design

    The users specify as requirements items that are part of the design. This significantly limits what can be done and many times results in a bad implementation to meet the non-requirement requirement. 1



Go to Thomas Stobie's Work Pages.


Credits

I would like to thank those who provided suggestions for some of the pitfalls. The footnote above indicates that they contribute some or all of the pitfall and its description.