New and simple way to design Drupal Solutions in Agile using IDIs

swarad07
saumil

Software has changed a lot, not only in how now it is developed but also how it is being used by our customers. People now have many devices, different form factors, expect a lot from your software in general. From a development point of view the above factors put a lot of constraints on your development processes where the team is not only challenged constantly to deliver good value to the product but also to do so in a cost effective and effecient manner. Such real world demands put more emphasis on analysis and design phases of a software.

Every software engineer learns that before you actually implement you do analysis and design. It is said that a good software should spend majority of its time in design phase which makes way for a smooth & timely implementation phase.

But the ambiguity lies in the word Design, when we say Design, what exactly are we supposed to do as engineers and what exactly do our superiors or peers expect when they want to validate our thought process before implementation. The "validating" part of the statement is actually much more important. Every AGILE team goes through a situation where the stories planned for in a sprint get delayed during implementation which then means some backlog of that story gets added in next sprint, this vicious cycle then affect your product timelines.

We found this to be a challenge that needed some thought. In many such cases it is not about developers not being aware of the project solution, or their inability to implement it. There are system diagrams, data flows, UMLs, ERs etc for a project, but at a macro level when your developers are implementing a story these diagrams are often found to be too high level which leaves lot of room for interpretation.

The goal is not to overhaul the design phase but to standardise it in a way that everyone knows the expectations. The solution should not be process heavy that introduces a hurdle defeating AGILE, but at the same time the solution has to justify that the time is will spent in design phase and will provide benefits in long run.

We came up with something that we call "IDI", it is a acronym for Interface Design - Data Model - Implementation approach. We have seen the results of this approach on many projects that I have worked on. The development team is now happy and confident when they go into the implementation phase, the architects and leads have also felt that they are now able to talk & discuss solutions on the same page with their peers, they are able to do it more effectively as compared to before. More importantly "validate" that the implementation of a story is inline with project's solution.

We would like to share this new approach with everyone. We hope all attendees can find some relevance to the problem and can take IDI to their respective development processes for a efficient software development lifecycle.

Session Track

Coding and Development

Experience Level

Beginner

Drupal Version