ObjetX uses a Rapid Application Development (RAD) process that utilizes the Object Builder toolset to design and generate an application which is then enhanced and improved on an iterative basis.
The application is comprised of a set of components which can be developed in parallel and then combined into a complete application using the ObjetX Application Framework.
The tools and the framework are fundamental to the manner in which we design, develop and test our applications.
The RAD iterative prototyping lifecycle is fundamentally people-oriented and as such requires careful management of concurrent activities and good appreciation for the process on the part of both the end users (Product Management) and developers involved.
This process is more effective if non-developers have direct access to aspects of the development process such as screen design and workflow design, although this is not strictly necessary.
Project control for a large application is dependent on a non-linear project planning process that focuses on the tasks that must be undertaken to meet the desired requirements in an iterative, step-wise refinement process.
Contact us for a free White Paper describing the ObjetX Rapid Application Development (RAD) process.
Depending on the stage in the life cycle of an application: new development versus maintenance for instance, the type of iterative development will change. In new development, we see a more dynamic and intense a prototyping cycle; as we move into the maintenance phase, there is less focus on step-wise refinement and a process more akin to the traditional waterfall approach.
The issues essential to the success of Rapid Application Development include: Project Management; Project Team Structure; Change Control; Configuration Control; Testing, Quality; and Development and Management Tools.
RAD requires sophisticated development tools to be effective
Effective and timely project management is essential for the RAD process to work. Project management skills that worked for a traditional waterfall project are not sufficient to fully equip the RAD project manager.
Management of RAD teams involves a constant assessment and realignment of process, design direction and priorities with the outcome being motivated to achieving the optimum business solution, both in cost and quality of the deliverable.
- and a different approach to project management
RAD developers must accept that all changes are reversible and backtracking is an accepted practice. That’s why configuration control is an essential component of any application development tool used in a true RAD environment. Whenever a change is reversed, the previous version of choice must be easily accessed and (re)implemented. Change control is an essential discipline in RAD.
However, even more important is that developers need to understand and take responsibility for a continual refactoring of code. This is particularly important in areas of the application system that are closer to the core functionality of the application. Code must be reworked to improve the capability and to ensure that the core code can be used as a solid foundation for further development.
Users or the user representatives (i.e. Product Management) must be involved throughout the complete project lifecycle.
This involvement must be constant and consistent.
In other words, it is important that the right level of input is provided by the right people and, as far as possible, the same people from the start to the finish of the project.
It is desirable for developers and user team members must be in the same location to facilitate frequent discussions and assessment of code produced at any point in the development process.
Two key considerations in the development of sophisticated software applications are:
- The user/owner does not really understand what they want until they can see their application at work.
- There is a great deal of information lost through the transference of specifications between people.
Development teams comprised of developers, designers and users must be empowered to make decisions about functionality and design.
The focus is on delivering the optimum business solution.
Decisions and trade-offs have to be made between new functionality elicited through the iterative prototyping process and less important original functionality which may have to be excluded because of time constraints.
Iterative development within a time window (‘time-boxing’) is a very powerful way of developing the minimum acceptable best fit business solution rapidly.
The focus on business functionality and timeframe can work to the detriment of the system’s engineering, which takes second place.
This is why it is important the platform: the architectural framework for your application development - be a separate, full-function and complete product.
This allows the application developers to focus on meeting the business goals while the platform team can focus on engineering and optimizing for performance.
Testing in a RAD project is not a separate activity as in the waterfall approach.
Testing is integrated, incremental and undertaken by developers and end users alike.
A successful RAD test is one which elicits information about, or a better understanding of, the business domain and provides feedback to the next round of iterative improvements to the application component.
A RAD team includes testers, but the testers need to be more closely involved with the development and design process.
Because of time-boxing and the fact that the RAD philosophy requires a high degree of business focus, estimates, based on logical business functions, should be tight and tracked to very accurately.
If a deadline is protracted, the development team is at risk of losing business focus and concentrating on less important technical issues.
The risk of a RAD project failing is primarily measured against its ability to deliver business benefit rather than its technical architecture.
This separation of business benefit versus technical architecture is facilitated to a large degree through the effectiveness of the ObjetX Application Framework and the associated tools.