New and simple way to design Drupal Solutions in Agile using IDIs
Software has changed, not only in how it is developed but also how its being used by our customers. Users now have many devices, different form factors, expect a lot from your product and very quick to turn their head around if they don't like what they see.
From a software development point of view, the above factors put a lot of constraints on your development processes, the teams are constantly challenged to deliver good value to the product and do so in a cost-effective and efficient manner. Such real world demands have put more emphasis on analysis and design phases of a project than ever before.
Every software engineer learns that before you actually implement you do analysis and design. It is said that a good software product should spend the majority of its time in design phase which makes way for a smooth & timely implementation phase.
The ambiguity lies in the word Design.
When we say Design, what exactly are we supposed to do?
What exactly do our superiors or peers expect from this phase?
How to validate a design phase?
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 a very high-level view which leaves a lot of room for interpretation.
The goal is not to overhaul the design phase but to standardize 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 spend in the design phase and will provide benefits in the long run.
We came up with something that we call "IDI", it is an 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 in line 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 an efficient software development lifecycle.