NEWSLETTERS
 

CIO.com updates, insights and advice on technology, management and your career.

 
 
 
SUBSCRIBE TO CIO
 
Are you involved in setting the direction for your company's IT budget or strategy?

Apply today for a FREE subscription to CIO Magazine!

 


Wed, Feb 27, 2008 22:51 EST

Agility Means Simple Things Done Well, Not Complex Things Done Fast

Topic: Applications

Blog: Doing Business in Real Time

Current Rating: 5 Comments: 4

Experience shows me (again and again) that agility is not about working fast but about finding elegantly simple solutions to business problems. You'll know you've found an elegantly simple solution when the business people agree it solves their most important and immediate problems and when the developers know the solution can be built and tested in 30 days or less.

Unless you find a solution that meets these two criteria, it’s not possible to be agile. And often, because people can’t find these simple solutions, they mistakenly claim that agility itself doesn’t work. They come to this conclusion because they attempt to be agile by cramming complex solutions into short development cycles through working harder, longer, and faster.

That attempt has as much chance of success as trying to cram ten pounds of you-know-what into a five pound bag. Inevitably, the bag breaks, and then there is a mess to clean up.

An elegantly simple solution (a robust 80% solution) doesn't do everything (there isn’t time for that), just the most important things. Finding this solution is not easy; it’s the creative part. It requires business people to figure out what tasks out of all the tasks they perform are the most important ones and what system features they need to handle those tasks. Then developers have to figure out how to build and test a system to deliver those features in the short amount of time available.

Business people need (at least temporarily) to suspend the notion that everything they do is complex and difficult (they can certainly revive that notion later when talking to the boss about a raise). A skilled JAD facilitator who walks them through a process mapping exercise will almost always be able to uncover those most important tasks because in drawing out the sequence of tasks in any workflow, and their inputs and outputs, it becomes obvious which tasks are the most important.

Then it’s the turn of the technical people (at least temporarily) to suspend the notion that everything they do is complex and difficult. After the most important tasks are identified, business and technical people engage in an open give and take exploration of features needed for those tasks and how such features might be built in 30 days or less.

Developers can’t cling to the idea they have to write a lot of code to get things done (this is hard because they often believe their value is based on writing lots of code). They have to think about ways to leverage existing systems and data and combine components like databases, spreadsheets and web browsers with only small chunks of custom code to deliver the features business users want.

This is what the future looks like. One of the world’s largest software companies endorses this idea (can you spell VSTO?), and other people also know this to be true.

If developers insist on writing lots of code, the project will not be agile. You know things aren’t going well when more developers get added to the team, and they start working 12 hour days, and they stop updating the project plan, and nobody really knows what is going on because everybody is so busy. Then they find long days aren’t enough so they start working weekends as well; and then they burn out.

Indeed, the developers do churn out thousands of lines of code, but it’s just a symptom of their failure to come up with an elegantly simple solution. It isn’t possible to write thousands of

You do not have flash or javascript support.
Average (2 votes)
5
 
 
Fri, Feb 29, 2008 20:15 EST
Posted by: Adrian Tudor
Rating:

I think I agree with the spirit of this post but disagree with some of the details. Or maybe I just need some clarification.

You state that an agile project lasts no more than 30 days – and that in itself is a measure of success. Therein lays my dilemma. Usually in agile development a 30 day sprint or iteration is just one of the many “periods” of development, not the entire cycle. Typical product development using agile methodology uses sprints or iterations that vary in length from 1 week to 30 days, but nowhere does it require completing an entire project in 30 days.

If you refer to solving an internal business problem (that may appear complex) then I would tend to agree with you, although even these situations may require a couple of sprints and cannot be deemed a failure or non agile if they extent to 2-3 sprints or more.

However if you are referring to software product development (since you refer to lines of code), you’re completely off. It’s like saying Excel or SAP or Oracle need to be developed in 30 days.

I have been running Development teams for many years and I have adopted an agile methodology about 8 years ago. Frankly – I will not do anything but agile; as it’s the only way I can ensure success and relevancy. In the last 7 years of practicing agile development I’ve built many successful commercial software products -- not once have I completed a product in 30 days. At best I can probably point out to building a prototype. Every single one of my products runs anywhere from 3 to 9 or n sprints of 30 days each, depending on complexity.

I find no correlation between the number of lines of code a developer writes and the success of the agile methodology. Lines of code are not a good measure of agility. I would argue that testability is a good measure instead. For example building certain functionality may require large libraries with lots of lines of code. Likewise, various development tools produce large amount of code as a byproduct… so every sprint you can have a large net influx of new lines of code. Does that mean one loses agility? Absolutely not! At the end of a sprint, one determines success based on accomplishing or not the goals of the sprint, not the number of lines of code a developer wrote.

The true criteria for successful development using agile is that at the end of the sprint you end up with an operational product, that is testable and has some level of QA, not that the entire system or product is finished within a 30 day sprint.

Agile forces both customer and developer to constantly prioritize the important features up font. That means that as you start the new sprint, you go again through prioritization, requirements, design, etc…

Your description of a “problematic” project is really not representative of an agile development style and bears no correlation to the reality of agile software development. Sometimes developers need to be added to the team based on plan. With agile you figure that out pretty quickly. That’s why you’re agile – you can react quickly to customer/product demand and requirements. Likewise, no one involved in agile development should ever claim that they don’t know what’s going on. That’s what daily scrums are for. Sometimes you do have to work 12 hours day… Development is exciting and that’s just part of it. Every successful product has these crazy experiences and stories as part of it.

One last point, sometimes demos of the system at the end of the sprint do crash and the lead needs to set the proper expectations with the business owners. A crash of the system is a very immature way to consider whether the business problem is in process of being resolved or not, or whether the goals of the sprint were met or not. The business owner needs to see above that. Bugs do happen – let’s not panic about it.

I do agree with you about the simplification paradigm and that the focus should be in finding elegantly simple solutions.

 
Wed, Mar 5, 2008 15:15 EST
Posted by: Michael Hugos
Rating:

Hi Adrian,

I'm thinking we basically agree on agility with some differences in our respective techniques. You and I both believe that at the end of a sprint (or what I call a blitz) you deliver a usable product that has had QA and business people can put it to use right away.

It's understood that what is delivered at the end of a blitz is what I call a "robust 80% solution"; it isn't the whole application. The whole system gets progressively built out in iterative blitzes.

We also agree that nobody on an agile project should say they don't know what's going on since daily scrums or standup status meetings keep everyone up to speed. I see problems always occur when those daily meetings don't happen and developers start getting evasive about what they're doing (often out of fear they'll be penalized). The transparency required by an agile project takes some getting used to before people see why it is so central to the whole practice of agility.

And I agree that sometimes you do have to work 12 hour days and that is part of the excitement of development. But I try to make sure that the 12 hour days are used only sparingly so as to avoid burnout.

Agile project iterations generally last 30 days because that's a tight time constraint so it forces business and technical people to prioritize and focus on getting the most important system features done first. After people show they have the discipline and skill to get things done in 30 days then it's possible to lengthen the iterations to 45,90, or 120 if necessary.

But I need to see proof people can handle longer iterations without just lapsing back into the comfy, leisurely, futile, old waterfall method.

So, who sez agile projects last 30 days? I sez.

Best regards,
Michael

 
Sun, Mar 9, 2008 16:54 EDT
Anonymous user
Posted by: Glenn
Rating: 10

How about we all agree not to read the advice of "experts" who obfuscate already poorly-understood topics by coining their own non-normative vocabulary to describe it for selfish reasons?

 
Mon, Mar 3, 2008 10:50 EST
Anonymous user
Posted by: Anonymous
Rating: 90

This article makes an excellent point to not over think and over complicate solutions to business problems. One of the concepts that is an oversight in this article is that many times when you involve IT to build a solution (from scratch most of the time) which involves writing code the solution gets more complex than generally is needed.

There is a whole wave of Enterprise Applications that puts the control of building a solution into the hands of the people who need to solve the problem....the business person or unit owner.

These applications allow the business person to automate, measure, enable efficient workflow, and allows them to be able to report every step of the way to ensure the process is being executed as planned and that the problem is truly being solved.

No two businesses are alike and every organization has to approach each problem in a way that best suits their business. Additionally, no two business people are alike and a platform approach to solving business problems is what organizations are moving towards. Business users need to be able to build new solutions on the fly, expand upon current applications/solutions, integrate existing solutions and unify the information silos....with minimal involvement from IT.

The output of solutions should not only solve a business problem it should increase efficiencies along the way. Creating a simple solution to a business is not always the answer, applications should be made in a way to empower the business person and streamline a complex issue so that it is complex in design but not complex in implementation.

About this Blog

The global economy has a life of its own, it lives in real-time, and we are all part of it. Hello brave new world.

Start a Conversation
Click to post

Got something to say? We want to hear it! Click the Post button to get started. GO»

EXPERT ADVICE
See our roster of experts.

Advice & Opinion from more than 108 of IT's most insightful thinkers.

  PARTNERS       WEBCASTS    
 

Preparing for the Next Cyber Attack

Ensure you are up-to-speed on the latest security technologies available to keep your network safe in this Executive Guide. Get a thorough assessment of the corporate security threat landscape. Protect your network with data leakage protection, NAC and other technologies explained in this report.

Sponsored by Qwest  Read this Executive Guide »

 

Cloud Building: 8 Ingredients for Internal Clouds

Cloud computing: a fundamentally new way to deploy IT services and functions cost-effectively and quickly. Learn how the VMware vCloud initiative dramatically improves how consumers access their information and experience applications as well as the 8 ingredients to get you going.

Sponsored by VMWare  Read this White Paper »

 

Investing in Business Analytics Technology

You're thinking now is the time to take the plunge into business analytics, but you still have some unanswered questions. This research summary addresses the most common questions and concerns surrounding the successful launch of a business analytics initiative. It also includes real-world examples of organizations already getting return on their investment.

Sponsored by SAS  Read this White Paper »

Resource Alerts

Get instant email notifications by topic when white papers, webcasts, and case studies are added to our library.

Resource Alerts

Get instant email notification when white papers, webcasts, and case studies are added to our library. Don't just be up-to-date—be up to the minute with our new Resource Alerts.

Improving Transparency and Accuracy in IT Cross Charging

During this Webcast you'll learn how KBC Group implemented SAP BusinessObjects Profitability and Cost Management and realized many benefits.   View Now »

 

Cost Savings and Risk Reduction with Effective Systems Management

Join us and see how Novell can help you respond to today's economic challenges by increasing productivity, reducing costs and aligning IT initiatives with overall business goals.  View Now »

 

Capitalize on Your SAP Content

Learn ways to improve your content management by viewing these Open Text webinars today.  View Now »

Resource Alerts

Get instant email notification when white papers, webcasts, and case studies are added to our library. Don't just be up-to-date—be up to the minute with our new Resource Alerts.

 
NEWSLETTER

Sign-up for the Blogs & Discussion Newsletter

 
FEATURED SPONSORS
 
 
 
SPONSORED LINKS
 

Introducing the new HP ProLiant G6 server family

Accenture: Outsourcing for Competitive Advantage. More...

Better spam protection with Postini for just $1/user/mo

Introducing the new HP ProLiant G6 server family

infoBOOM! - The Mid-Sized Company CIO's Exclusive Community

Accenture IT Consulting: Logical meets technological. More . . .

The Fraudster Economy Model: Operating a Business in the Underground

Trade in your old laser printer and get up to $1000 back!

Taking the Service Desk to the Next Level

Revolutionizing Enterprise Application Deployment

Why Data Loss is Increasing--and What You Can Do About It

Data Loss Prevention: A Better Way to Approach Security

Learn how to managing client systems in the enterprise.

Build a High-Performance Open Web Platform

Mid-Sized Company CIO Community: infoBOOM!

Enterprise PBX Comparison Guide

Getting Value from Outdated Networking Equipment

Losing Ground: 2009 TMT Global Security Survey

Stop Application Fraud at the Source with Device Reputation

Learn about the VMware vSphere (TM) & Intel (R) Xeon (R) Processor 5500 Series

Learn how a virtualized enterprise can help your company reduce costs

Why Isn't Server Virtualization Saving Us More?

Learn how to save 30% through project & portfolio management.

How Open Source is Changing the Face of Enterprise Software

8 Key Ingredients to Building an Internal Cloud

Accenture IT Consulting: Enabling high performance. More...

Top Five CIO Challenges

Insight makes it easy to spend your Microsoft subsidy check.

Five minute business analytics assessment. Immediate results.

Dangerous Collaboration Practices: 5 Ways IT Can Minimize Risk

Accenture: Outsourcing for uncertain times. Click to learn more.

The Case for Investing in Business Analytics Technology. Read white paper.

Live Webinar: Applying Business Analytics. Click here to learn more

Seven Ways ITIL Can Help You in an Economic Downturn

Developing A Dynamic, Real-Time IT Infrastructure

Maximizing the Business Value of the PC Infrastructure

Communications and Collaboration Needs at Business Organizations

Using Open Source to Deploy Web Applications

Cloud Computing: Read about VMware's compelling vision & set of products

Enterprise PBX Buyer's Guide

Secondary Market Primer: Your Network at Half Price

How Interactive Viewer Reduces the Effort to Meet Visualization Requirements

Top-line Performance that's Bottom-line Efficient

White Paper: 8 Key Ingredients to Building an Internal Cloud

Read about virtualization and consolidation effort best practices

Building the Virtualized Enterprise with VMware Infrastructure

The Global Marketplace Today: Strategies for Tough Times

Top 10 Business and IT Drivers for the Wealth Management Sector

5 Steps to Automating Accounts Payable

Bottom-Line Benefits of Virtualization