On naming software…

As mentioned in previous posts, we’re going through a process of launching a new product specifically designed for SMEs – which has gotten me thinking a lot about naming.  Many of our clients white-label Kontinuum – they develop workflow solutions within the Kontinuum engine, and give the configured solution their own branding which they then use within their organisations, or when re-selling the solution to their clients.  Sometimes, these names are brilliant – concise, catchy, and explain the app well.  So while I’m thinking about it, here are some things we consider when coming up with names for products:

1. Keep it simple – short, easy to remember, and easy to spell

“Everything should be made as simple as possible, but not simpler” – Albert Einstein

2. Make sure your name is unique – particularly in your industry (for all concepts), or across the board for all software.  This will help you to differentiate your offering without confusing the market or redirecting your users elsewhere.  This will also have the benefit of meaning you don’t have to compete with other companies or products for getting to page 1 on search engines, if you’re looking to re-sell your software

3. For the same reason, don’t name your product something too generic like a dictionary word – chances are you’ll need to add additional words (and therefore break rule 1) to explain what you do.  You’re also likely to end up low on any search ranking, at least for a while (notable exception – Amazon)

4. If possible, use the Meg Whitman rule and come up with a name that might be used as a verb (as in, “I’m going to google this”, “Can you xerox this for me”, etc)

“When people use your brand name as a verb, that is remarkable” – Meg Whitman

5. If you can’t get the .com; choose another name.  It’s just going to be too hard for users to find your site.

6. Don’t name your product something too specific that you may need to to change as your product evolves or pivots (Roses Only is a great brand, but I wonder how many of their gift baskets and fruit baskets they sell?  The name would detract anyone looking for those products, as you would assume they don’t sell them)

I’m wondering if anyone has any notable examples of, or exceptions to, the above rules – or any more to add.  Please comment if you do!


Philosophy of Workflow

I wrote this several years ago for the kind of system that I wanted Kontinuum to be and has grown into today.  I am including it in the blog because it may be of some interest and it is a slow news day.

Web and Flo Kontinuum Philosophy

1) All data is best held in a database where ever possible.

a. Within a database data is structured

b. Within a database data is easily searched

c. Within a database data is easily manipulated

d. Data within the database should be in Boyce-Codd Normal Form.

2) All Functionality should be extensible by third parties

a. How users answer questions (Answer Box Types)

b. What functions can be performed by Gates/Activities

c. How answers grouped together can be represented to the user and stored in a table (Sub Form Types)

d. Input Masks

e. Template Files for Drawing outline HTML

f. Style Sheets

3)  Kontinuum must be able to be customized to fit any business process

a. Configurable and Embeddable Workflows (For any circuit/Petri Net you can design you can design a Kontinuum Workflow)

b. Configurable Forms

c. Configurable User Management and Organization Structure

4) Admin users need absolute control over who can view/edit/delete/add anything in the system based on any criteria

5) Users should not have to enter in the same information more then once

6) Every new version of Kontinuum will have increased functionality

7) Every new version of Kontinuum will run faster then the previous version

8) Every new version of Kontinuum will aim to reduce the new of clicks necessary for navigation, and creation of records

9) Every new version of Kontinuum will allow the end user greater ability to customize their own user experience

10) Every new version of Kontinuum will operate on more platforms/browsers then the previous version

11) Every new Version on Kontinuum will interact with a greater number of industry standard applications.

As a side note looking back we appear to have delivered on all of the goals we set out on, although I am sure that luck must have played a part somewhere along the line.  To this list I should have added:

12) Every new version will be backwards compatible

13) Every new version will provide greater ROI for our clients

14) Every new version will look better then the previous version

15) Every new version will have a higher version number then the previous version 😉

How to Model a Process Part Two

First off sorry that it has taken me a little bit longer then expected to come up with part two.  Let's begin shall we.


At each step in the process or workflow you need to determine what information is collected, displayed, allowed to be modified, validation rules, business rules the list is a bit long.

Let's start at the smallest unit at least in our system, the question.

You need to determine a lot about a question and its corresponding answer.  At a minimum you need to determine:

  1. What it should look like
  2. Where it should appear on the page
  3. Is this question repeated
  4. How should it be stored in a database
  5. Where should it be stored in a database
  6. How does it behave / business rules
  7. Does it react to answers supplied to other questions
  8. Does is have default or automatically calculated values
  9. Does it have a list of static or dynamic options available as answers
  10. Who gets to see, edit the answer

Once you have determined all the questions being asked you need to group them together so they can be stored in the database in a logical way. 

Here you need to determine if the groups of questions you are asking are answered only once, an indeterminate amount, a determinate amount.  This contributes to how you should layout the group of questions on the form. 

You may also need to determine if logically one group of questions can be considered as having a parent-child relationship with another group of questions.


In other steps of the process you may need some sort of data manipulation to happen.  I.e. data is translated from one system to another and back again.  The main things you need to be asking yourself are:

  1. For each column (or field) what is it, how is it stored, does it need to be parsed in some way and where is it going.
  2. For each row (or record) does it need to be broken into multiple records in the new system or do multiple rows or records need to be combined in some way into the new system.


In these types of gates where information is displayed or sent to users the questions you need answered are simply:

  1. What do you want to see
  2. How do you want it presented (layout, color etc)
  3. Who do you want to see it
  4. When do you want them to see it
  5. By which method (email, webpage) do you want it presented

Do you spend too much time dealing with workflow.

Top 5 indications you spend to many hours dealing with workflow

1) You try to type words like ‘flower’ and ‘workplace’ and end up typing ‘workflow’.

2) You find yourself terms like ‘continuity’,’Process Instance’ and ‘workitem’ like in casual conversation.

3) When you need to cook you find yourself trying to automate as many steps as possible.

4) You say something stupid and wish you had designed your reality to have a rollback function.

5) You find yourself reading this list.

How to Model a process Part One

There are a range of questions I need to ask in order for me to effectively model a current workflow process. 

I won’t go into all of the different methodologies but will just briefly tell you of one of the two methodologies we use.  This methodology was specifically developed by us to do our requirements gathering for implementing workflow applications.  As such we made it into a workflow application that guides us through the steps to create a requirements specification and an AS IS workflow diagram(s)
Question 1
What am I trying to do?
What is the commercial driver for putting in this workflow system?

Question 2
Who am I trying to make happy?

Question 3
What do I want to be able to show at the end?  Most people have some idea of the must have or nice to haves of what they want from their system.  Also if they have any reports or example reports that they want the system to produce look at these almost immediately. 
This will tell you the minimum amount of information the system will need to collect in order for you to deliver the report.

Question 4
What are the end points of the workflow/process i.e. when does the process terminate?
Remember an end point is a high level goal and this most be looked at key to the systems success.

Question 5
What is the step or steps immediately preceding the endpoint(s)?  Our philosophy is working from the back (i.e. the goals) to the front.  This allows us to better capture all the steps.  People who work from beginning to end sometimes skip steps whereas if they are asked what must immediately follow step a they are less likely to leave things out.
*Please note that we define a step as a placeholder where ONE person or ONE machine is able to supply all the information required for that step to be completed at a single point in time.
**A step is also often referred to as an activity.

Question 6
Are there any rules under which a step is omitted?
Answering all these questions allows us to create a workflow diagram (in the application I mentioned above the diagram is actually created for us)
but we still need to find out what information is displayed, created, updated at each of the steps.  I will get into that in my next blog entry.
In Part Two, of this discussion I plan to go into more depth about understanding what is going on in the current process.
In Part Three, I will examine what questions you should be asking to take your current workflow and determine what steps can be:
1) eliminated
2) automated
3) done in parallel
4) divided into multiple steps
5) combined into single steps
6) outsourced
7) assigned business rules for escalations

Neural Workflow

A brief discourse on a new workflow software paradigm.

I am often asked “why should I use workflow software?”  To which I often retort “why use software in the first place?”  We use computer systems to make life easier for ourselves, but at a more basic level we use them to replace ourselves.  Computers have moved away from being calculators into the realm of worker surrogates.  In short as systems become more and more complex and are required to replace more and more human tasks they need to behave more and more like humans.  To extrapolate further their brains need to work like our brains, hence neural workflow.

Traditional systems are process oriented.  They behave like circuits.  They have AND Gates, OR Gates decision points etc.  A workflow instance is started and a process is followed until that instance comes to some sort of resolution.  This is not how people work and ultimately not how highly optimised organisations should work.  When we have an idea to do something we usually start with a strategy to come to a resolution.  In following the strategy we are often required to complete several unexpected sub-strategies to come to the resolution. We also may need to re-evaluate our strategy entirely and adapt the strategy for the next time we need to employ it.

Take the example of a help desk request.  A request comes in and we think we have sent it to the right place for a resolution.  If we have not we need to re-evaluate the process come up with some new strategies then trial those strategies over time to find the ones that best solve the different requests we may get.  These new strategies may also need to be approved by others within an organisation and thus we may want to create a whole range of different types of activities resulting from this one initial support request.

Traditional workflow systems would have considerable trouble with these types of problems.

Enter Neural Workflow….

Unlike the source and sink model of traditional workflow systems a neural workflow system is set up in a neural network like our brains.  Events can trigger signals from all over our brain these events then give rise to strategies for resolutions, over time our brain modifies itself to adopt the strategies it has found to most successfully resolve situations.  Employing a neural workflow system could allow an organisation to function like one large brain with the benefits there of.

Neural Workflow requires several key points of functionality.  First the system needs to easily adapt over time.  Second the system needs to have the ability to score success and failure.  Third the system needs to be able to trigger any activity based on the results of any previous activity.  Finally the system needs to provide high visibility so tracking of all the different tasks and flows is easily understood.

Show me the Money….

A neural workflow system is superior to a traditional workflow system in that it provides a method of perpetual efficiency improvements or to put it another way it provides a cost saving continuum.

Windows Workflow Foundation

I recently went to go and see a presentation on Microsoft Workflow Foundation.  They are coming out with a workflow engine at some point and I was going along to see if they had any good ideas for Kontinuum.
As Workflow Foundation is just a set of DLLs and programming interfaces i.e. it is just an engine I did not feel that it would compete in the same space as Kontinuum. 

The guy presenting Workflow Foundation was about 5 minutes into his presentation (btw he couldn’t actually demo the beta do to some sort of error) but he told us that Workflow Foundation can only handle two types of workflow sequential and non-sequential.  This means it can only do A->B->C or you can do A, B or C at any time.  In all the workflow systems I have been involved with maybe only 20% fit into these two categories.  The vast majority have other things happen in them that control behaviour. 

1) Most have decisions i.e. if A is done due B or C depending on some result from A.
2) Most have some points that are combinations of sequential and non-sequential i.e. once A is done you can do B or C, but you can not do D until both b and c have been completed.
3) Some have loop back mechanisms i.e. continue to do instances of B until some condition is met
4) Some spawn 1 or more sub workflows

and those are just the bare bones basics….

 Editors Note:  Apparrently the above paragraph is not correct however I am leaving it in here as some of the comments that follow refer to this paragraph

I am not sure where Microsoft is going with workflow foundation.  I suppose it is just meant for extremely simple single user workflows that are designed by people just getting comfortable with web browsers, but if that is the case then why is there only a programming interface.  My main gripe however is the acronym WWF.  Which in my mind is either the World Wrestling Federation or the World Wildlife Fund.  The WWF acronym is overcrowded already.

Editors Note: It appears that since I posted this article Windows Workflow Foundation is now being abbreviated as just WF.  Although if you query google on “Windows Workflow Foundation” or “Workflow Foundation” you get pretty much the same number of hits.