US 10,891,211 B1
Systems and methods for version control of pipelined enterprise software
Shih Ping Chang, San Francisco, CA (US); and David Edgar Lluncor, San Francisco, CA (US)
Assigned to Instabase, Inc., San Francisco, CA (US)
Filed by Instabase, Inc., San Francisco, CA (US)
Filed on Jul. 29, 2020, as Appl. No. 16/942,486.
Int. Cl. G06F 9/48 (2006.01); G06F 11/36 (2006.01); G06F 8/71 (2018.01); G06F 9/445 (2018.01); G06F 8/41 (2018.01)
CPC G06F 11/3612 (2013.01) [G06F 8/4452 (2013.01); G06F 8/71 (2013.01); G06F 9/44505 (2013.01); G06F 9/485 (2013.01)] 16 Claims
OG exemplary drawing
 
1. A system configured for version control of pipelined enterprise software, wherein the enterprise software can be used by users, wherein the users include a first user and a second user, the system comprising:
electronic storage configured to store information, wherein the information includes executable code of software applications that are installed and executable by the users, wherein the executable code includes sets of interconnected individual software applications that form software pipelines, wherein the executable code of the software applications includes a first software application, an alternative first software application, a second software application, a third software application, and a fourth software application, wherein the fourth application has a current version,
wherein a first software pipeline includes the first software application followed by the second software application followed by the fourth software application such that, in the first software pipeline, output generated by the first software application is used as input for the second software application, and further such that output generated by the second software application is used as input for the fourth software application,
wherein a second software pipeline includes the first software application followed by the third software application followed by the fourth software application such that, in the second software pipeline, output generated by the first software application is used as input for the third software application, and further such that output generated by the third software application is used as input for the fourth software application; and
one or more hardware processors configured by machine-readable instructions to:
receive first user input from a first user, wherein the first user input represents selection by the first user of the first software pipeline for execution of the first software pipeline;
receive second user input from a second user, wherein the second user input represents a second selection by the second user of the second software pipeline for execution of the second software pipeline;
make a first determination whether the second software pipeline would be improved if the alternative first software application replaced the first software application during the execution of the second software pipeline;
responsive to the first determination that the second software pipeline would be improved if the alternative first software application replaced the first software application during the execution of the second software pipeline, present a notification to the second user, wherein the notification notifies the second user that the second software pipeline would be improved if the alternative first software application replaced the first software application during the execution of the second software pipeline;
make a second determination that the second software pipeline would be improved if an older version of the fourth software application replaced the current version of the fourth software application, wherein the older version and the current version of the fourth software application perform different versions of similar tasks and are both included in the executable code;
responsive to the second determination that the second software pipeline would be improved if the older version of the fourth software application replaced the current version of the fourth software application, modify the second software pipeline by replacing the current version of the fourth software application with the older version of the fourth software application, prior to the execution of the second software pipeline for the second user;
facilitate the execution, through the executable code, of the first software pipeline for the first user; and
facilitate the execution, through the executable code, of the second software pipeline for the second user.