This article describes the concept of Business Aligned Software Delivery (BASD) and the ways in which the Novulo software development platform supports its key characteristics.
In the earliest days of business automation, large mainframes performed simple, tedious tasks. However, with the rapid improvements in the hardware and software industries, most notably the global impact of the Internet, demand for quality business software has skyrocketed. Traditional software development methods have proven unfit to provide software that can optimally meet business needs in a timely fashion. BASD describes a number of principles and techniques that can be used to improve business alignment and shorten the time to market, eliminating the common problems associated with traditional software development.
BASD combines the best practices of recent software development methodologies. It relies heavily on insights regarding:
Based on these three key insights, the following principles are the basis for BASD:
As the name implies, Business Aligned Software Delivery is aimed at creating an optimal alignment of software and business needs. The “Software Delivery” aspect is equally important as it emphasizes the need to provide working software quickly and frequently, during both the development and maintenance phases of a project.
Software developers will readily agree that to create software with successful business alignment, it is imperative to have a strong understanding of the business domain and the customer’s specific needs.
Successful business alignment in software development is achieved when business needs (problem domain) and the available responses to those needs from the software development perspective (solution domain) coincide. Traditional software development depends almost solely on the developer's ability to reformulate the business needs of a project into technical requirements and come up with an appropriate response (from the solution domain). Obviously, there is always room for improvement with business alignment through better customer involvement in the development phase of a project, since collaboration throughout the entire process will help the developer understand the business needs and provide the customer with software that meets their exact specifications. One major obstacle in achieving this kind of effective collaboration between business users and software developers, however, has always been the lack of technical knowledge on the part of business users, preventing them from fully participating in the development phase and expressing their needs in a manner that is immediately understandable for developers.
Now that we have established the need for a deeper customer involvement in development, one of the prerequisites for this involvement must be met: a working method of communication for business interaction. The format must be able to provide a "stage" where developer and customer can effectively communicate. It should provide:
By using a software development program that truly facilitates "intuitive communication with minimal technical requirements," the business user does not need to learn a specific language or syntax in order to participate in the development process. Instead, the use of models and a user-friendly visual representation of the solution domain significantly facilitate clear and direct communication, since less-technical concepts are far easier to understand than (complex) code fragments. Ideally, this kind of communication format uses clear visual representations of the model, reducing the need for intimate technical knowledge in the design phase to a point where effective business interaction becomes a reality.
In the traditional software development process, the first time a customer sees an actual working application is at the end of a project. If the very likely situation arises that the offered solution no longer meets the business user's needs, a great deal of resources will have been spent on an application that is of little or no business value to the customer. The very logical solution to this problem is athering feedback early in the development process.
Business interaction in the early stages of development reduces time spent on redundant code writing and design. Business Aligned Software Delivery promotes an iterative approach where feedback is gathered at the end of each iteration with the customer actively participating in the design phase. As a result, business interaction is minimal in the (optional) customization phases, where customized solutions outside the modeling environment are implemented.
Business interaction throughout the development phases in BASD
Maximum business interaction requires that the chosen development platform provides a fast and flexible environment. In order to keep business stakeholders actively involved, each development session should result in measurable progress, preferably in the form of a prototype, or better yet, a complete application. This implies that a BASD-capable development platform should be able to generate working software from an application model.
Business interaction is most effective if the gathered feedback is directly processed in the application model. This implies that the development environment should be able to handle change quickly and effectively. Changes to the parts of the application model, and the implicit changes to related concepts should cause minimal hindrance to the development process and development speed.
One of the major disqualifiers for many development environments as a suitable platform for BASD is the inability to integrate custom coding into a generated application. To achieve optimal business alignment, the developer should be able to integrate solutions that cannot be modeled in the business domain. The development environment should allow the developer to pinpoint exact parts of the system where intervention is necessary.
With the growing popularity and improved technologies supporting Model Driven Development, applications can be designed using less-technical ideas and concepts. The software engineering industry has embraced MDD methods as a means of more quickly creating stable software. However, one very important potential advantage is left unused by most platforms that facilitate MDD: The ability to actively involve business stakeholders in the modeling process. Existing MDD technologies are intended to bridge the gap between Business and IT, but are still not understandable to the business user and thus fail to make proper use of all the benefits of MDD. A development method based on the principles of BASD should take full advantage of MDD with regard to business interaction.
The concept of Business Aligned Software Delivery shares its iterative implementation strategy and focus on customer collaboration with ‘Agile’ methodology. But while Agile promotes customer collaboration, involving business stakeholders in the modeling phase is not part of Agile methods; BASD uses Model Driven Development implicitly. This is certainly not an insignificant difference; a development platform that might be a feasible option for Agile development can very well be unsuitable for BASD as it demands an intuitive visual application model. The closer interaction between developer and customer also demands better code-generating abilities. A code generation step that cannot provide a complete working interface or handle changes to the data model while retaining test data will be impractical.
As software development has grown to encompass many new disciplines with regard to the entire process from conception to maintenance, tools to support software development has also grown. With Integrated Development Environments (IDEs) and Application Lifecycle Management (ALM) suites, the trend has been set towards increased and improved involvement of project stakeholders. With simpler, easier-to-understand visual modeling tools and increasingly full-featured frameworks, the road is clear for the business to actively join the development process.
A deeper and more meaningful involvement of the business in the development process is not a new concept. In fact, it is seen by some [2] as the holy grail of Model Driven Development. As such, it is surprising that so few software development methods focus sufficiently on its implementation. This can mostly be attributed to the lack of a proper environment to facilitate involvement of business stakeholders. The Business Aligned Software Delivery principles imply a set of requirements for the chosen development environment. Does the Novulo software development platform meet these requirements and can Novulo be used to clear the path for active, practical cooperation between developer and customer?
With the Novulo Architect, application modeling is so fast and visual that it can be done together with the Business Stakeholder. It offers a user-friendly environment with familiar interface concepts such as copy/paste and drag-and-drop. Starting point for the development is the user-interface. The menu structure and interface design appear exactly as in the generated application, making the Architect's page editor an instantly familiar sight. With extensive options to modify the application design at data, logic and presentation level, the developer will not run out of options to implement even complex solutions while still using a pragmatic visual environment. As we have established, BASD requires the format to provide unambiguous communication, a complete (visual) representation of the solution domain and intuitive communication with minimal technical requirements for business participants. The format offered by the Novulo development platform passes BASD requirements with flying colors!
To implement early business interaction - one of the focal points of BASD - the Novulo Development platform has to support an iterative approach where feedback can be directly applied to the application model, which is in turn transformed so that the design choices can be tested.
In the Novulo Architect, a working system can be generated in minutes. Changes to the data model are automatically reflected in the chosen storage system to ensure that test data entered in earlier revisions is maintained. The Novulo Architect also features automatic problem detection, alerting the user when a potential problem arises. Problem detection is used to ensure that generated applications will function correctly, ensuring that time can be spent on testing design choices, not testing for bugs.
The following illustration offers a breakdown of business involvement in the various design phases of BASD development using Novulo.
As can be seen from the table, business involvement is greatest in the inception phase and creation cycles of the project. The most prominent disciplines in which this business involvement takes place are business modeling, requirements analysis, and application modeling.
In Novulo, customer feedback can be incorporated early, rapidly, and continuously to maximize success and acceptance, making it an ideal platform for Business Aligned Software Delivery.
As with a lot of things, software development is more fun if it is fast. Novulo aims at providing the developer with tools to implement ideas and requirements quickly and with minimal overhead. Consequently, business stakeholders will sense the increase in speed as a result of the Novulo development process, which will help guarantee that they will want to stay actively involved in the design process. The fact that the entire application is modeled in the Novulo Architect is an important factor in the ability to generate working software from the model. Since the interface is also modeled, no part of the application is unreachable from the design interface. Presentation, Logic, and Data handling are all generated with a simple operation from the Novulo Architect, ensuring that iterations in BASD can stay small and effective.
Another way in which the Novulo Architect provides flexibility is through its use of a dynamic data model that is derived from the application model. Because the data model is generated, changes to one part of the application may conflict with previously designed parts. The Architect’s data model generation and powerful problem detection can quickly solve these problems or alert users when action is needed. This ensures that working software can quickly be generated even after major changes to the application model.
Novulo offers the ability to integrate custom code in a generated application. This means that at almost any point in the application model, the developer can allow access to generated code, which will not be overwritten in the next code-generation step. Output from custom code can be seamlessly integrated in the model, creating maximum flexibility with minimal effort.
As global demand for quality business software continues to grow, developers replace their traditional development methods and tools with solutions that are better equipped to meet customer needs. With the growing popularity of Model Driven Development and Agile methods, software development is seeking to become faster and more reliable. With these new methods and the technology to support them, the software engineering industry is poised to make useful business interaction in all phases of development a reality. While there are a multitude of software development programs on the market today that seek to utilize the precepts of MDD and Agile, none of them embrace and deploy these methods as effectively as Novulo.
As illustrated in this article, the concept of Business Aligned Software Development describes how this business interaction is best realized, and it demonstrates how the active participation of business stakeholders in the design phase poses new requirements to the chosen software engineering environment. Although the tenets of BASD currently drive and inspire software developers to design methods to better engage business users, few if any platforms currently meet the demands of true BASD methodologies. The Novulo development platform, however, was created principally to realize these BASD objectives, and in turn offers a remarkably user-friendly environment that fits the requirements set by the BASD approach. The visual application model and fast code generating abilities open the door for end-user participation throughout the entire application lifecycle.