Software integrity is paramount at STEP Software, and this starts with the Software Development Lifecycle (SDLC) methodology.
As a custom software development firm, we listen to our clients’ needs and evaluate their requirements before we recommend a path forward for their project. We understand that project management methodologies are not one size fits all and we’ve completed projects using both the waterfall and agile methods as well as a hybrid approach.
No two projects are the same and as a customer we will always equip you with the information needed to make an informed decision that is right for your project and your business.
Still have questions about what method is right for your project?
Drop us a line, we are happy to chat more about what is the best approach your software project.
The waterfall approach is a sequential approach going from an idea to a finished product in one step-by-step path. This process of developing software is broken down into six phases:
- Requirements Analysis
- System Design
This kind of development process works well for simple projects but means there’s less leeway for going back to change things if the scope of the project evolves or if it’s found that the initial design document was lacking.
Waterfall development means a client can provide developers with a list of requirements, and a project manager will lead the development process, making sure the developers design and code a functional product that passes tests and is ready to deploy. The time demands on you as a client should be minimal with the waterfall approach.
Agile development uses the same six phases of waterfall plus launch. Instead of pushing from step to step, developers have the chance to go back and make changes. Projects are broken down into sprints where team members work towards a specific objective. At the end of the sprint, the team gathers feedback and evaluates how things are going.
Agile development works well for large projects because it means you can work on coding a feature as a part of a sprint, get feedback from users, then go back, and make changes to the design if things aren’t going as planned.
This iterative approach means requirements can change at any time, and everyone on the team has the chance to give feedback. However, for agile development to work you, as the customer, need to be more involved in the development process and willing to give lots of feedback.
The hybrid method to developing quality applications takes advantage of the high level of detail from the waterfall methodology and the flexibility and iterative process of agile.
Like the waterfall method, hybrid starts with thorough requirements gathering. Collaboratively we discuss timelines, budget, must-haves, wish list features, and the challenges you currently face. We then work to define your project, rigorously analyzing and defining your requirements. This phase can last several days to several weeks.
Once your project is clearly defined, we tackle system design. The initial design stage is meticulously detailed including domain model, use cases, prototypes, initial architecture, and alternatives if needed. This stage involves your team working closely with ours to ensure no risk is left undiscovered and no variable is left to chance. A formal proposal wraps up this stage detailing development requirements, guaranteed development completion dates, clear acceptance criteria, a release plan, and a detailed list of your responsibilities during the project.
From an accepted project proposal, development begins. The first iteration of Implementation, testing and deployment being closer to waterfall in scope and time. As the first iteration wraps up, we move to an agile review process and tackle any redesign. The second and subsequent iterations are pure agile in approach. Each iteration results in a set of product releases, quality assurance results, and documentation. Shorter beginning development iterations allow for earlier interactions with your team and accommodate any changes without requiring revision of budget or schedule. The conclusion phase provides field-testing and transitioning of the software to the users.
After your project is deployed to production we move back to a waterfall like process for maintenance. When users start working with the software, additional issues may arise which require changes to the software. On-going technology transfer to your team ensures your team has complete control and mastery over all the artifacts created during the project: requirements, architecture, design, code, test plans, documentation, etc.