The exponential increase in microprocessor power has been achieved through significant levels of ongoing automation of the design and development process. In contrast, the process of developing software over the same time period has shown little better than linear increases in productivity. Indeed the speed of software development has become one of the key limiting factors to organizational and societal change. We believe that automation offers the key to transform the industry and achieving a similar pattern of exponential growth to that shown in hardware.
Beyond Code Generation
The founders of Catalyticsoft have a long history in code generation and believe that it is a powerful approach that can, and indeed should be used by most developers and development teams to accelerate application development. We are talking a maximum of 80 lines of code per hour without it and this is a major limiting factor on the ability of businesses to respond to change. However, we believe that the inherent problem with code generation is that its focus is on the generation of code - that is, its goal is to accelerate the art of application development by automating some elements of the manual coding process with output code as the objective. Coding, however, is a "means to an end", the actual business goal is generally to share information or functionality though the deployment of applications that meet a specific business needs - to a large degree the coding and indeed applications themselves are just the current mechanisms to achieve the business goal. As application increasingly move from being deployed on local networks to the web as the core development platform this distinction will become even more critical. Application development will increasingly involve the integration of services to meet a specific business need. The business goal - not the mechanism for achieving it, will increasingly become the central issue.
In making the move to from code generation to automation we were able to refocus our effort away from coding and towards the achievement of business goals. In the short term this has meant automating as much as possible of the development process - architecture and manual coding being the most obvious areas. A simple 80/20 analysis shows that manual coding and testing representing the largest element of the average development project and therefore the area most likely to produce substantial breakthroughs if automated.
We still use code generation as one of our core underpinning tool sets in CAT Accelerator, but have refocused its use away from producing code and towards creating a complete application and underpinning framework that can be used to build an application. Further, by ensuring that where ever possible, the decisions made by those using the technology are written out with the application as meta data we ensure that the application can be further enhanced with limited coding expertise and enhanced and in many cases can be further tailored without involving professional software developers. The goal has become one of empowering business people to innovate and develop application without having to acquire the expertise of an application developer. In effect we are seeking to automate that expertise within the specific problems that CAT Accelerator has been designed to solve and and shift our manual software development work into building the automated frameworks and unique code within an application, which allow both developers and non developers the freedom to create - we are seeking to democratize the development process.
Although Automation itself is knowledge intensive, the results of its application overcomes the competitive advantage of a large, relatively low cost population base - particularly in the area of Software Development. To make this clear:
How many Outsourced Software Developers does it take to write 100,000 lines of code in 2 ½ minutes?
Leveraging CAT Accelerator, a single developer can easily produced over 100,000 lines of code in 2 ½ minutes. Indeed this is regularly done by Catalyticsoft during demonstrations of their technology.
Catalyticsoft are continuing to evolve a range of technologies under the CAT - Catalytic Automation Technology - banner and are also in the process of writing a book on Automating Software Development which is targeting a release in early 2009. Please check this web site for updates.