Software Development – New methods
Traditional software development
In traditional software methodologies we adapt the waterfall, the spiral or the Rational Unified Process (RUP) depending on the nature of the project.
The waterfall approach, the most popular of traditional models, is a disciplined, sequential approach to software development. The lifecycle starts with a requirements phase resulting in a requirements specification. Development continues with design, implementation, verification, and maintenance, with rigid criteria that must be met before continuing to the next phase.
The spiral model combines the features of the prototyping model and the waterfall model and is intended for large, expensive and complicated projects.
RUP is based on a set of building blocks, or content elements, describing what is to be produced, the necessary skills required and the step-by-step explanation describing how specific development goals are to be achieved.
Agile Development is an umbrella term for several iterative and incremental software development methodologies, where requirements and solutions evolve through collaboration between self-organizing, cross-functional teams
Agile methods break tasks into small increments with minimal planning, and do not directly involve long-term planning. Iterations are short time frames that typically last from one to eight weeks.
Each iterations involves a team working through a full software development cycle including planning, requirements analysis, design, coding, unit testing, and acceptance testing when a working product is demonstrated to stakeholders.
This minimizes overall risk and allows the project to adapt to changes quickly. Stakeholders produce documentation as required. An Iteration may not add enough functionality to warrant a market release, but the goal is to have an available release (with minimal bugs) at the end of each iteration.
In the case of agile development we usually follow the scrum methodology.
Scrum focuses on project management institutions where it is difficult to plan ahead with mechanisms for empirical process control, such as where feedback loops constitute the core element of product development compared to traditional command-and-control-oriented management. It represents a radically new approach for planning and managing software projects, bringing decision-making authority to the level of operation properties and certainties.
Scrum reduces defects and makes the development process more efficient, as well as reducing long-term maintenance costs. We ensure client participation throughout the development cycle. The development phase undergoes meetings like daily scrum, sprint planning meetings and sprint reviews meetings. Our projects comply with clearly defined delivery metrics and Software License Agreement – SLAs.
Quality is ensured across all our processes, interfaces and outputs; in management, core and support processes. It helps us deliver long-term excellence, and ultimately, predictability of returns, to all stakeholders.