Software Development Automation: Actions, Skills, Costs
Software Development Automation: The Essence
Automation in software development is a way to minimize errors during the software development process, make it faster and more cost-efficient, and improve team collaboration and productivity.
The most popular SDLC automation practices are low-code development, test automation, and CI/CD implementation.
From 2 weeks to 1-3 months to build an app using low-code platforms.
3-5 weeks to develop an efficient CI/CD process for a middle-size software development project with several microservices, an API layer and a front-end part.
~ 2 months to set up test automation.
Software Development Automation: Setup Journey
The software development automation setup process depends on the chosen automation option and the development project specifics. Below we share the general automation insights and roadmaps we apply in our projects.
The low-code approach to software development requires little to no coding to build applications and automate processes. The cost of low-code development is nearly four times less than developing an application from scratch with custom coding. Low-code development technologies include:
- Low-code application platforms.
- Business process management suites.
- Multiexperience development platforms (MDXP).
- Robotic process automation.
- Citizen automation and development platforms (CADP).
- Rapid application development (RAD), rapid mobile app development (RMAD).
A low-code application platform (LCAP) is currently the most popular low-code development technology. LCAPs (e.g., Microsoft Power Apps, OutSystems, Mendix) provide visual drag-and-drop modules that simplify and streamline building new apps.
Note: Low-code development means limited customization of design and UI layouts, complicated app optimization and evolution. The code also cannot be re-used in other apps.
The most common app types developed with low code are:
- Employee-facing portals, intranets, productivity apps, internal resource planning and decision validation apps, audit apps, etc.
- B2C and B2B portals.
- Mobile apps for employees, customers and partners.
- Software prototypes.
Low-code development is good for apps with few user roles, simple and specific business logic.
It usually takes from 2 weeks to 1-3 months to build an app using low-code platforms.
The key steps of setting up low-code development with LCAP
Assess the feasibility of low-code development by analyzing technical requirements for an app, its functional complexity, required integrations.
Choose the low-code application platform fitting your specific business demands taking into consideration:
- The aim of your low-code development project – accelerating productivity of your developers (Microsoft Power Apps, OutSystems, Mendix), empowering business people to model, automate and execute mission-critical business processes (Caspio, AppSheet), or letting IT and business teams collaborate to build a software prototype quickly and with little effort.
- The type of an application you want to develop (a customer-facing or an internal app; a web app, a mobile app, a portal).
- Non-functional app requirements of security, scalability, performance, etc.
- The core technologies the low-code platform uses.
- Application components you plan to develop using low code – the front end, integration, the back end, database operations, data visualization.
- Whether you want to have access to source code.
Create a roadmap for the low-code development project.4
Set up QA, app performance monitoring and management processes.
Continuous integration and delivery (CI/CD) involve the creation of a pipeline that automates building, testing and deployment of software across staged environments. The most sophisticated CI/CD process helps integrate, test and deploy new software functionality within 2-3 hours.
Continuous integration (CI) focuses on the principle of a shared repository, where code is frequently updated and shared across teams that work in the cloud environments. CI allows developers to work together on the same code at the same time. The changes in the code are directly integrated and ready to be fully tested in different test environments.
The ultimate goal of continuous delivery or deployment (CD) is to bring software to production in a fully automated way.
The duration of the CI/CD system implementation depends on several factors:
- Development project size.
- Requirements for code integration.
- Requirements for delivery of deployable components.
At ScienceSoft, we generally need 3-5 weeks to develop an efficient CI/CD process for a middle-size software development project with several microservices, an API layer and a front-end part.
The key steps of setting up CI/CD
Note: The architecture of the application under development should support iterative releases.
Mapping expectations from CI/CD implementation (e.g., 50% faster release speed), the existing software integration, testing and delivery processes (if applicable).
Implementing key DevOps processes (if not yet):
- Creating autonomous teams that take end-to-end responsibility and are given the authority to make decisions and act on them. Typically, DevOps teams are agile, working in short sprints of 2-3 weeks.
- Defining the role of each member of the cross-functional teams in terms of DevOps activities to avoid confusion and accountability gaps.
- Adapting to work in a common code repository, including Infrastructure as Coe (IaC). The application code and the infrastructure code is in the same repository, so that all teams can access it whenever they need to.
- Designing and implementing the containerization approach based on Docker, Kubernetes, Apache Mesos, etc.
Selecting the right tools for development, testing and deployment automation. Key factors for consideration include a licensing cost; possibility of seamless integration with other technologies used in the software development project/projects; choice between a self-hosted tool (Jenkins) and a SaaS tool (Azure Pipelines).
ScienceSoft’s tip: Some of ScienceSoft’s favorite tools to form a suite for CI/CD implementation are:
Implementing and integrating CI/CD tools.
Installing and launching the CI/CD pipeline.
Selecting and conducting pilot CI/CD tasks.
Measuring the results, usually 3-5 metrics. Some metric examples include:
- The cycle time.
- The frequency of releases
- The number of automated tests run.
- The number of defects in production or the number of regressions/rollbacks needed.
- The mean time to repair (MTTR).
- The cost to deploy, and more.
Automated software testing implies writing code-based test scripts to execute all test steps automatically. To develop test scripts, validate and maintain test code, test automation engineers employ specific test automation tools.
The key steps of setting up automated testing
Duration: ~ 2 months.
Defining the test automation feasibility for your software development project. The feasibility study usually takes around 1 week and considers software’s technical aspects, complexity, stability, size, frequency of changes, and more.
Developing a test automation strategy (the scope of automation, the levels and types of testing needed, fitting testing tools and the test automation architecture); planning test data preparation, test development and maintenance, integration of test automation into CI/CD, etc. It usually takes up to 4 weeks.
ScienceSoft’s tip: Employ well-supported test automation frameworks that allow for maximum flexibility (support for multiple programming languages and browsers, a wide range of plugins, extensions and integrations with other tools, etc.). For automated UI testing, these include Selenium, Protractor and Appium. For automated API tests, we at ScienceSoft use REST-assured, RestSharp frameworks and Apache JMeter tool. Sometimes we also integrate Selenium with Cucumber to implement increasingly popular behavior-driven development.
Drawing up the set of test automation KPIs to track. These KPIs may include automated test coverage, cost per automated test, test run time, the share of passed and failed tests, and more.
Setting up and configuring the test automation environment to smoothly run test cases for all targeted platforms, devices and browsers.
Writing and maintaining scripts for automated testing.
ScienceSoft’s tip: To ensure maximum test code re-use, ScienceSoft’s test automation experts design an agile test architecture that allows for better test re-use and test maintenance even in case of frequent changes in app functionality and UI.
Integrating continuous testing in CI/CD pipelines to automatically run tests after every change in the developed application.
(optional) Setting up the Testing Center of Excellence to introduce a consolidated company-wide test automation environment, establish common software testing tools (test automation frameworks, bug and issue tracking tools) and standardize test coverage and quality metrics.
ScienceSoft’s tip: Use the balanced combination of automated and manual tests to achieve max software quality while supporting frequent releases and staying cost-effective.
ScienceSoft’s team usually automates functional regression and integration tests, cross-browser testing, performance testing. Manual testing is used for exploratory testing, one-time runs to provide prompt response to developers after hotfixes, testing from a user’s perspective (simplicity, visual aspects).
What is Your Need in Software Development Automation?
Microsoft Power Apps services
- Microsoft Power Apps advisory services (identifying the right apps for low code development, road-mapping a low-code development project(s), etc.)
- Building custom business apps, portals, modern UI and UX for applications with Microsoft Power Apps.
- Connecting apps built with Power Apps to your data stored across Microsoft's ecosystem (SharePoint, Microsoft 365, Dynamics 365, etc.)
- Extending the capabilities of Power Apps using Azure functions.
- Deployment, support & administration of apps built with Microsoft Power Apps.
- Integration of Power Apps, Power Automate, and Power BI.
CI/CD implementation services
- Designing the CI/CD approach, selecting and configuring CI/CD tools (e.g., Jenkins, GoCD).
- Designing the test automation approach and integrating continuous testing into the CI/CD pipeline.
- Integrating IaaC and configuration management tools (Ansible, Chef, Puppet) with CI/CD tools (GoCD, Jenkins, Bamboo).
- Deployment and configuration of CI/CD and test automation tools.
Test automation services
- Test automation strategy development.
- Test environment setup and configuration.
- Automated test data generation.
- Automated UI and API testing.
- Test scripts migration from other platforms (e. g., UFT) to Selenium.
- Integrating continuous testing into the CI/CD pipeline (in cooperation with DevOps).
- Setup of the in-house Testing Center of Excellence (optional).
Development automation consulting
- Identifying software development automation opportunities, estimating investments and ROI.
- Building the automation strategy and roadmap.
- Selecting and configuring the right automation tools.
Software Developer (trained in the target low-code platform)
- Training and mentoring citizen developers.
- Building low-code apps.
- Integrating the new apps with data sources and other enterprise apps.
CI/CD engineer / DevOps engineer
- Developing CI/CD pipelines.
- Reviewing and modifying CI/CD pipelines.
- Maintaining CI/CD tools and platforms (if applicable).
- Developing and maintaining CI/CD pipeline configurations.
Note: familiarity with software packing tools, modern-version control tools, security tools, code coverage analytical tools and monitoring tools is required.
Test automation architect
- Designing a test automation architecture.
- Selecting and configuring test automation tools and frameworks.
- Managing test automation engineers to improve the maintainability and granularity of automated tests and decrease test execution time.
Test automation engineer
- Setting up the test environment and test data generation.
- Developing, executing, and maintaining automated test scripts.
- Reviewing automatically generated defect reports.
- Collaborating with other cross-functional team members to improve the maintainability and granularity of test scripts.
Sourcing Models for Software Development Automation
Technologies ScienceSoft Recommends for Software Development Automation
Below is a quick overview of the tools that we at ScienceSoft often choose for our software development automation projects.
Microsoft Power Apps
- Among Leaders in Gartner’s Magic Quadrant for Enterprise Low-Code Application Platforms.
- Creation of low-code applications with pre-built templates or from a blank canvas.
- Extending existing apps with new functionality.
- 300+ connectors to integrate with the Office 365 universe, Azure SQL, Azure Cosmos DB, Amazon Redshift, and more.
- Rich AI capabilities – pre-built AI models can extract text from images, perform key phrase extraction and sentiment analysis.
- Introducing advanced app security and controls.
Power Apps licenses: $5 – one app per user/month and $20 – unlimited apps per user/month.
AI Builder: $500 per unit/month.
Cost of authenticated users of a portal built with Microsoft Power Apps:
- $200/per 100 logins.
- $1,000/per 1,000 logins.
- $3,500/per 5,000 logins.
Cost of anonymous external portal users: $100/per 100,000 portal page views.
Development and execution of automated web UI tests
- 4.5 rating on Gartner.com
- Supports Windows, Mac, Linux OSs.
- Supports Chrome, Firefox, Internet Explorer/Edge, Safari, Opera browsers.
- Supports C#, Java, PHP, Python, Ruby, Scala.
- Selenium web application tests can be re-used in mobile testing with Appium.
- Many helping forums and a huge community.
- 4.3 rating on G2.com
- Easy installation on different operating systems.
- Speedy release cycles.
- Intuitive user interface.
- Ecosystem of over 1,800 plugins (platforms, user interfaces, administration, source code and build management tools).
- Support of distributed builds to reduce loads on the CI server.
- A thriving community of contributors, which helps keep the tool up-to-date.
ScienceSoft is a US-headquartered IT services company with 33 years of experience in building software, 8 years in DevOps consulting and 21 years in test automation. We offer both advisory and practical assistance with software development automation to help businesses speed up high-quality releases. ScienceSoft is ISO 9001 and ISO 27001 certified, meaning we assure the quality of the delivered services and the security of the customers’ data.