Tuesday, February 18, 2014

RHT: How to Compare Software Development Methodologies

by Robert Half Technology
February 18, 2014

Tips for comparing software frameworks.

Ready, set, go! Your software engineers rush out of the gate, writing elegant code that compiles perfectly into a killer software product that fits your client’s needs. Works every time, right? Well, not always.

This kind of unstructured development might work for simple projects. But as the scope of a product expands, so does the need for a process to guide the development efforts.

Enter software development methodologies, or frameworks, that define the process your team follows as it attempts to deliver a timely product that satisfies your customers. However, do you know which one to adopt?
The Yin and Yang of Software Development Methodologies

Structured and Agile occupy opposite ends of the spectrum of software development methodologies. Though there are various models, or versions, that reference aspects of these two methods, looking at a comparison of the overarching methods is perhaps the best way to start your quest for a development framework.
Structured Methodology

This is the most traditional of the software development methodologies. Under this approach, distinct phases of development are completed by distinct groups in a linear fashion. Each phase must be completed and approved before the next phase can begin. Though the most common use of this method is the Waterfall model, other software development methodologies also use structured techniques. They include:
  • Iterative: A structured technique whereby developers first create the most basic form of the product, complete testing and then go through constant cycles/iterations to add additional features, testing after each iteration.
  • Spiral: A structured, iterative approach that continues to spiral outward (get bigger) while going through four distinct structured phases (determine objectives, risk assessment, develop, then test and plan the next iteration).
  • Rapid Application Development (RAD): A structured approach to create user requirements and final design, but one that focuses on prototyping in lieu of functional planning. The constant prototyping allows for trial and error of functional requirements.
Agile Methodology

In 2001, a group of programmers decided there was a different way to develop software and published the “Agile Manifesto.” Agile emphasizes collaborative development by smaller teams comprised of clients, developers and other experts, followed closely by review and adaptation. This “develop-review-adapt” cycle continues as the teams produce rapid iterations of a product until it is completed.

The most recognized use of Agile methodology is the Scrum model, which is commonly referred to as Agile Scrum.

However, other software development methodologies also reference the Agile method, including Extreme Programming (XP). When it comes to XP, the name says it all. Projects are completed by taking all Agile practices to the extreme, such as reviewing code on a constant basis through pair programming and opting for verbal communication over written documentation at all times.
Fixed Vs. Flexible

In its truest form, the structured methodology centers around a master schedule that has hard deadlines for each phase of development (coding, quality assurance, etc.). This framework allows you to give your client a fixed cost and release date. If these are important to your customer, consider going with a structured software development method. On the other hand, if your client is flexible about dates and costs, Agile may be the way to go.
Does Your Client Want to Be Involved?

With any of the structured software development methodologies, clients request features, then step back and wait until these features are implemented in the next major release of the product. If the customer suddenly realizes they need a different feature, they have to wait until the next development cycle begins.

Though some structured models, like RAD, offer a faster response than the more common Waterfall model, Agile offers a completely different way. By being part of the team producing incremental releases, customers can choose features along the way, which can increase their satisfaction with the end product. This way of working may also be best for clients who have a hard time envisioning exactly what they want before development begins.
Know Thy Developers

Within the structured method, developers are assigned discrete tasks based on written requirements generated upstream. The need for daily conversation with other team members is minimized. Is this how your programmers like to work? Or would they be happier bouncing ideas off other software engineers, clients and business experts on a daily basis? Many developers feel empowered by the Agile method because they have more control over the final product.
It’s Not Always Easy Leaving the Water

If you decide to implement one of the software development methodologies we’ve discussed — and you haven’t used it before — be aware that you’ll probably hit some bumps. This is because the structured and Agile software development methodologies are completely different ways in which to visualize a project and work on it.

Keep in mind that Waterfall isn’t the only software development process that uses a structured approach, so you may want to further research some less-common structured models. And if you go decide to go with Agile, be sure to budget some extra time and consider bring on team members who have experience with it.

Use the comments section to leave feedback about your experiences working with different software development methodologies.



— Robert Half Technology

With more than 100 locations worldwide, Robert Half Technology is a leading provider of technology professionals for initiatives ranging from web development and multiplatform systems integration to network security and technical support. Visit our website at www.rht.com.

7 comments:

  1. hi,
    Thanks. Now a days Software is a part of our daily life activities. We depend on software to complete our work. Most of Software Development Companies in India develop software at affordable cost.

    ReplyDelete
  2. Thanks for sharing this informative blog with us.It is good to have most of these articles around to maintain the regular flow of information.

    Linux Thin Client & Citrix Thin Client

    ReplyDelete
  3. I needed to thank you for this great read!! I certainly enjoyed every bit of it. This was a really wonderful post. Thank you for supplying this info.

    ReplyDelete
  4. We need more such articles that we can read with such enthusiasm.
    software development company in delhi

    ReplyDelete
  5. Cyberviman believes in 100% client satisfaction. We work round the clock to understand the customer need and deliver the best software compatible with the latest technology that sustains for a long period of time. custom software development services

    ReplyDelete
  6. This comment has been removed by the author.

    ReplyDelete
  7. What a wonderful post you wrote! This will help a lot of beginners like me! It's very clear, precise and descriptive really! Thank you very much, author. Keep writing for us like this :)

    DedicatedHosting4u.com

    ReplyDelete