Software Development Methodologies

Software Development Methodologies

There’s a lot of hype out there - and we meet some almost evangelical devotees to certain methodologies like DevOps or Agile. The enthusiasm is catching, but what is it all about?! Here is our quick guide to some common software methodologies, and why some are more popular than others.

Waterfall

Waterfall is for the traditionalists and is considered the oldest methodology. It follows a logical process: you must finish one phase of the development process and then move to the next in a chronological fashion. The downwards flow of the process creates the waterfall, and follows the ethos that you must use the information discovered from the previous stage to inform the next, with a project plan for each stage. Each phase has its own distinct goals and when these are complete, there is no turning back.

Waterfall phases

Waterfall projects are designed to be simple to manage and understand, but commonly are considered inflexible in their approach. It makes sense when you consider that this methodology was originally borne out of the manufacturing and construction industries, where projects don’t necessarily change like they naturally do in the spheres of IT and technology. With a Waterfall approach, problems that arise in the early stages of a project can’t be addressed until you get to the maintenance stage and there’s no room for manoeuvre by this point. Ongoing or long projects tend to have issues with this rigid process, and there is little room for scope change or changing requirements. This tight structure can lead to slow and costly projects.

However, it’s also important to understand the benefits of a Waterfall methodology. This is a robust way of doing things, where the focus is on documentation and source code. This reduces loss of knowledge if team members leave the project before completion, so there is a safety here. Adopting a structured approach can suit the culture of certain organisations where the project has a fixed scope and a firm and stable product. There is no doubt that taking a Waterfall approach provides a great deal of managerial control, which can lead to project being delivered on time.

Agile

Agile has been around for about a decade, but is still very successful, and is even being applied to non-tech projects.  It sounds like an oxymoron, but in Agile projects “Fast failure” is a good thing. Ongoing release cycles continuously deal with small changes generated by the previous release, with a testing stage at each step. This process addresses issues continuously to nip them in the bud, engaging project stakeholders continuously for feedback. Agile takes a collaborative approach, and has a cross-functional focus and an ethos of continuous improvement. The result is that scope creep and cost overruns are minimised.

Agile has its own structure and terminology, involving the use of a Scrum team that works in Sprints of 2 – 4 weeks, with daily meetings to monitor progress throughout that project. A Scrum Master is tasked with ensuring the team remains focused on the goals of the sprint. Within this structure, client communication ideally happens in real time and face to face. This aims to quickly identify and address any mismatches in expectations.

Critics of an Agile approach have described this as time consuming as developers wait for multiple stages of stakeholder approval. In addition, a lack of documentation carries risk.

DevOps

DevOps utilises the principles of Agile methodologies and expands their scope. The principles remain, that high-quality development requires continual engagement, feedback and integration from a range of technical professionals including developers, quality assurance and operations specialists.

DevOps combines software coding knowledge with QA skills to deliver continuous software development and deployment. A real-time feedback loop helps reduce risks due to potential disconnects between developers, operations staff and quality assurance. This approach also helps mitigate disconnect between developers and the current state of the software.

A fundamental principle of DevOps is continuous integration to merge source code updates from all of the developers within a team, to avoid merge conflicts. a centralised server continually extracts all new source code and builds the software application from the ground up. The result is a collaborative automated software build.

We have previously written in more depth about the benefits of a DevOps approach: you can read it here.

In conclusion, these are the three software development methodologies we regularly come across. Many organisations take a mixed or a ‘light’ approach. Let us know what you think – how are these manifested in your projects? Are they a loose guideline, or formalised structure?

Please share your thoughts!


Bogdan E.

Senior Project Manager | Product Owner | Helping companies run software projects (SAFe, Waterfall, Agile)

3 周

Hayley, awesome !

回复
Terry Bacon

Senior Software Engineer at TerraQuest

6 年

Good article. I hadn't previous heard of DevOps being a Methodology, so have learnt something new. As to which is best that is always an open question. I'd view it as thinking like when your eating, you have a knife, a fork and a spoon, - and it depends what you're eating at the time as to which is best suited. It's a bit like that with Methodologies. The mistake is to think you can survive by just using one.

Ashish Patel

Technical Consultant | Fintech | Riskfactor

6 年

Each methodology is customised around requirements of the business, nothing is ever set in stone from my prospective. Good to see recruitment companies sharing their views.

Lance Parkington

Software Developer at Jisc

6 年

Interesting article. Agile is also about thinking since most organisations that implement tend to customise to their environment. It simplifies answering Yes to the following popular questions: 1) Have you done it yet? 2) Does it work? 3) Is it ready?

要查看或添加评论,请登录

Hayley Rogers-Hinsley的更多文章

  • Retail technology: a unique culture

    Retail technology: a unique culture

    Big Red have many years’ experience in sourcing the right technology people to succeed in the retail environment. Our…

    4 条评论

社区洞察

其他会员也浏览了