May 31, 2022
By: John Tomblin, Senior Solutions Architect
Los Angeles Bizz, a division of Sofvue, LLC
Printed with permission of Sofvue, LLC and the author
Software development can be a complex process if you don’t follow a clear model and well documented steps to increase your success rate. This model is called the Software Development Life Cycle, or SDLC approach to development, and within these models are a plethora of options available to you. The approach that fits best is a conversation left between you and your selected developer.
That said, let’s discuss a few of the software development models available.
What is a software development model?
A software development model is a range of processes that when followed properly, produce viable software or mobile apps. There are dozens of SDLC models that a business can choose from to achieve its goal. These models can be chosen based on numerous factors, such as the project’s complexity, reliability, ease of use, level of technical difficulty, and project size. For example, the approach we take for building an e-Commerce application is completely different than the approach we would take in building a logistics shipping application, so again, a conversation between you and your developer. Additionally, choosing the right development model is critical because once selected and started, is very difficult to restart.
How to choose the right software development model for your project
With dozens of models to choose from, you need to consider the following factors in making your decision. These include
Project requirements: What are the project goals and requirements? What requirements, once fulfilled, are fixed, and which are dynamic? Will any of the processes or systems designed with the first iteration of the application change post release, and if so, what are they and when will they change? We often have projects whose future processes cannot be defined until a first iteration release has taken place. This is especially true with large applications (those serving over 50,000 concurrent monthly users) whose user journey is not yet clearly understood. This is also particularly true with start-ups.
Project Size: Is your project objective to create a small web-based application serving internal employees, or is your project a combination of a web-based application and two accompanying mobile apps serving the masses? These are questions that are addressed during the discovery process, something that occurs very early in the project’s start.
Project Complexity: Choosing your development model is also decided upon based on your project’s complexity. Today, most e-Commerce sites are considered non-complex, so long as they follow the same user journey path that one might expect to see when shopping on Amazon or Etsy, but when a project involves a set of processes or journey’s that have no prior history, it can add considerable time and cost in assembling your development plan.
Timeframe: When is the project due? It’s a complete myth that development can be accelerated by “throwing more people at it”. This is one of the biggest myths that exist within software development. If a project requires 3 coders and 12 months to complete, but assuming that adding 3 coders will reduce development time to six months, is ludicrous. Adding 3 coders also requires adding another full-time project manager, and in many cases, another business analyst and in still other cases, adding more QA and UAT personnel at different points in the project, depending on project velocity. It’s easy to assume that doubling the number of programmers on a project will cut development time in half, but this is false. It might reduce it by 25%, but it won’t be anywhere close to half.
Purpose: Who the project is for, its future applications, and which industries it will be used in?
Project resources: This includes the stakeholders, architects, product owners, project managers, business analysts, coders, funding, and the project’s overall budgetary factors.
What are the different types of software development models?
Now let’s look at other factors when choosing a software development model that would work for your project.
1. Waterfall Model
Dating back to the 1950’s, the Waterfall model is one of the earliest and most popular software development approaches. Even today, with all the tech talk about agile, sprinting, SCRUM, among others, Waterfall is still a great option, depending on the project deliverables. Waterfall follows a sequential, plan-driven process of software development, but requires that you plan and define all your requirements before starting the project.
The waterfall model has the following phases:
* Define the requirements
* Design the software
As a condition of Waterfall development, one phase cannot begin until the current phase is complete. Additionally, and one of the biggest complaints with Waterfall, centers around the argument that testing cannot begin until the project’s implementation is 100% complete. Again, there are projects where this approach works perfectly, while with other projects, completely fails.
2. Agile Model
Agile is extraordinarily dynamic and flexible, making it a great approach to development (most of the time). It is perfect for large and complex projects since it allows development using sprints and continually changing and updated requirements.
Agile methodology has four foundational values:
* Individuals and interactions over processes and tools
* Working software over comprehensive documentation
* Customer collaboration over contract negotiation
* Responding to change by following a plan
3. V Model
The V model or Verification and Validation model is an extension type of the waterfall model, and like the Waterfall model, mandates that all the requirements be collected before any development begins. With the “V” model, testing activities occur during each stage of development. At Los Angeles Bizz, we apply the “V” model approach when the project scope is small and it’s deliverable stack is low.
4. Incremental Model
The Incremental Model divides a project in smaller “builds” or “sprints”, delivered in succession to one another. One of the greatest advantages of the incremental model allows teams to begin working on a project concurrently while business and programming requirements are being gathered, so long as the requirements gathering process does not impede the programmers ability to stay ahead of the business gathering process. When using this approach to development, we will often make the first incremental build “requirement heavy” to ensure that the programming and business requirement gathering is always at least 30 days in front of the programmer’s expected delivery dates.
5. Iterative Model
With the Iterative Model, projects are divided into separate builds for quick development, release, testing and deployment. This allows stakeholders to interact with the application interface, thereby producing a better understanding what they can expect from a project early on. The only thing better than seeing a component screen before it’s built is testing a component screen in a live implemented state. The iterative model is perfect for large and complex projects, but only when they can be easily broken down into many small builds. I always make this analogous to building a large boat. If you can’t use the boat until it’s 100% seaworthy, then the Iterative model is not an option.
Choosing between the wide array of software development models is crucial to the success of your project. These models give you clear directions and define the rules of working on the project, but to be successful, you must choose the right development partner to be there with you through each phase of the project, before, during and after. At Los Angeles Bizz, we not only offer a deep bench of seasoned professionals who will work on your project, we offer highly skilled architects and business analysts who can help you choose the right development path. For companies in Los Angeles, and around the country, we’ve been helping small businesses, B2b’s, D2c’s and B2c’s, and start-ups, build solutions that work. We’ve designed and developed over $20MM in application systems for over 200 companies, and over 400 projects, coast-to-coast, from New York City to Los Angeles, California, and our applications have been accessed, used, and downloaded by millions of users across our great nation.
For more information, contact us at 623-845-2747.