java.lang.OutOfMemoryError: GC overhead limit exceeded

Building a Workflow To-Do List

2. February 2009 03:03 by Scott in   //  Tags: ,   //   Comments (0)

When working with workflows in software engineering, there are plenty of people that have done it before you and there will be plenty of others that come after you.  Workflows are a foundation in the corporate world and new and old workflows are coded each day into the world of applications.  So much so that Microsoft came out with SharePoint to help with your workflows and make them just a much better system and easier for developers.  Workflows allow you to pass information from one person to another most likely attached with costs and some item of priority.  Ideas and development happen all the time, but their hasn't been much innovation in workflows today just because they are exactly the way they worked 20 years ago.  No need to innovate something that works unless your in the computer industry making state of the art hardware.  When understanding a workflow, there needs to be a front page, a designed system to go through each "step" in the workflow and a ending point.  You have to be able to send emails, show the workflows entirety and show some sort of "to-do" list which shows the user what they have to complete in the flow.  It helps them understanding their current tasks.

Workflows are easy to display and configure.  You have to pass information from one step to another where the steps are not infinite, so you can display them in a bubble like format on one page of your application.  Reporting is easy as long as you capture all the data that gets entered, all the dates in which something happens and every thing in between.  The innovation for workflows has more or less come to a skreaching hault.  When you take a paper workflow and build it into an application, its hard to display your to-do list.  You need to display the tasks easy enough for the person to understand what they have to do.  Due to the screen real estate in such a high demand on the front page it is important to get that list as small as possible so you must learn to innovate a way to show them a to-do list which is small and tight.  You must allow them to see ALL the item that need to be completed while also allowing items to be sorted and let them sit stagnant for a long period of time while other items are being added in daily.  So what do we have?  Well if your keeping up, before we created the app, we have a whole pile of paper sitting on a desk ordered by how recently it has been worked on and after, items sitting in a to-do list in an application with a few hundred entries in the list.  Now, how to split those entries up or display them as fast as possible that the human eye is able to capture all in a few split seconds.

The to-do list is easy to see if it is a huge stack of papers, but hard to keep organized.  The application allows for much less paper to be involved, but forces you to innovate in which the user sees the stack of paper(in the app).  I currently am working on how to innovate a "to-do" list and I must say that there aren't many examples of the list in the world.  What sits in the users queue could be only a few items or a few hundred items.  Here is where the problem lies.  How to display and organize a 100 plus items in a to-do list with the ability to sort through them in a few split seconds with the human eyes.

Taken by

Items that are a must have:

  1. Very Little Scrolling.
  2. Sorting.
  3. Split second reactions to what is seen.
  4. Fast Loading - Is taken care of with the language your using and the hardware your on.

Very little scrolling, Sorting and Split second reactions go hand in hand.  If you can sort fast, people will have a much better understanding of what they have to do, while sorting gives us the ability to make those split second decisions.  The question though is how to get all three into one application of the front page where screen real estate is very important?  Split second reactions need extremely relevant information up front.  This information will need to be sorted along with little scrolling.  Well how do you Sort 100 objects with no scrolling on tight screen real estate?

  • Options that came to mind are grouping them into tables when a user clicked the group. 
  • The default way is to just show a table of information with sort buttons up top which seems to be standard, but when you have to go through 100 items, it gets tough for the split second reaction times and which still requires scrolling.
  • Another Option would be to show the user which items they have already viewed for the current step its at.  Then create a new list which contains the "already viewed" items.  This will allow for a lot less scrolling, because the items were on an entirely separate list and unless the user had an action for that item, they wouldn't need to scroll down. But the fact that you still need to show the user the list would force you show them all together, but once the user clicks a sort button for "Already Viewed" they would then separate into two lists.

Which type of to-do list shall I go with? Well, I am going to go with the third one.  Even though it involves a bit more programming on my part, I think it is the "to-do" lists of the future.  The next question is how to make this happen in such a small tight place of screen real estate.  Hmm.

Got any other ideas on how to show to-do lists?  Show them in the comments, I would love to see them.

If you liked this post, please be sure to subscribe to my RSS Feed.