developerWorks: This is a developerWorks podcast. I'm Scott Laningham here with Khurrum Nizami who is IBM Rational worldwide tech lead for Change and Configuration Management.
He's here to preview his March 18th Webcast coming up. It's titled "The Apples to Oranges Dilemma: All Agile development tools are not the same." [Registration required.]
Khurrum, thanks for making time for this today. Appreciate it.
Nizami: Hi, Scott. Thanks.
developerWorks: Now, we've talked about Agile development a number of times on this podcast, notably with IBM's Scott Ambler, whom I'm sure you know. But let's define again for the discussion today what Agile development is, if we could.
Nizami: Sure. So when people say Agile development, they're often referring to a number of Agile methods or best practices that you take when you're developing software. And typically that's using either doing an iterative, collaborative, and self-organizing method of developing software.
The core concept of Agile development, it's focused on risk and value and the regular production of working software. And these principles set Agile development teams apart from more traditional software development approaches. These principles such as self-organizing teams, embracing and welcoming change from your requirements, your plan, and working software as a principle measure of progress.
developerWorks: That's good. Now, we've heard about also about Agile planning and Scrum. We've heard those terms. How do they fit into this?
Nizami: So Scrum can be described as project planning and process framework for Agile development teams. Teams that are adopting Scrum many times they use the name interchangeably with adopting Agile development since the practice or guidance in Scrum aligns really nicely with Agile development principles.
Now, Scrum's not necessarily the only approach you can take to Agile development, but it's definitely a popular approach and often seen as a good place to start when you're thinking about adopting Agile.
Scrum is also most closely tied to the practice of Agile planning. And Agile planning is how you organize your project iterations and work with your development plans on the project as you create software.
developerWorks: Khurrum, let's talk about the challenges now that people face when they're putting Agile development and Scrum into practice. Cover that a little if you would.
Nizami: Sure. So the challenges are usually encountered when they're putting Agile principles and practices into operation in their business.
For example, one Agile principle is to use face-to-face communication and close daily interaction between the business teams and development teams. But the challenge is that many software development teams and business organizations today are geographically distributed and it makes it difficult to have regular and frequent face-to-face communication.
Now, another Agile principle is to welcome change in order to ensure that you're always delivering right product for the customer. And welcoming change is great ... I mean, it allows us to ensure that we're in tune to our changing project priorities and the constraints that we have ... but the problem is that change usually happens faster than we can react to it. And when we don't have the transparency we need or we're not fast enough to adjust and rebalance our plans, we can get into negative feedback loop before a change ends up leading to a lot of confusion and chaos.
Another principle that is core to Agile is simplicity and focusing on individuals and interactions and not necessarily following a defined process. But the problem is that applications being developed today, they've become essentially more critical to businesses. They involve multiple stakeholders, requirements, and constraints for many different places. And you're going to have a lot of people involved, including your end users, business partners, sponsors, system integrators, lines of business, marketing, engineering, corporate ... lots of different groups. And the scope and size of the development projects can also become larger and there could be more people, more developers, and more people participating.
And as all this stuff comes together, there's going to be a greater need to ensure that everybody is working together effectively. So, you know, that's going to be a challenge in keeping things simple.
developerWorks: Absolutely. So how do they do that? What are some of the ways they can address those challenges and stay together on things?
Nizami: You can leverage collaboration tools. They can help you work together more closely with your development teams and stakeholders and customers.
And it's also important to realize that Agile principles and Agile challenges are usually interrelated and compounding. So if you're going to maximize the successful employment of Agile principles, you're going to get some good success ... but similarly, if you don't effectively leverage Agile principles on your projects, the problems are usually going to add up or add on top of each other.
Adopting the single Agile method or practice can usually net you some success, but can likely expose weaknesses in other areas that you're working on. So, for example, if you're implementing continuous integration, that can help you accelerate the delivery of working software, but it can also expose weaknesses in your ability to embrace change, as well as your weaknesses in collaboration and communication.
So for example, when a build fails, how does your team quickly respond to the failure and address any of the defects that may have shown up from that build? And how did your team collaborate to address the build failure and how do you plan schedule any defects against that failure in context of what you are currently working on? And how does that in turn impact the current schedule?
So in this case, the ability to adopt continuous integration and establish a faster working rhythm is going to be affected by the ability to communicate effectively, as well as plan and schedule and rebalance effectively.
Now if you can address these other principles along with continuous integration, then you're going to reduce the amount of time that you're going to spend in between regular build of your application and that's going to accelerate your practice of continuous integration and ultimately lead to overall success.
developerWorks: Now I wonder if we could close with just some thoughts with what IBM is doing Khurrum, to help customers with Agile development. There are a lot of resources, but what do you want to highlight?
Nizami: Sure. So IBM Research and thought leaders have been working on a platform for many years now called Jazz to transform how people work together to build software. And the goal of the jazz project and the platform is to build next-generation technologies but can enable people to get greater value and performance out of software development.
Now our flagship product, Rational Team Concert, was architected from the ground up to support Agile principles as well as help address Agile adoption challenges. And Rational Team Concert is a highly integrated software development environment and it helps individuals and teams work more closely together on projects.
It can also help people that are getting started with Agile development more easily adopt, enable, and overcome challenges in Agile and it can also help teams that are well into Agile adoption, scalable Agile practices and methods, and make it more productive for them.
Team Concert includes a number of things. It includes collaboration tools, Scrum process support, Agile planning and estimating, continuous integration, software configuration management, and all of these are surrounded with dashboards, metrics, and reporting. And they're fully integrated. And they're all built with collaboration in mind as the central theme and element.
We just had a new release of Rational Team Concert in December and it provides additional advancements to make supporting Agile methods and Agile development best practices even more easy and productive.
developerWorks: Excellent. Now, go to ibm.com/rational/talks, t-a-l-k-s, to register for the March 18th Webcast. Khurrum will be talking about "The Apples to Oranges Dilemma: All Agile development tools are not the same."
Khurrum Nizami, IBM Rational worldwide tech lead for Change and Configuration Management. Thanks for your time, Khurrum.
Nizami: Thank you very much.
developerWorks: This has been a developerWorks podcast. I'm Scott Laningham. Talk to you next time.