Methodologies

We use extensively all current software development methodologies in our work. Before the start of a project, we discuss and agree with our customer upon the methodology that will be used on the project. The selection of a particular methodology for a project depends on the project’s requirements and the customer’s preferences.

Test-Driven Development

Test-driven development (TDD) is a software development process that relies on tightly woven repetitive testing of very short development cycles. Our developers have many years of experience with this methodology. They know how to deliver new functions or features by first testing them, then writing the code for them, then testing again, and finally cleaning up the code to keep it elegant and simple.

Agile Software Development

Agile software development is built on several important principals: short incremental iterations of working software, close collaboration with a customer representative on the team, daily communication among team members, and adaptability to changing requirements and circumstances. Agile methodology is widely used today by many companies to deliver high-quality working software. It frequently helps avoid over-planning and respond quickly to changes in requirements. Our customers’ high satisfaction with agile development speaks volumes about the benefits of this approach.

Scrum

Scrum is an agile software development methodology that recognizes customers’ potential need to change products’ requirements at any time. To better address such volatility in the requirements, Scrum focuses on quick delivery of product increments at the end of each short production cycles aka sprint. On the Scrum team, the product owner, who represents the customer, is always present. Svitla’s developers are highly skilled in this methodology, having used it on many projects. They can be integrated on the project that uses scrum quickly and seamlessly.

Prototype Development

Prototype development helps customers and potential users to understand and test basic functions of the future product. With minimum budget and resources spent a customer can use a prototype as a demonstration of a new technology or product. Once the prototype is evaluated by a customer, it can be further developed to incorporate the customer’s feedback and used for new features.

Continous Integration

Continuous Integration (CI) is a perfect software engineering technique for large projects. With CI developers merge their new code frequently throughout the day to the existing code repository. The aim of CI is to help avoid integration problems with the code when many developers work simultaneously on a large software development project. CI permits keeping software up-to-date and delivering new features in a short timeline. Svitla Systems provides CI for many technologies, such as Ruby on Rails, Java, PHP and Python.

Extreme Programming

Extreme programming is a software development methodology which is intended to improve software quality and responsiveness to changing customer requirements. As a type of agile software development it advocates frequent "releases" in short development cycles, which is intended to improve productivity and introduce checkpoints at which new customer requirements can be adopted.