Software Development Methodologies
Being an intensively growing and modern-thinking company that collaborates with such huge clients as Microsoft and Huffington Post as well as with such respectable organizations as Drupal Association and American Chamber of Commerce, QArea has produced and polished up the best methodologies for business process optimization and software development. We use the most effective of today’s project management and software development methodologies.
The methodology of software development is a structure according to which software development is built.
There are several models of this process (methodologies for software development), each of which describes its approach as tasks and / or activities that take place during the process.
QArea uses following basic models of the process or methodologies of software development:
The cascade or waterfall development model is a model of software development in which the development process looks like a stream of consistently passing phases, requirements analysis, design, implementation, testing, integration and support.
The waterfall software development model includes the following strictly defined stages:
The name "waterfall" often is referred to an article published by W. W. Royce in 1970.
Iterative model of software development works in parallel with the continuous analysis of the results and adjustment of the previous phases of work. The project in this approach in each phase of development is iterative cycle: Planning - Implementation - Testing - Evaluation (English plan-do-check-act cycle).
Iterative methods for developing software that are being used at QArea:
Rational Unified Process (RUP)
RUP is a methodology for software development, created by Rational Software. RUP is based on the following core principles:
- Early identification and continuous (up to the end of the project) eliminating of the project risks.
- Focusing on the implementation of customer requirements (analysis and building of cases model).
- Waiting for changes in requirements, design decisions and implementation in the development process.
- Component architecture that is implemented and tested within the early stages of the project.
- Continuous quality assurance at all stages of the project.
- Work on the project in a cohesive team, the key role in which belongs to the architects.
Agile Software Development
Most agile methodologies are aimed at minimizing the risk by making the development process being a number of short cycles called iterations. Each of the iterations typically lasts one or two weeks. The iteration itself looks like a miniature software project, and includes all tasks required for the issuance of the mini-increase of functionality: planning, requirements analysis, design, coding, testing and documentation.
At the end of each iteration the team performs a re-evaluation of priorities for development. The core principles of this methodology are presented in so-called Agile Manifesto. Here they are:
- Individuals and interactions over processes and tools
- Working software over comprehensive documentation
- Customer collaboration over contract negotiation
- Responding to change over following a plan
The most famous and the most effective Agile approaches are Scrum and Kanban methodologies, which are widely used by our company.