Business Trends
Thinking Software Development with Automation
Automation is the foundation stone for all industrialisation. Each and every business sector, since modern industrial revolution, is trying to maximise automation. Less human intervention, less human labor and more of machine-based capacity augmentation.
Why Automation?
- Helps to perform repetitive jobs in day to day activities (pattern-based activities)
- Provides same results (Almost all time)
- Cost effective (may reap benefits in short time or may provide long-term benefits)
- Reduces human Errors (Omissions, wrong repetitions, etc.)
- Helps enhancing capacity based upon demand (does not require one-to-one mapping between machine capacity and human capacity)
Automation and IT industry
IT industry has been the base for most of the industrialisation since last century. It has impacted personal lives and businesses equally. Be it communication, processes execution, financial recording, product stock maintenance, auditing, tracking, customer relation, manufacturing, entertainment and many more. We need to see around and we would find that IT has played significant role everywhere. Listening to music from gramophone to enjoying and carrying music experience in our pockets.
IT, as any other industry, has also been continuously changing with automation. Starting from machine level language to assembly and to 3G and 4G languages. Assemblers to interpreters and compilers, WYSIWYG and now machine learning. We have seen drastic changes due to continuous requirement and fulfilment of automation in IT industry. Every now and then a new tool comes and creates ease of use for developers, designers, architects (technical and solution) and project managers. These tools enhance capabilities of their end users and free up time for more productive activities.
Many such tools are available today, e.g., for developers IDEs (for Java Eclipse/InteliJ), ABAP workbench, WYSIWYG (drag and drop UI IDE) and formatters. ABAP screen recording helps developers to record data entry for an SAP T-Code and overriding some of the features of existing T-Codes, without re-writing T-codes from scratch. Spell check eases typing and writing documents by reducing grammatical and spelling mistakes. Excel VBA and macros saves us from performing many validations, repetitive entries, creation of derived data and many more manual activities. New generation tools for RPA is helping businesses at different levels altogether. We are able to see software industry revolutions due to these initiatives of automation.
Code errors, typo mistakes, compiler-based errors of coding, debuggers for finding out problems in codes are few more examples for developers. These features, tools, frameworks and technologies follows relay race approach. Each new development uses previous features, adds few more and create better system for contemporary users.
We use many such features but often we don’t recognise that these features are part of automation where someone has put forth efforts to reduce manual labours and let the machine help us. Sometimes these tools just override complete human work and sometimes help us to reduces human work.
Misconception of Automation
Many of us think that automation can be brought only by machine learning. Yes, ML brings automation, but ML is not the only way of delivering automation. We enrich the processes and decision making by bringing ML. Automation is bigger umbrella.
For the end user (individual or enterprise), at an abstract level, s/w is a template where the responsibility of development team is to find a pattern and deliver this pattern which computer can understand. Post-delivery, s/w performs the same functionality every time its user interacts with it.
Automation in S/W development
For s/w organisations, again at an abstract level, delivery of these templates happens for every customer. This implies that there exists some pattern which could be traced in each delivery. The purpose of automation is to figure out those patterns, analyse the feasibility of automation and deliver it. Once automation artefacts are available, these could be utilised in every project which requires the same set of activities without/minimal human interactions.
Automation in SDLC
Enterprise level software development requires lot of efforts in every step of SDLC. IT industry has come a long way in delivering enterprise scale systems. Currently, each and every organisation has different tools, technologies, frameworks and many artefacts to improve system delivery. With these tools, SDLC is becoming easier and simpler than previous generation deliveries. Even though, there are a lot of scope for further improvements by bringing more of these frameworks. Customers are IT and cost conscious. They want cost and service differentiation in delivery. Various teams across organisation keeps developing some of below mentioned frameworks. Automation team should analyse these fragmented tools, generalise and push for wider usage and adoptions.
Let’s see how today SDLC leverages automation and what can be brought in as continuous improvement. Some of these wish lists are not feasible (technical or financially) today, but in future these would be realty.
RFP
- Estimators
- Internal estimators for sales team to provide basic estimation
- Detailed estimators required for architects and PM (cohesion in estimation)
- Online estimators for customers to select features/processes
- Reusable components-based estimators
- MVP/Model company/Industry specific contents
- Industry specific solutions (process & data pre-engineered)
- List of user stories/functional specs
- Calibration of estimators to change based on MVP/Model company
- Base level complete project delivery schedule and resource mapping
- POC & Hands-on experience
- Automatic changes of systems based on customer driven wish list
- Generation of basic code to implement few customer specific changes
- Basic UI generation to reflect what can be achieved
- Creation of basic integration flows to show integration capabilities with customer’s landscape
Requirement gathering
- Architecture Framework
- SAP EAF/TOGAF based templates
- Minimum input – maximum output principle
- User stories
- Estimations (different complexity levels)
- Clusters (List of user stories goes together)
- Customisation efforts and cost associated
- Generic user stories (e.g. master data efforts, integrations, UI, etc.)
- Delivering sequences (Parallel or sequential)
- Test cases
- Estimations reduction by mapping functional specs
- With reusable components
- With auto code generators
- MVP/Model Company/ Industry specific contents
- Mapping requirements with user stories
- Providing the delta changes for user stories
- Additional efforts required
- Additional Cost required
- Timeline changes
- Basic project management artefacts generation
- Timelines
- Skillset & resource planning
- H/W provisioning
- SIT
- UAT
Project management
- JIRA/Story boards
- Templates
- Dashboards
- MVP/Model Company/IS Specific User stories maintenance
- Maintaining Task level details
- Auto user story creation/Overriding of default values
- Tracking development at task level & day level
- User story states transitions
- Different Labels (Blocked, Sprint, etc.)
- Auto sprint definition based on alignment of user stories
- Usage of previous project data
- Pre-filled excels as templates
- Auto utilisation and burn charts
- Project site templates
- Calendar
- Document repository (Design & Architecture, Integration, etc. )
- How to guides (System setup, deployment guidelines, coding guidelines, )
- Repository for Customers
- MoMs
- Links
- Roles and responsibilities
DevOps
- Code management
- Code quality check (includes best practices, naming conventions,)
- Versioning
- Release management
- Load based system provisioning
- Auto load balancing
- User management and Security
- One-click deployment
- Logging, monitoring & alerts
- Auto system performance tuning
- Storage and maintenance of reusable components/MVP/model company/industry specific contents
Development
- Auto system setup for developers
- Code snippets & Templates
- MVP/Model Company/ Industry specific contents
- Reusable components
- User stories clusters
- Pre-delivered content for user stories
- Code generators
- Reload auto code in server
- Auto dev system setup for factory mode
- Use cases to code development
- Auto debugging and error identifications
- Auto upgrade and migration
- Auto code replacement
- WYSIWYG UI modellers
Testing
- Testing automation scripts and frameworks
- Test cases to testing script generation
- Auto test cases evaluation
- Auto Screenshot generation and tagging
- Testing report generation
- Auto Regression Testing and auto retesting
- Auto Load and performance testing
- Security testing
Documentation
- Collecting details from
- Requirement gathering
- Design and architecture
- Development Comments
- Testing screenshots
- To end user documents
Support
Same as Development
End User
Robotic Process Automation
Conclusion
Automation is heart of next for IT industry. Every day, customer requirements are getting more complex and bigger. IT industry has to manage these new challenging and dynamic environments with the help of new, bigger and better automation tools. Organisations need to create multiple frameworks to contain the elephant of challenging customer needs. Adoption strategy is as important as of development of automation tools and frameworks. Ideation, creation, adoption and maintenance is everyone’s responsibilities. If automation becomes DNA of any organisation, the growth aspect of the organisation could be manifold.