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.
Click on a particular topic to go to it or go to the bottom of the page to see them all.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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).
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
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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).
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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
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.
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.
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).
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.
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.
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.
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.
Very Wrong. These are two very different skill sets, which need to be addressed separately and adequately for each organzation.
Testing is more effective when done iteratively during the development process, done as early as possible in each area.
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.
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.
© 2001-2003 by Thomas A. Stobie, SFO
Last modified on 24 Sep 2003.