This patent application relates to information technology and in particular to techniques for integrating a graphical image with task information maintained in a project management system.
There are a number of software tools on the market that provide different ways to visually manage projects, tasks, and deliverables. These include LiquidPlanner, Wrike, Atlassian JIRA, Axosoft, Targetprocess, LeanKit, Casual, and others. These tools permit team members to manipulate schedules, create visuals such as Gantt charts, issue tracking tickets, and render visual displays of task status on scrum boards and the like.
U.S. Pat. No. 8,037,453 describes a system that manages configuration, test, and builds for software developers. The system obtains source code from a repository and transforms the code into a “living build” having “artifacts”. The “artifacts” may include object code resulting from the complied source code, build process documentation, libraries and the like. The drawings in this patent illustrate blocks connected by directional arrows. But these blocks represent the build process, job configuration, and source code repositories—and do not represent an underlying functional diagram of the software being developed; nor can open issues be associated with particular functional blocks.
U.S. Pat. No. 8,819,617 describes a system that provides interactive manipulation and consolidated views of data retrieved from third-party software development tools. The data may be stored in a code repository. Releases, test plans, defect tracking tools, configuration management databases, etc. can be linked. However, as with the patent mentioned above, a functional block diagram of the underlying code is not presented nor can it be interacted with to associate issues.
Other example patent applications of interest include U.S. Patent Publication 2013/0191291 which describes a crowd-sourced project management system that supports methods for participants to start, join, communicate, and contribute “user-defined activities”, and US Patent Publication 2011/0010214 which describes methods and systems for project management where a user can define “work packages” for a project and arrange the work packages into an execution sequence. Execution sequences may include one or more tasks. While the diagrams in these two patent publications include flowcharts, the flowcharts do not represent the underlying software code being developed.
Some examples of design patents for interactive user interfaces include:
U.S. D 712,918S1 is a design patent for a graphical user interface to a music application;
U.S. D 737,833S1 is a design patent for a smart phone shortcut menu; and
U.S. D 726,204S1 is a design patent on an operating system sidebar display.
None of these existing tools provide an interactive graphical user interface to an issue tracking/project management system that can link tasks or issues to specific areas on a graphic representation of the project.
More particularly, it can be chaotic working on projects such as software development projects. Using tools such as JIRA alone can be challenging as they are text-heavy and there isn't an easy way for team members to relate tasks to particular functional aspects of the software itself. As a result, team members may also lose context—quickly—without a clear place to constantly refer to.
Technical Overview
We have developed a graphical project management tool that takes representational images such as diagrams and designs originating from a number of graphics tools and/or online services (such as Invision, Sketch, Visio, Gliffy, or any image source) as input. The user then defines one or more “regions” of the image as a “hotspot”. The user may then associate the hotspots with issues/tasks that are tracked by one or more project management solutions (such as Jira, Trello, or any similar tool that can be queried for information concerning tracked tasks). The user can originate new tasks from within the tool, or may view a list of unassigned/unassociated issues/tasks imported from the project management tool. The project management tool also ensures that data is kept in sync between the graphics tool and the management tool, in real time.
The graphical project management tool may also provide selected features of an interactive user interface. For example, a user can select a functional block or some other area of a diagram as a “hot spot” and then associate one or more issues to it. In another example, a user can highlight an issue in a list of open issues, and see the associated hotspot highlighted.
More particularly, a software tool we call “Gliffy Project” is primarily concerned with providing an interactive graphical representation of the status of a project, as opposed to managing the individual tasks themselves. An external task tracking tool (such as JIRA) is relied upon to provide access to an underlying database of tasks. That database of tasks typically does not have any information about a graphic or other diagram that is representative of the project. Similarly, a diagram imported into Gliffy Project initially “knows” nothing about the project tasks. The Gliffy Project tool is thus used to define regions of the diagram as hotspots and associate them with task data inherited from the task management system.
A user interface can thus now provide an interactive view of the representative graphic, the hotspots, and text descriptions of the inherited tasks associated with those hotspots. In one implementation, a user interface is provided wherein a first portion of a screen presents the representative project graphic, and a list of tasks associated with the hotspot portions of the diagram is simultaneously presently on another portion of the screen. The different areas or regions on the diagram may be indicated with highlighted rectangles (or other visual indicia) to further indicate the hotspots that are associated with particular issues or tasks or groups of issues or tasks.
Each hotspot may also have a visual tag such as a small colored rectangle to the upper left of the hotspot. The tag may include a number representing the number of open issues for that hotspot, or the tag may have other indicia such as how much time is left to meet a deadline, or some other relevant statistic. Data for the tag may thus also be inherited from the project management system, to for example, permit users to plan a discrete amount of work to be performed in a particular amount of time.
The graphical tool may be used as an interface to present task data that originates with multiple other project tools. For example, the project team may use a first task tracking tool such as JIRA to track some types of tasks, and another tool such as Trello or Project Place, more appropriate for tracking other types of tasks. These different task management tools, assuming they each provide access to their underlying task data such as through an API, can each be accessed by Gliffy Project. It is even now possible for a single representative image to inherit tasks from more than one project task tracking tool at the same time.
In some implementations, filters may be specified so that only certain subset(s) of the tasks are shown adjacent the representative diagram. For example a query may be made that only returns the tasks that are associated with a particular user, or only those tasks due next week, or only the tasks associated with a particular set of hotspots, or some other task relation to the diagram. Filters can thus act as a different type of lens into the status of the project, still with the visually rendered project diagram displayed behind it, but to highlight only those tasks that have a certain attribute.
The foregoing and other objects, features and advantages will be apparent from the following more particular description of preferred embodiments, as illustrated in the accompanying drawings.
Example User Interface
One example use for Gliffy Project is to help manage a team that is developing a sofrware application. The main section of the screen 100 (or “canvas’) is devoted to presenting an interactive graphical representation of the functional flow of the blocks/components of the software application. Here, the software development team is working on an “Amazon Web Services (AWS™) Upgrade” project (AWS is a trademark of Amazon Technologies, Inc. of Seattle Wash.). In this example, the graphic depiction 102 is a functional flow diagram that originated from a diagramming tool, Gliffy™ (Gliffy is a trademark of Gliffy, Inc. of San Francisco, Calif.). It should be understood that the graphic 102 could have originated from other graphical tools such as Visio, Invision, Sketch, or Photoshop, or even a bitmap image. The graphic 102 may also be dynamic in that it changes over time. Such dynamic graphics may be generated by a computer aided design (CAD), engineering modeling, software prototyping system or service.
The tool permits a user to designate one or more functional blocks in the flow (or “regions of the image”) and tag them as a “hotspot” 110. Here the four (4) hotspots have been identified by being surrounded by a shaded or colored or otherwise highlighted rectangle. The contents may also be shaded, colored or highlighted. The user can then associate “tasks” 120 with each hotspot 110.
The tasks 120 associated with the project may be listed to the right of the graphic 102. The tasks 120 may include tickets indicating some action to be taken, or issues to be resolved, or some other thing to be tracked that is inherited from and/or provided to a project management system or tool such as JIRA™ (JIRA is trademark for a project tracking software available from Atlassian of San Francisco, Calif.) (We will sometimes use the word “task” and the word “issue” interchangeably herein to indicate the thing being tracked). It should be understood that JIRA is just one example of a task tracking tool and that many others may be used. In the case of a software project, the tasks tracked may include things requiring attention by the development team, such as fixing bugs, requested revisions, adding comments or other things.
The user can associate one or more new tasks 120 with each hotspot 110. The new tasks are then automatically synced to the associated project tracking system such as JIRA. The status of resolving tasks/issues 120 can also be reviewed/updated by interacting with the flow diagram. For example, users may apply a filter and choose to see only their “own” tasks/issues in the list on the right hand side. In other modes, a user might see or comment on other team members' tasks/issues. These features will be better understood after review of the details that follow.
While Gliffy and Jira were the respective graphical tool and task management tool in the example of
Turning now to a more detailed discussion of an example implementation, when the user initially starts the Gliffy Project application they may be prompted via a user interface to sign in or create an account via a screen 200 such as that shown in
As next shown in
As shown in
The user may then be given several options in which to associate images with the project. In the screen of
Eventually the user is presented with a display screen such as that shown in
After selecting a project (such as by clicking on its associated icon in the screens of
After selecting one of the images to work on, the user is brought to a screen 1300 such as that shown in
The basic idea here is that the user is now free to define areas or regions in the image 1305 that we call “hotspots” 1310 and then associate tasks 1320 with each hotspot 1310.
So, as shown in
Next, the user may select a button 1460 to create a new task (issue) for the new hotspot, or select another button 1470 to associate tasks that are imported from JIRA (or other external task tracking tool).
Gliffy Project also makes it possible for the user to easily see which issues are associated with which hotspot, and which hotspot is associated with an issue. This is shown in
Although not shown in the drawings here, Gliffy Project may also permit the user to overlay and/or associate other documents and/or information onto the graphic and/or the region associated with a selected hotspot. Such other information may be a text document with further details about the issue, an email, a chat thread, or other information.
It should also be understood that filters may be specified so that only certain subset(s) of tasks shown in the list on the right-hand side. For example a query may be made to JIRA that only returns the tasks that are associated with a particular team member, or those due next week, or only the tasks associated with a particular set of hotspots, or some other relation between the tasks and the diagram. Filters can thus act as a different type of lens into the status of the project, still with the visual displayed behind it, but to highlight only the tasks that have a certain attribute.
More generally, as represented by
As was shown in
The tasks displayed on the right hand side of the canvas may originate from user input into Gliffy Project, or more typically may be inherited from an associated task management or project tracking system such as JIRA. In other words, the tasks display on the right hand side of the canvas inherits its data and/or configuration from the project tracking tool.
Gliffy Project itself, in the typical embodiment, is not concerned with managing the tasks; rather that remains the principal responsibility of the project management tool. The project management tool is relied upon to provide access to an underlying database of tasks to Gliffy Project. That database of tasks typically does not have any information about the diagram. Similarly, a diagram imported into Gliffy Project initially “knows” nothing about the underlying tasks. It is the Gliffy Project tool which associates regions of the diagram as hotspots with associated task data provided from the database of tasks.
In other words, the Gliffy Project tool enables a user (such as a software or hardware engineer, a manager, or some other worker) to tag parts of a diagram as hotspots and associate tasks with them.
It should be understood that more than one source of task data can be connected in Gliffy Project. For example, an organization may use JIRA to track some types of tasks or issues, and another tool such as Trello or Project Place to track other types of tasks. These different task management tools, assuming they each provide access to their underlying task data such as through an API, can each be accessed by Gliffy Project. Thus a single image may inherit tasks from more than one project management tool at the same time. In other words, Gliffy Project can be used to roll up different sources of task data into a single canvas.
Gliffy Project can also be used be used for other situations. In the example of
This next section reviews a number of state diagrams that describe one example implementation of the Gliffy Project graphical project management tool.
As shown in
The API call “GET image . . . ” 2450 thus causes the Gliffy Project server 2420 to query the MySQL database 2430 to find the image including its regions. The database 2430 then not only fetches the image data itself from the image store 2450 but also returns 2452 the hotspot region definitions, and any tasks (issues) related to the image including the associated ones detected in the JIRA instance 2440. In a next state the Gliffy Project database may issue a Rest API call 2453 into the JIRA instance to verify that the issues retrieved from its internal database are still present in JIRA (thus to provide the real time syncing between the Gliffy Project issues list and whatever JIRA is managing). At this point 2455 the image, including the overlaid hotspot data and issue relationships can then be generated by the server 2420 and passed to the client 2410 for display as in the example of
In another flow, once the page has been rendered to the user, the user may for example request information about a particular issue. This GET request 2460 from the client to the Gliffy Project server (which may be a JSON API call) causes the Gliffy Project server to query 2461 the JIRA REST API for further issue information. Upon retrieval 2462 of that issue information, information from both from the JIRA instance (list of associated issues) and the information internal to Gliffy Project (the height, width, and x, y coordinates of the hotspot regions) may then be passed 2463 so that the client may update the display on the client machine.
Similarly, as shown in
Existing issues associated with a hotspot can be deleted 2910 per the state diagram 2900 in
When a user wishes to create a new issue (an issue that is not yet in the JIRA instance), the state diagram 3200 of
It can now be appreciated that the graphical project management tool described above places process flows, designs and a team's whiteboard drawings at the center of their work, by ticketing to a project's “big picture.” By presenting a visual representation of a scope of work to be done, rather than a list of tasks alone, it is now far easier for team members to understand the status of a project.
The graphical project management tool permits team members to resolve problems and questions such as:
The tool can also support a deeper purpose—team harmony—with overarching benefits such as:
Because the tool puts visuals that describe a project “front-and-center”—whether it's a system architecture, process flow or front-end design, the project team can now work visually. Some other benefits include:
Single “source of truth” for project status.
Update JIRA items directly inside the canvas, helping the team save time and maintain valuable context.
Aligning the team from small details to the big picture—the team can easily align, and execute on critical tasks together.
Valuable status updates and project overviews so the team can focus attention on what's critical.
Other Features include:
Integration with JIRA or other project management tools
The foregoing description provides illustration and description of systems and methods for implementing a Graphical Management Tool, but is not intended to be exhaustive or to limited to the precise form disclosed.
For example, it should be understood that the embodiments described above may be implemented in many different ways. In some instances, the various “data processing systems” such as servers, databases, client machines, and data stores described herein may each be implemented by a separate or shared physical or virtual general purpose computer having a central processor, memory, disk or other mass storage, communication interface(s), input/output (I/O) device(s), and other peripherals. The general purpose computer is transformed into the processors with improved functionality, and executes the processes described above to provide improved operations. The processors may operate, for example, by loading software instructions, and then executing the instructions to carry out the functions described.
As is known in the art, such a computer may contain a system bus, where a bus is a set of hardware lines used for data transfer among the components of a computer or processing system. The bus or busses are shared conduit(s) that connect different elements of the computer system (e.g., processor, disk storage, memory, input/output ports, network ports, etc.) that enables the transfer of information between the elements. One or more central processor units are attached to the system bus and provide for the execution of computer instructions. Also attached to system bus are typically I/O device interfaces for connecting various input and output devices (e.g., keyboard, mouse, displays, printers, speakers, etc.) to the computer. Network interface(s) allow the computer to connect to various other devices attached to a network. Memory provides volatile storage for computer software instructions and data used to implement an embodiment. Disk or other mass storage provides non-volatile storage for computer software instructions and data used to implement, for example, the various procedures described herein.
Embodiments of the components may therefore typically be implemented in hardware, firmware, software, or any combination thereof. In some implementations, the computers that execute the processes described above may be deployed in a cloud computing arrangement that makes available one or more physical and/or virtual data processing machines via a convenient, on-demand network access model to a shared pool of configurable computing resources (e.g., networks, servers, storage, applications, and services) that can be rapidly provisioned and released with minimal management effort or service provider interaction. Such cloud computing deployments are relevant and typically preferred as they allow multiple users to access computing. By aggregating demand from multiple users in central locations, cloud computing environments can be built in data centers that use the best and newest technology, located in the sustainable and/or centralized locations and designed to achieve the greatest per-unit efficiency possible.
Furthermore, firmware, software, routines, or instructions may be described herein as performing certain actions and/or functions. However, it should be appreciated that such descriptions contained herein are merely for convenience and that such actions in fact result from computing devices, processors, controllers, or other devices executing the firmware, software, routines, instructions, etc.
It also should be understood that the block and network diagrams may include more or fewer elements, be arranged differently, or be represented differently. It further should be understood that certain implementations may dictate the block and network diagrams and the number of block and network diagrams illustrating the execution of the embodiments be implemented in a particular way.
Other modifications and variations are possible in light of the above teachings. For example, while a series of steps has been described above with respect to the flow diagrams, the order of the steps may be modified in other implementations. In addition, the steps, operations, and steps may be performed by additional or other modules or entities, which may be combined or separated to form other modules or entities. For example, while a series of steps has been described with regard to certain Figures, the order of the steps may be modified in other implementations consistent with the principles of the invention. Further, non-dependent steps may be performed in parallel. Further, disclosed implementations may not be limited to any specific combination of hardware.
Certain portions may be implemented as “logic” that performs one or more functions. This logic may include hardware, such as hardwired logic, an application-specific integrated circuit, a field programmable gate array, a microprocessor, software, wetware, or a combination of hardware and software. Some or all of the logic may be stored in one or more tangible non-transitory computer-readable storage media and may include computer-executable instructions that may be executed by a computer or data processing system. The computer-executable instructions may include instructions that implement one or more embodiments described herein. The tangible non-transitory computer-readable storage media may be volatile or non-volatile and may include, for example, flash memories, dynamic memories, removable disks, and non-removable disks.
Accordingly, further embodiments may also be implemented in a variety of computer architectures, physical, virtual, cloud computers, and/or some combination thereof, and thus the computer systems described herein are intended for purposes of illustration only and not as a limitation of the embodiments.
Also, the term “user”, as used herein, is intended to be broadly interpreted to include, for example, a computer or data processing system or a human user of a computer or data processing system, unless otherwise stated.
This application claims priority to U.S. Provisional Patent Application Ser. No. 62/555,700 filed Sep. 8, 2017, the entire contents of which are hereby incorporated by reference.
Number | Date | Country | |
---|---|---|---|
62555700 | Sep 2017 | US |