It’s the start of a new year and now's the time to act on those resolutions you made (or are thinking about making). Judging from the amount of interest expressed by IT practitioners and coverage in the industry press, I’d say one popular resolution is to become more agile to keep up with the pace of business. Here’s a quick test you can take to see where you are and set a baseline from which to monitor your progress this year.
The idea for this agility test came to me the other day when my wife looked up from an article she was reading in her magazine and asked me if I’d like to take a quick ten question test to measure the strength of our marriage. She smiled and said it would be interesting to see how well I scored. I knew I had no choice but to take the test and could only hope that I’d learned something about relationships in the last decade. I passed, but the test did point out areas where I could improve…
So, would you like to measure your IT agility? It’ll be interesting to see how you score. Here are the ten questions: (Jot down your answers and compare them with my answers at the end of this post; give yourself one point for every correct answer.)
1) As an IT leader, what is the best way to foster agility in both IT operations and systems development?
a. Plan a major campaign, coin a slogan, and kick it off with a department wide series of meetings and speeches
b. Select an area of the business where IT can make a significant contribution and launch a project do deliver something quickly
c. Put your staff through agility training workshops
d. Give your IT group clearly defined performance objectives and the authority to figure out for themselves how they will achieve those objectives
2) The best IT architecture to support agility is composed of non-proprietary, standards-based, open systems. Yes/No
3) The best language for agile system development is:
a. Java
b. C#
c. Ruby on Rails
d. Fortran
e. Greek
4) At the start of an agile system development project it is best to do a detailed assessment of the “as is” workflows and business logic in order to establish exactly what is happening in the current situation. Yes/No
5) On an agile project it is important to get the first deliverable into production in:
a. Six to nine months
b. About 60 to 90 days
c. 30 days or less
6) On agile projects it is more important to get working systems into production than it is to document the systems. Yes/No
7) What kind of project management practices and procedures are called for to support agile systems development? Can the project teams do their own project management or does there need to be a separate project office group? (Answer with three or four sentences.)
8) Companies could be a lot more agile if they had suites of systems like ERP, CRM, SCM, BPM and BI that were all from the same vendor and all talked to each other and shared data in real-time. Yes/No
9) What are the main skills needed to do agile development? Is it top-notch programming talent, knowledge about the Internet and databases and services oriented architecture? Or is it something else and if so what? (Answer with three or four sentences.)
10) Is the major benefit of IT agility to allow your company to become more efficient or more responsive? Why? (Answer with three or four sentences.)
ANSWERS ON NEXT PAGE
[ I do lively presentations on this and related topics [1] - mhugos@yahoo.com [2] ]
1. The answer is ‘d’. Agility starts with the dynamic generated by delegating full authority to the people who have to do the work and letting them figure out how to reach the objectives you assign to them. Once you do ‘d’ then you can do ‘c’ and ‘b’. Once you succeed with ‘b’ then (and only then) you can do ‘a’.
2. No - there is not a single best architecture for all companies and all situations. The best IT architecture to support agility is an architecture that you and your staff are skilled in using and that has proven over time to be stable and can handle the volume of transactions your organization must process. An agile IT architecture should also be easy to enhance and cost effective to operate.
3. If there ever was a best language for agility maybe it was Greek since that was the language spoken by the culture that first gave us many of the principles agility is based upon: objective inquiry; rational analysis; open debate of possible options; and application of knowledge gained to devise practical solutions to real world challenges (thank you Archimedes, Pythagoras, Socrates, Aristotle, Euclid…). There is no one best language for agile system development. The best language is a language your developers are skilled in using and that has proven to be capable of quickly providing the applications your organization needs.
4. Spending more than about two hours on an assessment of the “as is” workflows is an unnecessary distraction of your time, energy and cash. You and your organization have been living with the “as is” situation for some time and people know its shortcomings and they have ideas for what they would like to do. That’s all you need to get started; focus instead on designing new workflows and developing new technology to support those workflows.
5. It is important to get a working subsystem into the hands of your users within 30 days after the start of a project. This requires you to avoid the temptation to try to solve the entire problem all at once; it requires you to break big problems into meaningful chunks; and it requires you to move quickly and get things done – that’s what agility is all about. It also wins you tons of credibility and enthusiasm from your business users. They see fast delivery of things they can use to do their jobs better; now they make more time available to work with you; this generates the momentum required for successful projects.
6. This is a needless either/or statement that just provokes arguments which miss the point – you must do both; they are not mutually exclusive. Real agility happens when you learn to do both because IT agility requires an iterative approach to developing and enhancing systems. So systems must be adequately documented in order for people other than the original developers to enhance them. Needed documentation is largely in a graphic format and is composed of: system process flow diagrams; a storyboard of user interface screens; the data model; the object model; and diagrams of the technical architecture.
7. There should be a separate project office. Project development teams need to stay focused on designing and building the systems they are working on; it’s a distraction and bad use of developers’ time to have them do project office work. At the same time, fast-paced agile projects demand that everybody have continuously updated and accurate information on project status in order to coordinate their actions and make timely decisions. So the project office group constantly updates project plans and budgets, compiles and distributes regular status reports, and does project risk analysis and reporting as issues arise.
8. Agility has very little to do with whether or not you have an integrated suite of application systems from the same vendor. Attempts to install such suites of systems often turn into multi-year, multi-million dollar boondoggles and distract companies from the real things they need to do to be agile. Agile companies use techniques like services oriented architecture (SOA) to build new systems from parts of older systems and use business process management (BPM) and enterprise application integration (EAI) to collect and share data between different systems. Agile companies start where they are with what they have and focus on developing the new systems they need.
9. Programming skills are good but business analysis and team facilitation skills are just as important. Every agile development team needs to be skilled in a mix of six core techniques: joint application design (JAD); process mapping; data modeling; system prototyping – both user interface and technical architecture; object oriented design and programming; and system testing and rollout. Team members need to know how to apply these skills to investigate and analyze business needs, try out possible new system designs and create useful solutions (stuff the ancient Greeks taught us).
10. The major benefit of agility is to make your company more responsive to change and better able to capitalize on new opportunities as they emerge. Efficiency calls for optimizing a process to achieve lowest costs, but once a process is optimized these days, it soon becomes obsolete because prices on fuel and other goods fluctuate daily and customer demands evolve rapidly and unpredictably. Efficiency was the best way to compete in the older and slower industrial economy; responsiveness is the best way to compete in our global real-time economy. In a high change world responsiveness trumps efficiency.
[Michael Hugos, principal at Center for Systems Innovation [c4si], [1] finding elegantly simple solutions to complex problems; mentoring teams in agile development. His newest book is Business in the Cloud: What Every Business Needs to Know about Cloud Computing [3].]

Links:
[1] http://www.michaelhugos.com/Center_for_Systems_Innovation.html
[2] mailto:mhugos@yahoo.com
[3] http://www.amazon.com/Business-Cloud-Every-Needs-Computing/dp/0470616237