Introduction – Designing a System

Formever is intended to be as specific as possible for each company. So the first, and most important step in design is to consider the company and the structure of its business, and then plan a matching structure for the system.

Each Company is Different

For example, consider three electrical contracting companies  owned by Tony, Mary, and Joe, respectively. They each have three electricians working for them, each with their own van, stocked with tools and parts. They all buy from the same suppliers. They all work in the same city. They sometimes bid on the same jobs.

Can they use the same enterprise software setup? Let’s compare

Tony bills per client. His electricians submit a work report listing the hours worked and a total cost of materials, and that is added to the client’s account, which is then invoiced.

Mary bills per project. She assigns a project number for each set of work (usually every time an electrician is called out, but sometimes there are multiple visits). Each project is assigned to a client. All work is assigned to a project. She also has her electrician’s itemize the parts used on any project from a master list. Invoices are sent out for each project, meaning an individual client will get separate bills for each one.

Joe likes to bill by the project, too. But for smaller work he prefers to just assign it to the client. So he does it both ways. He also has a decent amount of corporate clients, so he needs to distinguish between work done for residential clients, and work done for corporate clients. He wants reporting to tell him how each aspect of his business is performing.

So they do the same work, but they need separate systems. I like to think of this as, “designing for the second floor, not the shop floor.” In other words, focus a little less on what they are doing physically, and a little more on how they are processing things in the back office. What may seem very similar on the surface can often be quite different in terms of process.

A good technique for planning out the system is to sketch or map out the relationships. I often do it in a graph paper notebook. For our three companies, the sketches might look like the following.

Tony’s company

The “Work Report” form and a form for creating an invoice both reference the Client form directly.

Mary's Company

So design-wise, we know that at the very least Mary’s company requires at least one extra form, for project. And in Mary’s company, the Work Report form and the Make Invoice form directly reference Project rather than Client. Because the Project form references the Client form, all of the information from the Client form is usable on the Work Order or an Invoice, and the Client form can accumulate the data from the Work Reports and Invoices. They are linked, just separated by one step, the Project form.

Joe's Company

Since Joe may invoice on either a client-basis or a project-basis, his system also has the Project form, but the Work Report form and the Make Invoice forms directly reference the Client form. They also have a conditional reference to the Project form.

Notice that we call for a choice box on the Work Report that specifies whether it is a “bill the Client” or a “bill the Project” situation. That way we can accumulate things to the Client without having to set-up and bill a specific Project, but we can also accumulate for specific Projects when appropriate, which is what Joe wanted. Things billed to a Project can also still be accumulated on the Client form, if we want to see a grand total of billing, for instance.

Laying out a company’s structure in this way allows us to see what forms we need to build, and what the relationships between them are (which will be created via “form reference” fields, which we will look at it more detail later). It also starts to suggest what data fields we might include on the form (such as “address”, “phone number”, “contact name”, etc. for the Client form)

An important feature about Formever is the ease with which we can make adjustments later. This takes a lot of pressure during the specification phase. No one can truly imagine all aspects of the system in advance, or remember every possible circumstance they have faced in the past. With Formever you don’t need to. Get the main structure correct and later on you will be able to add features, make adjustments, or allow for exceptions.

Reporting

Another important thing to consider at this stage is reporting. We’ll get into the fine details of reports later, but there are structural implications that are worth considering at this phase. It’s often worth asking, “what sort of report(s) are we hoping to get at the end of all this.

One of the main differences between Mary’s system and Tony’s system is how the Work Orders are grouped.

Since Mary’s system has projects, she will be able to gather up Work Orders into their Project group, and could sum up costs and sell price to determine profitability on an individual project. She could type the projects and then determine profitability by project type.

In Tony’s case, he can only sum up costs and sell prices by Client as a whole. So he could determine profitability for each client, and he could even type them and determine his most profitable Clients, but he can’t break it down further, like Mary can.

There’s nothing wrong with either of these groupings.

Tony’s system is a little simpler than Mary’s, he’s just making a trade-off; reducing complexity in exchange for a little less resolution on business activities. As long as that is a conscious choice it’s probably the right one for him. On the other hand Mary is willing to live with a little more complexity in return for having more detailed insight on business activity.

Get Started Quickly

Making an initial determination about the business structure and sketching it out doesn’t take too long. If I can have an initial meeting somewhere between one and three hours, and then another hour or two mapping it out, I’m usually able to get down to building a prototype. I can refine it or change it later. It’s also easier to refine and change it once you’ve tried a few things in your prototype. Compare that to the weeks or months needed to build a spec for an old school ERP system. You’re already saving time and money!

It’s also worth pointing out that Formever is strongest when being as specific as possible. If you find yourself being tempted to put in a feature because it might be useful for a different company, stop! You shouldn’t be putting anything into the system that isn’t required for this particular company. No dead wood! If it is something they might need down the road, then build it later, when they actually need it.

More Examples

Here are some examples of preliminary sketches from other systems, which can be a little more formal:

Or less formal:

As you can see, they can be quite informal, and sketch like. Give yourself the space to play around and fill in notes. And don’t be afraid to tear it up and start another one. They should be quick and free form enough that it doesn’t take very long to build another version. 

Next Up: We’ll start building out Tony’s system, starting with the Client form and the Work Order form.