Many individuals in the information technology industry are familiar with the software development methodology known as agile development. While not a completely new technique, this method of development has gained popularity within the past ten years as customers and end users look for faster turnaround times in software projects. While there certainly are advantages that this type of development has over the more traditional—or “waterfall”—software development methodology, it does not necessarily mean agile development is the ideal methodology in all cases.
When developing a software solution—especially one designed for a business—more often than not, combining the two methods (a “hybrid” approach) will be the best option for both the customers and the individual or company that is developing the solutions. Let’s take a look at some background about what agile development is and why the combined approach, ultimately, will most likely be the right decision for your business.
What is Agile Development?
Agile development is an iterative approach to software development. In this methodology, the developer or developing company is trying to build something more quickly for the customer or end user. An initial prototype will be developed relatively quickly, and then it will be submitted for initial testing and feedback. Any necessary changes will be made based on this feedback, and then this process will continue until the right solution is developed.
JP Lessard, President of Business Software Solutions at Miles Technologies, says that the prevailing idea behind this methodology is that “as you go through these different iterations or lifecycles of this one system, it’s going to keep getting better and getting closer to what the right solution is going to be.” This approach is sometimes helpful if the customer does not have a full vision of exactly the type of solution he or she wants. Agile development allows for a quicker deliverable so that the customer can test something tangible to see what initial changes need to be made.
How Does the Traditional or “Waterfall” Method Differ from Agile Software Development?
In the traditional waterfall method, rather than producing a prototype or deliverable that will eventually need to be altered multiple times, a fully functioning system will be developed before the testing takes places. The entire process of one step will be completed before moving onto the next step in the software development lifecycle. All the requirements for the project will be gathered and determined before moving onto the detailed design phase. Then the actual coding and development takes place to create a full-scale solution that is ready for testing. At this point in the process, the developers will receive feedback from the customers on the deliverable solution rather than much earlier on in the process.
What are the Pros and Cons of Agile in Developing Solutions for Businesses?
The decision on whether or not to utilize the agile method depends greatly on the needs of the business. Lessard says that when considering which approach to take, it is important “to take into account how complicated or simple the system that you’re building is and what the undertaking is going to look like.” According to Lessard, agile development can work well if the system is being designed with a clear-cut goal in mind. “If it’s something with a very straight forward goal, objective or business process, agile may work well because it is not likely to change drastically from the initial concept to the final version you lay out,” he says. “The types of changes will be minor, and the time and cost impact for making those multiple changes may not be very big.”
One of the disadvantages of taking the agile approach lies within the complexity of the business process or the potential for needing to make changes or build on top of the system at some point in the future. “One of the potential downsides [of agile] is that if something major changes down the road and you already have all this code written, it could cause a bigger problem,” Lessard says. “It would be like saying, ‘Now I decided I want to build a four-story house instead of a one-story one.’ The foundation you have is not going to support it, so now you have to wreck it all the way back down. With agile development in a more complicated scenario, you may end up with a lot of things you’re not eventually going to use.”
Why Does a Hybrid Approach Work?
While agile development works well for certain types of projects and the waterfall method may work better for others, the best method—especially when working with business software solutions—may be a combination of the two. “If you’re developing a business application and need that solid foundation, you would want to take a hybrid—or modular—approach where you’re basically figuring out what areas of this project you need to make sure you’re mitigating the risks for,” says Lessard. Using the hybrid methodology is beneficial because you can take the more complex parts of a project and make sure you develop them with a solid foundation via the traditional method, but also use the iterative approach when working on other items where there isn’t the potential for major changes.
For businesses, the hybrid methodology is especially advantageous of the agile approach because it provides customers with more certainty in terms of time frame and cost for a project. “For agile, it is somewhat difficult to say ‘here is the end goal’ because you’re going to start with something and you may be doing iterations of that system for the next three years,” says Lessard. “So, that’s difficult to put time and budget on top of. From a business prospective, it’s hard to get involved in an agile development project with an open checkbook.”
Lessard says that in his experience, businesses benefit greatly from the hybrid approach. “Customers have been very receptive to this method where sometimes you’re just mitigating your risks and you’re getting more of a fixed cost and putting a frame around the project,” he says. “There are good benefits to business owners, decision makers and users because they can still get something faster yet they can also put a solid budget and timeline around it.”
Interested in learning more about this topic? Check out the latest Miles Technologies Podcast where Lessard discusses the reasons behind the popularity of agile development and why the hybrid approach works best for businesses:
Do you have any thoughts or questions about agile development or a implementing a hybrid approach? Let us know in the comments section.