aisingapore / TagUI

Free RPA tool by AI Singapore
Apache License 2.0
5.59k stars 580 forks source link

Limitations and Future Roadmap of TagUI #325

Closed shanalikhan closed 5 years ago

shanalikhan commented 5 years ago

What are the current limitations of TagUI. I have read your post here, https://github.com/kelaberetiv/TagUI/issues/116#issuecomment-379136600 but its some months old. So it would be great if you en light the limitations of TagUI current version.

Based on here : https://github.com/kelaberetiv/TagUI/issues/83#issuecomment-397435835 : May I know if TagUI is on maintenance mode or are you planning to add more things in it?

kensoh commented 5 years ago

The main limitations, compared to commercial RPA software can be found under Why This section, click to expand the section and see the weaknesses - https://github.com/kelaberetiv/TagUI#why-this

I've handed over the maintenance and development to AI Singapore, so at the moment I can't comment on the roadmap. Copying @Aussiroth for additional inputs, if any, he would have more details on the discussions internal to AI Singapore.

Aussiroth commented 5 years ago

Hi, for development of TagUI, we are currently on maintenance mode, with no current plans for any significant enhancements. If there are some important user requests that are minor or can be done easily I will look into implementing it though.

kensoh commented 5 years ago

Adding a note that this is no longer true, as there'll be a headcount in the pipeline to work full-time on TagUI - developing, supporting, and providing consulting services to Singapore organisations with the intention to implement TagUI RPA but do not have local IT / developer team to do it.

If you found this thread when searching on the roadmap and your organisation wants on build on TagUI to offer RPA services / capabilities to your clients or internal customers, see below details of roadmap and architecture, or email me at ksoh@aisingapore.org

A number of SMEs, startups and system integrators already use TagUI to offer RPA products and services to their customers, without any costs and fees to use TagUI in their offerings.

kensoh commented 5 years ago

Below is my response to someone who emailed to ask on extending TagUI for use in his organisation (performing IT services for government in one of the countries in Europe). He gave me a detailed background and have a number of questions, so I took time to reply him thoroughly.


Thanks for telling me the background context and I'm happy that TagUI is a possible candidate for your organisation. I'll share more on TagUI and its current status, so that your team can evaluate the next steps.

I created the tool in 2016-2017 while on a sabbatical to Europe. Coming from an enterprise software (ADP, HP Enterprise Services) and test automation background (DBS Bank), it is obvious that the greater value in UI automation is not in staging systems but in production systems for real business workflows. So I self-funded its development and kept it open-source right from the start, to get feedback fast and iterate fast.

In most of 2018, I joined AI Singapore to continue its development, adding on integration with Python, improving its visual automation capabilities, as well as many improvements to make it production ready for RPA use cases. Just me working on it. In Aug 2018 I left, to work part-time in Yara digital farming and to start looking towards working overseas. The GitHub comment above is correct at the time of posting. Alvin is my intern, after I left AI Singapore, he worked 8 hours a week to help with supporting TagUI users. He left in January and there is no one working or supporting TagUI then.

On the side in my personal time, I continued supporting TagUI users and also created a new major release v5, released in Apr 2019. More recently in Jun, I joined back AI Singapore at 40% FTE. Now taking care of newborn baby, so I work part-time and remotely. I'm the only headcount now working on TagUI. But now interviewing and going to hire a full-time engineer to be leading this project after I leave the job next year. I recently got endorsed as exceptional talent by the UK and would be moving there in Q1 or Q2 2020.

There is someone whom I interviewed who has a very different background from me. He is from business side, accounting and auditing, but has switched to tech career in the last couple of years. If the assessments go well, the plan is to hire, pass on all I know about TagUI, so that work can be continued. He is from frontend development background, which is great - he'll be able to add to the project in ways that I can't.

Now I'll touch on the roadmap and architecture.

My focus for TagUI has been keeping it very robust, stable and reliable. So that other startups, SMEs, system integrators can build on it to offer RPA products or services for their clients. If I add advance features such as orchestration, and reporting, and perhaps an IDE, then there is little incentive and hard for 3rd-parties to build on it for their customised localised solution. And the efforts to do that will bring attention away from keeping it robust and making improvements to solve issues of edge cases by these 3rd-parties when developing solutions for their customers.

As AI Singapore is a government-funded organisation, there is no business or revenue model. Thus all this is being done for free without any fees for using the tool, and there is no paid version for advance features. When the new guy comes in, he might have ideas to implement, but I'll strongly recommend to focus on the core and helping SMEs, startups, system integrators who use TagUI to succeed. That should be the strategy that can have the most impact I believe.

On advance features such as orchestration and reporting, someone I know is working on a free open-source core version with paid advance features version. He's building it on TagUI and I believe he should be releasing it by end of the year, given his fast development speed - https://www.youtube.com/user/anka843/videos

There is also another startup (https://techforce.ai) who has developed advance features on TagUI. I think they are going to create a new open-source project and credit it back. Partly because they have made significant changes and do not make sense to merge back to master, partly because AI Singapore has plan to offer RPA services next year for Singapore companies who want to implement TagUI but do not have the developers to do it.

On architecture, because TagUI is a CLI tool, the primary way to control it and receive outputs from it is simply invoke a command line process to run it with the desired parameters, and then reading the standard output or the various output logs of TagUI to do further processing. As an example, I recently created a Python package for TagUI. It has only 1000 lines of code, that is possible because I built it on TagUI using above I/O method (more details here on the architecture - https://github.com/tebelorg/TagUI-Python#about--credits)

Besides I/O integration, there is local and global functions which users can define and add their own functionalities. See more here - https://github.com/kelaberetiv/TagUI#helper-functions

Lastly, the main logic for translating human language to working JavaScript code is in src/tagui_parse.php and src/tagui_header.js - while the main logic in running TagUI is in src/tagui and /src/tagui.cmd (more details on files here - https://github.com/kelaberetiv/TagUI#files)

Furthermore, if above architecture, for some reason, cannot support adding features to TagUI or building on it, let me know, and I can look at what changes to codebase can be done to support such an extension or improvement. The improvements you made can be kept in your own open-source repository so that you have full control over its development. But if they are general enough and technically manageable for AI Singapore to maintain, then we can merge back to the main project and credit that back to CSI.

Adding on, this developer in Italy, he created an editor for TagUI base on its current architecture I described. Using the command line I/O and logs to control TagUI and get output back.

https://github.com/kelaberetiv/TagUI#tagui-writer-screenshoter--editor https://github.com/adegard/tagui_scripts

This design is also used by Moxie Studio in the YouTube videos above. Both implementations do not require any change to existing TagUI architecture as it is flexible enough to support such enhancements right out of the box.

Let me know if you have more questions!