Why is Model Driven Design and Development Important?
Critical success factors for a systems development project all indicate that a solid and proven methodology can reduce risk and improve your probability of success. According to “Improving IT Project Outcomes by Systematically Managing and Hedging Risk,” a 2009 IDC Report, 25 percent of IT projects fail outright. Meanwhile, 20 to 25 percent don’t provide ROI and up to 50 percent require material rework. Model-driven design and development (MDD) is an approach for writing and implementing information systems quickly, effectively and at minimum cost. MDD builds on the principles of Agile Development and incorporates code generators which can support round-trip-engineering and complete iterative development. EA recognizes that building a successful enterprise architecture requires coordination of efforts in a number of areas. It is not just an issue of which technology to select and implement. It is a question of how to meet the business objectives with a broad range of services and technologies. EA encompasses business process and function models, corresponding business data, business and IS applications, distributed services, technical platforms, and operating infrastructure consisting of procedures, tools and practices.
The benefits of a true MDD are many. The most significant are as follows:
- Prototyping enables early validation of requirements and so lowers time-frames, risks and ultimately costs.
- Generators take away the need to write the repetitive and predictable code patterns, so that designers and developers can focus on the more advanced requirements.
- Prototyping leads to early testing and so reduces QA and Testing costs.
- Capturing the “knowledge” about the application in standard models ensures that it is more easily supported, maintained, evolved and even replaced in the future; technology change could be achieved by simply replacing the generator(s) as required. (A simple example being replacing a Java services tier with a .NET services tier.)
- Enables Business and System Analysts to most effectively communicate requirements from the business to developers without the usual “lost in translation” risks.
adapted and modified Agile Software Development Methodologies
MDD builds on Agile Software Development Methodologies, a proven industry standard which delivers increased business value by delivering working, tested deployable software on an incremental basis.
- Build smaller, more agile teams with the appropriate mix of architecture and technical talent; resources able to multi-task and work with the business stakeholders, minimizing the need to translate requirements from business to technical resources.
- Keep Business Analysts, (Business) Subject Matter Experts and Architects involved, on a high level, throughout the project. Empower them by providing tools and techniques appropriate to their skills, terminology and focus, yet connected (via non-destructive code generators and related tools and techniques) to the underlying technology and to developers.
- Use data-centric methodologies; robust information architecture is the most essential foundation piece to any successful system. Business Process, Business Rule and the originating business requirements must ultimately be expressed in terms of data. Architecting for change requires Process and Rules to evolve with the business, while foundational data is often unchanged (it’s generally not what you do that changes, but rather how you do it that changes).
- Reuse analysis and design patterns (from industry best practice and industry standards where available) and (re) use proven, robust technical components; reusable components can include common information holdings (like Parties, Products, Services, Agreements, etc.) and application components (like workflow and business rule engines).
- Validate requirements through their early visualization (e.g. as functional screens and reports). Business users cannot be expected to validate their requirements solely through UML models. Hands-on interaction with prototypes is the only proven method to ensure that requirements are understood and also the most effective method to solicit feedback.
Risks and Costs Reduction
To reduce your risks and costs T4Bi is unique in being able deliver software projects using MDD. MDD requires not only extensive experience in Agile Development but code generators which can speed up development and reduce rework and provide quicker turn-around of prototypes allowing for greater flexibility in development. As a unique service offering T4Bi has developed Open Knowledge Frame (OKF). OKF is an innovative project accelerator from T4Bi that reduces the time, risks and costs to design and develop integrated, secure, SOA and Cloud-based business applications, and deliver results which are also more adaptable to business and technology change.