Customers often wonder what kind of software development method is endorsed or supported by Integranova, or whether they can integrate Integranova within the software development method of their choice.
Oftentimes Customers ask whether Integranova supports Agile practices in any of their many flavors: Scrum, Kanban, Extreme Programming, Agile Modeling, …
Integranova MES is a set of tools that aids developers in producing software using models as the primary development artifact. Aside from this, Integranova does not impose any software development methodology.
So, asking whether Integranova tools can be used in Agile projects is akin to wondering whether a particular IDE (e.g., Eclipse, Visual Studio, NetBeans, …etc.) can be used in Agile projects.
The answer to any of those questions is, naturally, why not?
It turns out that, not only can you use Integranova tools in your Agile projects, but you will find that Integranova is well aligned with the philosophy of the approach and with many of the principles in the Agile Manifesto.
In fact, one of the signers of the Agile Manifesto, Stephen J. Mellor, has known Integranova for some years now and even gave a presentation about it back in 2008.
Agile Manifesto Principles
Let us go over the philosophy and principles of the Agile Manifesto and see how Integranova relates to them. Some can be seen as people-centered principles, while other can be seen as more process-centered principles. As Integranova is a set of tools, we will pay closer attention to process-centered principles, but Integranova does also lends a helping hand in people-centered principles in the Agile Manifesto.
Customer satisfaction by early and continuous delivery of valuable software
Integranova tools are typically used in an iterative way. Developers work primarily by creating and evolving conceptual models capturing what a system must do, and then leverage transformation engines which automatically produce, from said conceptual models, the source code that precisely executes the functionality defined in the model.
Developers do not need to specify or capture the whole set of functional requirements of a system in a conceptual model before moving on to automatically generating code from it. Even from the very early stages of modeling, code can be generated and then developers iterate by augmenting the model and, thus, the functionality of the resulting generated code.
This enables developers to begin delivering working software from the early stages of any development project.
Welcome changing requirements, even in late development
Working at the modeling level, as opposed to working at the programming level, has the added benefit of making developers more productive. The rise in the level of abstraction which models bring to the table – with respect to the level of abstraction found in source code –basically means that developers need to do less things at the modeling level to achieve the same result if they had to work at the programming level.
A natural consequence of this is that it is easier to accommodate changes in requirements at the modeling level than it would be at the programming level. While Integranova does not prevent developers from modifying the generated source code, since it is much more productive to adapt the model than to adapt the code, we encourage developers to address changing requirements by modifying the model rather than the code.
No matter how advanced in the development project a developer might be, how many iterations or versions of the software may have been already delivered: changes in requirements will never be an obstacle to move forward with Integranova.
Deliver working software frequently (weeks rather than months)
As we said, Integranova tools are typically used in an iterative way. Developers focus on defining what the systems they build must do instead of on defining how they must do it. Working at the modeling level, at a higher level of abstraction than that of source code has the added benefit of considerably shortening each development iteration.
Shorter iterations with Integranova means developers can deliver working software faster and more frequently. In fact, even though most of our Customers learn that they can deliver new versions of the software they build on a daily basis, they typically end up delivering new versions every week or fortnight. Not because Integranova does not support such a rapid pace, but because our Customers need to allow their stakeholders a bit more time to test the versions they deliver.
Close, daily cooperation between businesspeople and developers
While this principle may not be connected to any specific tool, it seems evident that using tools that shorten iterations and enable rapid development and delivery of working software favors closer and more frequent cooperation between developers and stakeholders.
The rapid development features that Integranova offers do indeed favor this close and daily cooperation.
Working software is the primary measure of progress
With Integranova you can turn your models, no matter how small or incomplete they may be, into working software in an automated fashion. This means that developers – and stakeholders and end-users – can see working software grow as they evolve and augment their models, which results in a very good measure of progress.
As models become the primary development artifact because working software (read “working products”) are automatically derived from them, developers can produce more working software in less time. Therefore, Integranova empowers developers to make more progress for a fraction of the time and cost.
Sustainable development, able to maintain a constant pace
Developers using Integranova soon understand that Integranova Transformation Engines take care of all the heavy lifting associated with implementing the functional requirements captured by the conceptual models they work with.
Integranova Transformation Engines do their job in a fast way, with response times ranging from a few seconds to some minutes, depending on how small/simple or big/complex the input model is.
This productivity enhancement makes it easy for developers to manage bigger and more complex projects, and be less impacted by unexpected circumstances, as changes in requirements can be easily incorporated.
The increased productivity also results in needing smaller teams to deliver the same amount of functionality, which makes the process more sustainable from the very early stages of development through the different evolutions the product may require as new business needs appear of change.
Simplicity—the art of maximizing the amount of work not done—is essential
Working at the modeling level (vs working at the programming level) means working at a higher level of abstraction. When modeling, developers deal with less elements – the conceptual model primitives – than they would if they were programming directly.
This makes easier for developers to concentrate on what is essential for the objectives of each sprint they work on and separate it from accessory tasks.
If you are familiar with the Agile Manifesto, you will notice that some principles are missing in the list above. Those principles would be:
- Projects are built around motivated individuals, who should be trusted.
- Face-to-face conversation is the best form of communication (co-location).
- Continuous attention to technical excellence and good design.
- Best architectures, requirements and designs emerge from self-organizing teams.
- Regularly, the team reflects on how to become more effective, and adjusts accordingly.
Motivating and trusting individuals, having them pay continuous attention to technical excellence as well as good design and regularly perform introspection to work towards improvement… are values that Integranova embraces as part of corporate culture. However, we believe that it is for each company to define and regularly communicate their values and nurture its talent, rather than expecting a software development toolset to take care of such crucial aspects.
Integranova makes developers more productive, letting them concentrate on specifying what will be done by the resulting working software and relying on the Transformation Engines figure out how the resulting working software will do its job.
Aside from this, Integranova does not impose any software development approach. In fact, Integranova can be used in development projects following different approaches.
Integranova will boost your productivity and quality levels, and will lower the effort and cost of development, regardless of the development approach you use, because it simplifies (or even eliminates) the effort associated with traditional programming.
That being true, our Customers soon understand that Integranova is a facilitator to implementing the principles of the Agile Manifesto and so they use Integranova in their Agile development projects, thus reaping the awesome result of combining Agile and Integranova.
More details on future posts on Integranova Model Execution System.
If you are eager to learn more about Integranova MES or would like to see a live demo, feel free to contact us.