Evolving the Bots
By Tessa Holland and Mikaela Robertson 14 January 2020 Way of Working
The process we follow to evolve the bots.
The dream of the Codebots platform is to create a product where humans and bots can work together to create awesome software. For certain customers there is the potential to create a new bot that writes a specific technology stack or framework.
Identifying an Opportunity
Part of what makes the codebots so efficient is the use of 'behaviours', which are patterns of functionality which are often repeated in different products (i.e. CRUD is in almost every product in some form or another). Codebots takes advantages of these repetitions and uses them as a chance to save development effort by creating reusable behaviours which can be applied to any part of a product.
The ability to identify a potential behaviour is about recognising patterns in both functionality and user experience. A behaviour may be something which the team developed in a previous application, or it may be something which is quite common and is most likely going to need to be developed again in the future.
Starting the Evolution
Once an opportunity has been identified, the development team have an opportunity to train the bot in the new behaviour (or improve/extended an existing one).
The following diagram demonstrates how this idea can turn into a chance to improve the bots. It follows the initial development process of the concept and how the bot gets trained.
Let the Bots Take Over
The following diagram demonstrates how the bot could potentially write a feature which meets the requirements without any customisation being required. At this stage, all of the code has already been abstracted into the bot's model. Developers only need to build the model for the bot to receive its instructions and write 100% of the target application.
Business as Usual
The following diagram is the stage where we want to operate. Developers work with the bots to create software, following the process for training the bot and ensuring the code written by the bot meets the requirements.
The ultimate goal for this process is to progressively increase the amount of project code produced by the bots.