Get certified - Transform your world of work today

Object Design with Scrum

OOAD with Scrum

05/05/2015 by Chia Yuen Kwan

Scrum follows an iterative and evolutionary development model, with features delivered in sprints. As Scrum adopts this model, a robust systems design will facilitate continuous integration and delivery during the development process. It is crucial to invest sufficient time and effort in design activity.

The Scrum process pushes the team to focus on delivering value to customers by employing software design techniques to achieve a robust system. It also helps the team allocate design time during the sprints to ensure that the end products are of high quality. Projects implementing object-oriented technology could leverage object design principles to promote productivity in software development in several ways.

Design for continuous delivery and integration

It is crucial that teams build features that are easy to update and are easily integrated with the other components of the system. Adopting an incremental development approach along with a continuous delivery model will ensure that a feature is released whenever it is ready for deployment. Software design techniques and principles, such as object-oriented principles, polymorphism, interfaces, and abstract classes are adopted to build a component-based architecture. For example, polymorphism allows new features to be added without affecting the client program (class). Features can be easily extended to the systems.

Design to deliver value

Since software design is done incrementally, the design emerges, as there is no up-front design phase (or sprint). Design activities are inseparable from coding and features implementation. It is critical that design time be allocated in the sprint to ensure high-quality end products. Clear design objectives should be established, such as requiring systems that allow easy extension of additional features. The team must note that design is never done for the purposes of documentation.

Design to handle abnormal events

If a project requires that certain business service components be pluggable or easily extendable, appropriate design techniques such as interfaces and abstract classes can be effectively used to fulfill these requirements. It is crucial for the developers and software designers to be well equipped with OOAD (Object-Orient Analysis and Design) techniques to speed up the development process, which also facilitates software integration.

How OOAD facilitates the Scrum development process

By applying OOAD techniques, systems functionalities will be distributed to a number of programs or objects. The role and purpose of the programs are very clear. With OOAD, systems design follows the principle of software engineering -- cohesion and loose coupling. Cohesion requires a program to have a specific purpose. Cohesive programs promote ease of maintenance; developers can easily understand the roles and functionalities of the program. Coupling measures the degree of interconnection between different system components. Applying OOAD allows a system to achieve loose coupling, keeping the relations between programs to the most minimal and necessary. When a change is introduced in a program, that change is either localized or its impact on other programs is minimized.

A Scrum team should invest sufficient time in design, with the sole purpose of delivering value to the customer. Familiarity with software engineering techniques such as OOAD increases productivity and enables continuous integration for projects adopting Scrum.