This post will show you the best practices and recognized approaches of software development.
Despite developing software for years there is an art to it that not everyone can grasp. Developers are well rewarded for their efforts; there is a good reason for this: coding is complicated, and not everyone’s mind has that coding wiring.
That said, recognized approaches and best practices have been developed where software is concerned. Let’s explore these in more depth.
Table of Contents
DevOps on Azure
Microsoft Azure has a dedicated DevOps server where entire projects can be managed and tasks assigned. It features version control, reporting, project management, automated builds, and testing, together with release management capabilities.
As such, DevOps on Azure is where most software development is managed and controlled.
Agile is a software development methodology that came into being to try and combat the limitations of top-down structured design methodologies such as Waterfall. As such, when done right Agile can speed up the development process and accommodate change when it is needed.
Agile puts a strong emphasis on customer inclusion. This is achieved through producing code that can be demonstrated and tested. Clients and other departments put in their input so changes needed are identified sooner rather than later.
Agile is quite forward thinking as it puts emphasis on developers rather than tools and inflexible planning, and forces out code rather than documentation. To achieve deliverables faster it encourages development teams to work in sprints, which allows for the inclusion mentioned earlier.
Agile is a highly flexible approach and other methodologies have been built on top of it. Given the agility of Agile is there room for structured top-down approaches? The answer is yes.
Although for some, Waterfall is outmoded it is still utilized where software teams have an in-depth understanding of project requirements.
The Waterfall methodology was developed in the 1970s and was the number one methodology for decades. It requires every development cycle to be planned to the nth degree with considerable input from both the client and the development team at the beginning of the project.
From this point, documentation is produced and normally the project is built in stages. Should a mistake need to be corrected or something added midway through, it normally means starting from the beginning.
Key strengths of Waterfall are that as it is developed in stages progress can easily be tracked and measured. Typically one stage has to be developed before the next one begins and so assigning tasks is easier for managers as everything is planned from the start.
Feature Driven Development (FDD)
Considered to be the precursor to Agile and Lean mythologies, FDD focuses on developing software frequently and is highly client focused.
The methodology gets its name as ‘Features’ are client valued work that should be produced every two weeks.
To achieve this goal each feature is broken down into 5 steps. They are:
- Develop an overall model for the project.
- Build a feature list.
- Plan each feature.
- Design by feature.
- Build by feature.
At the end of each step, reporting is encouraged which is a good way to spot errors and track progress.
Should a feature take longer than two weeks to fully develop FDD forces the feature to be broken down into more steps to fit with the two week rule. This inflexibility can make FDD a little hard to use for some projects.
A Final Word On The Approaches Of Software Development
Software development is complicated but with the right approach, it can be developed faster and leaner, especially if DevOps on Azure is in use.