Saturday 19 January 2008

Counter-measures to bad Information Technology practices

Dr 90210: "The act of virtualizing IT infrastructure while maintaining the poor underlying service management processes, and in so doing, hoping that your dog becomes a princess."
The obvious counter-measure to the above bad practice is to start with implementing a process methodology before you start virtualizing your IT infrastucture. Try ITIL (or even MOF!)

Tower Of Babel: Large software project with poor management and communication. Counter-measure: Include a solid communications plan in each project.
Written In Stone: Documentation is treated as if it is "written in stone", i.e. that it cannot be changed and that it is intended to be permanent. Requirements documents and detailed design documents are often treated this way, but it also extends to interface descriptions, enterprise policies and even checked-in source code. Counter-measure: Documents are mostly records of decisions and agreements made between team members and can be changed.
Jekyll And Hyde: An opportunist team member whose behavior is totally dependent on the audience. Jekyll transforms to and from Hyde in a nanosecond. Counter-measure: A good long talk in a proper and non-offending environment. Transfer to other projects or business units. Warn, aim and fire.
The Piggy Bank Is Empty: Critical projects or products are rejected because there’s no perceived budget even in an endeavor that obviously pays for itself. Counter-measures: The rewards and benefits should be measured and determine if they outweigh the budget.
Give Me Estimates Now: A client demands estimates before you have enough data to deliver it. You accept the "challenge" and give estimates (i.e. guesses). Counter-measure: Don’t baseline.
False Economy: You want cheapness now even if that means paying more in the long run. Counter-measure: Management should not apply the wrong metric to support. If "cost" and "efficiency" is the number one metric then a support queue develops to make this number look better. Factor the cost of business unit users waiting for services into the metrics.
Pseudo Team Player: The first team member to complain that others within the team are not being team players, is usually the disruptive force. Counter-measure: Warn, aim and fire.
Scapegoat: Someone must be punished, whether through demotion, redeployment or removal of responsibilities, or banishment to some area of no value or importance. Counter-measure: Praise in public and punish in private.
Nationalism: The habit of identifying oneself with a single nation or other unit, placing it beyond good and evil and recognizing no other duty than that of advancing its interests.... The abiding purpose of every nationalist is to secure more power and more prestige, not for himself but for the nation or other unit in which he has chosen to sink his own individuality. Counter-measure: Team building.
Hero Culture: The one who stays later than the others is a hero. Counter-measure: Out by 5.
Glass Wall: Prevents people from expanding into other fields, not because they lack the ability, but because they lack the relevant experience. Counter-measure: Candidates should get in the habit of listing aspirations in their resume. Employers should assess how much training they would be willing to accept in a near match.
Dry Waterhole: You get into the habit of specifying stringent requirements for a job when it is not strictly necessary. Over time this habit spreads to other employers, and the pool of available talent dries up as lesser experienced people are denied the opportunity to get experience. Counter-measure: Staff hiring requires research to produce effective results. Think globally. Start thinking of staff training as a necessary part of good corporate citizenry rather than an unnecessary overhead that will be wasted when staff move on. After all, if everyone does this, then the investment you lost with your last resignation will be picked up with your next hiring.
Forklift: When infrastructure cannot be upgraded and has to be wheeled out and fully replaced with an alternative. Counter-measure: Look at the history of a vendor in protecting the investment of an enterprise. ForkLift vendors are usually serial offenders.
Swiss Army Knife: Often used as an idiom for a tool that does lots of things "acceptably" well (for some level of "acceptable"), though it does nothing optimally. Counter-measure: Don’t use an IT tool or framework that claims to be a solution to all problems.
Boat Anchor: As a piece of software or hardware that serves no useful purpose on the current project. Often, it is a costly acquisition, which makes the purchase even more ironic. Counter-measure: Send competent engineers to the product-training course, in order to evaluate, before you buy the product.
Fire Drill: Management waits until the last possible moment to allow developers to proceed with design and implementation; then they want results almost immediately. Counter-measure: Proactive design and prototyping are often warranted, even if business unit users and management are not completely on-board.
Train The Trainer: Train just a few individuals in formal classroom settings, then employ them to train other team members. Counter-measure: Consistency and quality in training is more important that a perceived cost saving.
Not Invented Here: A product or specification is rejected because the decision maker was not the originator of the idea. Counter-measure: Investigate your peers and competitors. Document all the good ideas and implement the best ones in your own environment.
Kitchen Sink Design: Specification for a product about which you know little or nothing, you will be uncertain just what the product should do. You will be under pressure from impatient executives desiring revenue, and impatient developers desiring something to code. Obtain detailed information on all products relating to the one you are charged with specifying; Throw in a few products in unrelated areas. Counter-measure: Create documentation that is understandable.
Architecture As Requirements: A new system is being designed. Designers want to use the Best Practices and technology available. There often is a new-fangled technology/product/process in the marketplace; and/or the design team/architect has a "pet" favorite technology. There is no compelling business unit reason to use any particular technology. Counter-measure: Make certain that only the true business unit user needs are addressed and allow the design team the freedom to discuss viable alternatives.
Red Adair Syndrome: Red Adair set up a company that extinguished oil rig fires. He could dispatch a well-equipped team anywhere in the world, at a moment’s notice, to put out these dramatic fires. Unfortunately, some IT shops adopt the same approach for managing their systems. Counter-measure: Most computer-related problems (particularly those related to performance and capacity) gradually develop, and should therefore be spotted and fixed before end-user service levels are affected.
Planning 911: Poor planning, either because of too little or too many details. Counter-measure: Adopt a repeatable project methodology.
Automating Bad Business: Automating an inefficient operation will magnify the inefficiency and not reduce it. Counter-measure: Correct the business by making good business before automation.
Yet Another Meeting Will Solve It: A problem exists with project time lines. To solve the problem, meetings are arranged. Team members that should be involved with delivering the project start to be involved in these meetings. The result is that the projects delivery dates slip even further. Counter-measure: Make meeting shorter. It's not frequent meetings that are evil, but long meetings, especially with many team members.
Shoot The Messenger: Nobody likes to hear bad news. Someone has discovered a problem, and has come to you to share the discovery. So you yell at him. Counter-measure: Blow up at the problem, and invite the messenger to help you scream. Make it clear that you see the messenger as a partner in solving the problem, not as its cause.
Ground Hog Day Project: Periodically, meetings are held which seem to discuss the same things over and over and over again. At the end of said meetings, decisions are made that 'something must be done'. After a week/month the meeting is repeated - the project goes no further forward. Counter-measure: Project dashboards - put information on the wall, somewhere obvious and accessible. This can be output information, state of the computation information, or a mere meeting record, inventorying meetings, attendees, and time spent. This produces effects through social engineering by through team member’s innate reactions to the information.
Fear Of Success: Management creates a defensive environment, analogous to large numbers of defenders on a soccer field trying to defend the goal and never attacking. Counter-measure: Learn to reward hard work, effort, and sacrifices that are made to achieve success. Appraise the level of achievement, success, and accomplishment. Don’t make excuses for being unsuccessful. Encourage honest, open, candid feedback especially when self-destructing or backsliding. Recognise and credit your peers for their personal achievements, successes, and accomplishments.

If It Ain't Broke, Don't Fix It: Some projects sometimes achieve a state where it is working, but it is not really done in the way that is optimal. Some people advocate the view, that if it is working, you should not change it. Counter-measure: Proactively maintain systems to prevent them becoming broken.
Big Ball of Mud: These systems show unmistakable signs of unregulated growth, and repeated, expedient repair. Information is shared promiscuously among distant elements of the system, often to the point where nearly all the important information becomes global or duplicated. The overall structure of the system may never have been well defined. If it was, it may have eroded beyond recognition. Programmers with a shred of architectural sensibility shun these quagmires. Only those who are unconcerned about architecture, and, perhaps, are comfortable with the inertia of the day-to-day chore of patching the holes in these failing dikes, are content to work on such systems. Counter-measure: Improve the architecture of the systems.
Silver Bullet: An automation tool is taken to be more reliable than adopting the necessary operational process. Or a singular control is adopted on the assumption that there is no multiple causation. Counter-measure: There is no silver bullet!
Sumo Marriage: A fat client deeply married to a fatter database is too rigid and inflexible for growth. Solid design principles (separation of presentation layer and business model into two logical tiers, and not putting business rules into the database as triggers and stored procedures) are ignored due to developer ignorance and/or sloth. Applications designed at a business unit level are grown outside the bounds of original design with little thought to implications to the environment (network impact, hardware scalability, etc.). Databases and coding languages at the two-tier business unit level encourage poor design and awkward non-scalable architecture. Business unit coders rarely think or are challenged to gain an enterprise view. Counter-measure: Use solid design principles by separating the presentation layer and business model into two logical tiers. This can be achieved by putting business rules into the database as triggers and stored procedures.
Copy And Paste Programming: Minimize reuse costs by cloning code and modifying it to suit new contexts. Counter-measure: Black Box reuse reduces maintenance issues by having a common source code, testing, and documentation for multiple reuses.
Business Unit Users Are Idiots: Rather than asking business unit users what they want, the project gurus synthesize requirements based wholly on their own accumulated knowledge. Counter-measure: Improve communications with business unit users which will result in better judgements.
Spaghetti Code: Code in which control flow is tangled up like spaghetti. Counter-measure: Maximise the ability the easily change the code then improve its comprehension.
Poltergeists: Unnecessary and redundant navigation paths, highly transient associations of particular objects, presence of stateless objects, occurrence of temporary and short duration objects that exist only to invoke other objects through temporary associations. Counter-measure: Allocate the responsibility to longer-lived objects and eliminate the poltergeists.
Golden Hammer: Team members are committed to the technology they know. Unfamiliar, technologies are seen as risky. It is easy to plan and estimate for development in the familiar technology so the familiar technology is used. The technology (or concept) is applied obsessively to many problems, including where it is clearly inappropriate. Counter-measure: Expanding the knowledge of developers through education, training, and book study groups exposes developers to new solutions.
Lava Flow: When unused blobs of code are hanging around in a system, e.g. code that was written to support Win16 while the product is now supporting only Win32. Counter-measure: Configuration control processes that eliminate dead code and evolve/refactor design towards increasing quality.
Vendor Lock-In: Dependence on a particular vendor's technology, which makes it difficult or expensive to use products from another vendor. This occurs when an enterprise adopts the architectural framework of a vendor “lock, stock and smoking barrel.” Counter-measure: Technology standardization, baseline analysis, technology criteria measurement, filtering of products using measurements and leverage 3rd-party interoperability.
Stovepipe: A system procured and developed to solve a specific problem, characterized by a limited focus and functionality, and containing data that cannot be easily shared with other systems. Counter-measure: Make the system as simple as possible, which means it is understood better. The benefit is that it can be changed more rapidly while keeping it reliable.
Reinvent The Wheel: Do not use something that was invented by some other person, in some other place, or at some other time. Instead, write it again from scratch, possibly with all the defects it already has. Counter-measure: Do not tediously repeat earlier discoveries or inventions. Rather reap the benefits of previous endeavours.
Design By Committee: Put together a big committee to solve the problem. Let them battle it out amongst themselves and finally take whatever comes out the end. Counter-measure: Use a standardised approach and remember that less is better in an extreme world.
Killer COTS: A COTS (Commercial off the shelf) application is procured with the intent that it is able to solve multiple and dissimilar business requirements. Counter-measure: Remember, Jack of all trades, master of none. Use the best application for the task and hand.
The Blob: Systems have a few routines that have hundreds of methods and variables and which encapsulate all the logic that the entire program needs. Counter-measures: Re-factor the design to distributed responsibilities more uniformly and isolate the effect of changes.
Architecture By Implication: A lack of architecture specifications exists for a system. The architects responsible for the project are experienced with previous system construction, and assume that documentation is unnecessary due to their competence and experience. Counter-measures: The solution entails an organized approach to systems architecture definition. The approach relies on multiple views of the system. Each view models the system from the perspective (viewpoint) of a system stakeholder. The stakeholders may be real or imaginary, individual or aggregate. Each stakeholder is responsible for a high priority set of questions and issues. Each view represents the whole information system and answers these key questions and issues. The views are linked for consistency. A view comprises a set of diagrams, tables, or specifications. Generally a view is a lightweight specification. The purpose of the architecture documentation is to communicate architecture decisions and other issue resolution. The documentation should be easily understandable and inexpensive to maintain.
Analysis Paralysis: Situation where team members enter into a phase of analysis that only ends when the project is cancelled. Counter-measure: Keep models small. Never integrate them. Building a bigger model doesn't add knowledge - it destroys knowledge. Do the minimal to achieve a goal then stop! Management should not review technical documents but instead measure functionality. If the measurement shows no improvement then pressurize team members to up their game. Assign the architecture role to a skilled individual. The architect is not involved as a team member in system development and is not responsible for analyzing the project's requirements. Architects are responsible for providing generic tools to coordinate and support the IT teams. Voting or meetings, especially when deciding infrastructure should not decide architecture. Always start the project with as single requirement and a prototype.
Lord Voldemort: A manager who climbs up the corporate ladder taking glee in the misfortunes of others. He succeeds in directing attention away from his own shortcomings by criticizing his peers. Counter-measure: Give him enough rope to hang himself.
Hidden Agenda: System requirements are not adequately documented, either through carelessness, ignorance or malice. Counter-measure: Document actions and operations and allows confirm with a follow-up email.
Death By Planning: An enterprise has a competent project team with universal egos that want to prove beyond any shadow of a doubt that they know how to design, develop, code, test, document, implement and maintain an IT environment. And like silk worms they go to work and produce documentation to the point that everyone forgets why they wandered into this swamp of production and planning in the first place. Counter-measure: Design Goals! If you don't know where the finish line is... how can you finish the race?
Borg Collective - Multiple managers form a committee to destroy IT and assimilate team members to their level of incompetence. Counter-measure: Rudy Giuliani has the following to say about leadership: have a set of beliefs, become an expert, be respectful, discourage yes-men and understand good leaders, not good leadership.
Mushroom Management: The project manager treats team members the way mushrooms are grown, keep them in the dark and feed them manure. The assumption is, "You do your little value-added work and you do yours, and I'll pull all the strings together." What that really says is, "I don't trust you as a group, and I certainly never bothered to develop you as a team." Counter-measure: Development of team with frequent interactions to maximize usability and acceptance.
Micro Management - IT management believes that team members are low in competence and motivation. Management steps in and directs the activities of the team in order to get things done and to deal with emergencies. Counter-measure: Management needs to mature and allow the team members that they appointed the space to do their work without interference.

CornCob - Historically, corncobs were used in outhouses in lieu of toilet paper. Difficult team members obstruct and divert processes. The agendas of these CornCobs are addressed through various tactical, operational and strategic actions. Counter-measure: Public humiliation. Responsibility - “You raised the issue, you own/fix the problem.” Corrective interview. Stress reduction. Reform the policies and procedures. Reorganization or fire.

Crap factoid: Termed by the IT Skeptic as "pure B.S. that almost sound like a fact, and will be presented so often that everyone will think it true." Often presented by research companies who have been hired by vendors to propagate a viewpoint, which may or may not be correct. Counter-measure: Your strategies and viewpoints should be based on your business requirements and customer demands and not on a vendor's influence to increase their own profit at the expense of yours.

2 comments:

  1. Very interesting site that I find rich, pleasant and well organized!
    Honour for me if you include it in my

    "Multilingual" topliste Panorama

    Http://everyoneweb.fr/topliste

    Best continuation!
    Sincerrely Yours! Kamdou

    ReplyDelete
  2. http://duckdown.blogspot.com/2008/03/enterprise-architecture-and-death-by.html

    ReplyDelete