At STEP software integrity is paramount and great software starts by choosing the correct Software Development Lifecycle (SDLC) methodology to get the job done.
For over 20 years, STEP has been solving our client’s toughest software challenges; earning us the wisdom to know that no two projects are the same, and neither are project goals.
Successful software relies on collaboration, communication and understanding. Working with STEP means you will gain the knowledge you need to make informed decisions when it comes to your software and what’s right for your business.
Building software that is engineered to last and built to perform is what we do best.
Speed without compromise. Stability without question.
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
Implementation
Testing
Deployment
Maintenance
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 Method
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.
Hybrid Method
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.