What is Ultra Agile Software Development?
Ultra Agile™ Development is the term used by SciSpike to describe the method and platform used to create commercial software about ten times faster than by conventional Agile or other means.
Using the Ultra Agile™ approach, complex, highly scalable, data intensive software systems that would normally take many developers a year or two, can be created by a handful of engineers in a matter of weeks or a small number of months. This entails using the Conversation Engine™ platform, or CE, for generation of Requirements, Software, Unit Tests and Documentation.
The Ultra Agile development methodology uses the following process:
- Extremely Rapid Requirements Iteration (ERRI), with each iteration taking just a few minutes, until the people specifying requirements are certain they describe the desired system. This often includes tens of iterations over the course of one or two days. Contrast this with standard Agile methods, where each iteration on requirements typically takes 2-4 weeks.
Ultra Agile Development Cycle
- Generation of Executable Requirements, in the form of a prototype system that does exactly what has been specified. The people specifying requirements are able to immediately use the prototype system after each requirements specification, and based upon using it modify the requirements and instantly use a new prototype. This process, from stating new requirements to trying out the prototype, takes a few minutes, as compared to a few weeks with conventional Agile implementation.
- Generation of finite state diagrams, automated unit tests, English language requirements specifications, and user documentation, all of which is guaranteed to precisely match the stated requirements.
- Generation of the business logic, back end software, and User Interface. The generated software implements the requirements as stated, and is extremely efficient, highly scalable, very easy to maintain, incorporates any specified security policies automatically, includes automated unit tests, and creates an audit trail for Change Management purposes.
- Hand coding of an optimized user interface. A working user interface with well specified API’s is automatically generated, and a software developer then modifies the user interface to create the look and feel, and user experience, as desired.
- Integration of the specified system with any other software systems as may be desired is done by software developers.
- Typically, the software developers only need to implement integration and user interface optimizations. Everything else is created automatically from the requirements specifications.
- Final system test, field test, and deployment
Ultra Agile Scalability
Using the Ultra Agile approach, developers do not need to be skilled in architecture of massively scalable systems or parallel programming in order to create systems optimized for massive scalability and throughput. The CE platform handles all of that for the developer. The CE platform creates software with linear scalability, which is ready to be deployed on your public or private cloud or server farm.
Creation of software with linear scalability is exceptionally difficult, and very few developers and software architects are skilled at doing this. Fortunately, your developers do not need those skills when using the CE platform for Ultra Agile development.
(Linear scalability basically means that, as you add additional processing units to your server farm, for each n units added you get n units of additional performance. This also means, as number of users or load increase, you can maintain the same response time by adding only proportionally more servers.)
SciSpike software architects have deep experience creating massively scalable systems with linear scalability, from online gaming design, Internet of Things, trading systems, embedded systems design, and other experience. They have incorporated those skills into the CE platform, so that your developers do not need this expertise.
Ultra Agile development enables you to iterate on requirements hundreds of times faster than with Agile development, generates very precise requirements specifications and user documentation, creates your software systems approximately ten times faster than by Agile or any other means, and yields software which is cloud ready and massively scalable.