Recently, I had the privilege of interviewing Troy Coleman on the topic of agility in the data center. Troy is senior principal product manager for CA Technologies and is responsible for CA’s DB2 for z/OS tools. Troy also writes the DB2utor blog for IBM Systems Magazine and has extensive experience in all facets of database systems development. You may have heard Troy speak at your local user group or one of the large international conferences. He’s also a former adjunct professor for Concordia University-River Forest where he taught database management systems.
Craig Mullins: Troy, let’s dig right into our discussion by making sure we have our definitions aligned. The dictionary definition of ‘agile’ is ‘characterized by quickness, lightness and ease of movement; nimble.’ Given that definition, applying agility to business, software development and database management seems like a good idea. Wouldn’t you agree?
Troy Coleman: Yes, I would agree. Having an agile organization means being able to move forward fluidly without concern about the increasingly varied skillsets of your team. An agile team can react quickly to changes and adapt its systems to more closely align with its business operations. By reducing the time to respond to business needs, the agile organization can reduce costs, improve return on investment and beat its competitors in the marketplace.
Mullins: On the other hand, agile has taken on a meaning all its own within the context of software development and IT. The Agile Manifesto [http://agilemanifesto.org/principles.html] lists the principles of agility in terms of developing software. It begins by stating that ‘Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.’ Does this imply any trade-offs in terms of what types of things should be favored during the software development cycle?
Coleman: I think agile is one of those words that can mean different things to different people in different contexts. The Agile Manifesto has some good ideas in it, but it isn’t the be-all, end-all definition of what agility in the data center has to be. For example, the manifesto states that it values ‘Working software over comprehensive documentation.’ But I want both working software and comprehensive documentation—and so should you.
At any rate, there are always trade-offs in the development cycle. It’s just like the old saying goes: ‘You want it to be good, fast and cheap … you can pick any two.’
Mullins: How does agility serve to empower individuals within an organization?
Coleman: An agile organization must be able to provide high-quality products and services to its customers amidst cost reduction efforts without interruption or performance degradation. By giving individuals the tools they need to succeed—and the authority to use them as appropriate—turnaround time for projects can be reduced. This form of self-empowerment to do what’s needed as it’s needed relies on having the proper tools. Often, your use of the most current software can help ensure your performance is optimized and your resource utilization is maximized.
We’re both database guys. So let’s think about it in terms of DB2 for z/OS. An agile data center that relies on rapid reaction to customer needs will be constantly developing new software. And new software typically means new database requirements. How the DBAs make those changes can greatly enhance, or impede, the schedule for the project. Having tools that understand how to make changes appropriately to database structures with minimal to no impact on availability is a key criteria for agility, in my opinion.
Mullins: As you suggest in that answer, one of the tenets of the agile movement is continuous development. The thinking goes like this: The real world is always changing so the software we are developing should be able to be always changing. Doesn’t this imply that software development projects are never completed? And wouldn’t that have an impact on developer morale?