Wednesday, December 18, 2019

Robotic Process Automation (RPA)

RPA = Automation

RPA would be probably the most efficient & effective way a company can move quickly in the Digital Transformation journey.

Automation by default is key for success of Digital Transformation journey of a company.

Idea behind Automation is about actively moving towards a world in which people will be freed from repetitive and low complexity tasks, instead having more time to dedicate to work that brings value. Basically the Robot can be focused on important but very tedious and repetitive tasks and making no errors. Which would obviously result in human getting almost entire time for value added activities which could be customer meetings, understanding business requirements in an ever changing world, face to face interactions with people and so on.

RPA is non-invasive and easy to scale. RPA offers a light weight integration into processes and IT assets. Using RPA solution, companies can easily adapt to changing business requirements by scaling the solution up or down, depending on the requirements.

What should be the approach for RPA?
-        Look to automate the routine repetitive tasks
-        Look at the every task and ask questions like : would automating the task save time, result in accuracy, reduce errors, improve productivity

The 2 types of Robots in a RPA world are: Attended Robots and Unattended Robots

Attended Robots: for carrying out automated tasks which require human interventions at various points – for example the Robot can start manually or automatically. Idea is that, Robot will do automated tasks and human will do the non-automated tasks.

Unattended Robots: for carrying out repetitive / rule based tasks which do not require any manual intervention

Automation by default approach is the key success factor : first step in this direction would be to identify what can be automated and what cannot be. 
Which then brings us the challenge of what can be automated? The four categories to look would be:

  1. Cannot be automated : where most of the process tasks are performed by humans and every time the process is executed the tasks / activities can be different
  2. Scope for automating some tasks : where some of the process tasks are performed by humans and every time the process is executed the some of the tasks / activities are the repetitive
  3. Already have some level of automation : where some of the repetitive tasks / activities have already been automated
  4. Fully Automated : a fully automated world or where every tasks can be automated
RPA implementation obviously has to be done in stages:
  1.  Planning – define the processes, prioritisation, and detailed plan the implementation
  2. Solution Design – document the solution design, document each process, review the solution, create test scenarios, prepare the infra and environments
  3. Build – code for automating the processes, unit test the code
  4.  Test - integration testing of the workflows, user acceptance testing of the workflows, and finally get the process signed off
  5. Cutover to production – live transition, the process is deployed into production, monitor the process, and measure the performance
  6. Hyper care, ongoing support, and continuous improvement – provide production support, track the business benefits delivered
RPA can be implemented across any domain, example Supply Chain, Logistics, Manufacturing, HR, Finance and Accounting

Monday, December 2, 2019

Best Practices of Continuous Integration

  • Code Repository : maintain a main branch in the Code Repository which stores all of the Production ready code. From this main branch we can deploy code to Production at any time.
  • Build Automation : create build environment in such way that even with one command build can be triggered.
  • Self Testing Build : Every build should be self tested, which means that with every build there is a set of tests that runs to ensure high quality
  • Daily Commit to Baseline : developers should commit all of their changes to baseline on a daily basis. This is to ensure that large amount of code is not waiting for integration with the main repository for a long time. 
  • Do Not Check In Broken Build : developers tend to check in broken build. And when the build breaks, the same developers who broke the code has to spend time to build it and get it working quickly.
  • Always Commit Tests Locally : Running a commit tests locally is a sanity check before actually committing to the action. This will ensure that what we believe to work actually works. 
  • Production Like Environment Testing :  maintain a pre - prod environment which is very close to or nearly like a production environment. Perform testing on this pre-prod environment to check for any integration issues.
  • Publish Build Results : publish the build results on a common platform or site so that everyone can access and see these results and take corrective actions immediately.
  • Deployment Automation :  automate the deployment process to the extent that in a build process we can add the steps of deploying the code to a test environment. On this test environment the latest delivery can be tested by all stakeholders

Reduce food wastage with IoT Solution

Ethylene gas is produced by most plants, which use it as a hormone to stimulate growth & ripening . Fruits and flowers under stress can...