A Crash Course in the Software Development Life Cycle

software development life cycle

24 Sep A Crash Course in the Software Development Life Cycle

When choosing a custom software development company, there are a lot of factors you want to look at to help you make your decision. Obviously prior experience and cost are both important to your choice. Yet, it’s also key to consider exactly how the company develops their software, too.

Specifically, what style of software development do they subscribe to? Do they follow the traditional waterfall or are they more fond of a newer, more flexible strategy like agile?

Agile Software Development

While both methodologies have their place, Red Rock Software is firmly in the Agile Software Development camp, and for good reason. According to the 2011 CHAOS report from the Standish Group, Agile projects are more successful in general than traditional waterfall methods.

[tweet_box design=”default”]Agile methodology leads to a 42% success rate and a 9% failure rate when compared to waterfall’s 29% failure rate and 14% success rate.[/tweet_box]

That’s a 66% increase in success rates that Agile development experiences.

SCRUM Methodology

Let’s explore the agile software development life cycle a little bit closer: specifically, the SCRUM methodology that we follow. For the record, we do some of our software development in Perth while the rest of it occurs a few hours away with the rest of our remote team of developers.

The remote benefits allow us to provide a “live view” to our customers, and client communication is key to the custom software programming cycle. By keeping communication lines open, both the client and the developer have a better chance at developing successful and profitable software.

The basics of Scrum are the “inspect and adapt” feedback loops. The idea is to have a functional product as quickly as possible. “Functional” doesn’t mean complete, but rather able to be tested. The idea of building through testing means that the software will end up being more adapted to what the client really wants- this is true in both web and software development.

So how do we get there?

The first step is the concept phase. The point of this phase is to get a detailed idea of exactly what needs to be developed. Generally, the focus will be on figuring out what problem needs to be solved, or what business opportunity needs to be taken advantage of.

It’s also important to figure out the budget, and to come up with a general timeline during this phase. Essentially, the software development company is trying to find out the feasibility of this project to greater ensure its chances of success.

Then it’s time to get started.

Cycle 0

The next phase is often known as Cycle 0. It is also known as the warm up phase. Hopefully by this point, the developer and the client will have a better idea of the budget- in fact, they should hopefully know exactly how much it will end up costing. Also, the two should know exactly how long it is going to take.

At this point, the team needs to be assembled- whether it is being built in-house or outsourced across the country. Documentation is usually created for the client’s and the team’s benefit. The estimates that are created during this phase are not concrete: they will be constantly evolving throughout the project.

That’s the nature of agile development.

Software Build

Now the fun part: the software gets built. The scrum methodology usually calls for programming “sprints.” This is where the programming team gets together to do the majority of the building in a small period of time.

During this time, communication stays open with the client- in Red Rock Software’s case, we use a live view. The design process never stops, especially when testing gets started.

As mentioned before, testing is an incredibly important aspect of the agile methodology. Testing will occur constantly with each build to ensure that the client’s needs are being met and that the software is up to the task.

During this phase, the developers look for any issues the software might have, as far as bugs or shortcomings go. Quality gets tested as well, ensuring that the best design possible is being followed.

Generally during this phase, new issues might pop up during the testing- which is really the whole point of the testing to begin with- and they get hammered out.

Final Testing

After the product is developed, final testing occurs (notice a theme here), and final changes and fixes are made. Additionally, more complete, detailed documentation is created regarding the finished product. Usually, training of the client needs to happen after this, and from there, it’s just a matter or deploying the newly created system.

Every software development team has a slightly (or drastically, in some cases) different way of accomplishing their tasks, but these are just some general steps that most teams go through.

After all, one of the major benefits of agile development methodology is the ability to remain flexible, so some teams and some projects call for different circumstances. Regardless of how a team gets to the end, the most important thing is to deliver a successful product!

sharepoint