Get a quote
Process

How to describe what you need to a software team

The software ticks every line on your list and the work still does not fit. How to bring the two things a developer asks about, the conditions of the work and the record, to the first meeting.

Algoriel 15 min read
How to describe what you need to a software team
In this article
  1. A feature list names a product, it does not describe the work
  2. The physical conditions of the work: where, on what device, over what connection, in whose hands
  3. What one row in the system stands for
  4. A wrongly described unit is not fixed by any feature
  5. Four pieces of work in three sentences
  6. What you no longer need to say once those two are said
  7. What to bring to the first meeting

Describing what you need to a software team means saying two things before any feature list: the conditions the work runs under, and what one row stands for. Leave a condition unsaid and the other side fills it in from whatever the product category assumes; the product name smuggles that assumption in. A unit described wrongly is not repaired by a later feature: features land on a row without changing which row owns what.

The list you wrote is probably not missing anything. Read on its own, it names a category of product, and two systems that behave nothing alike can answer it line for line. That is why adding another line does not close the gap. What is missing sits in front of the list. Keep the list. Put it in order.

A feature list names a product, it does not describe the work

Patient records, appointments, treatment plans, invoicing, reporting. That is roughly the list a dental clinic writes, and every item on it is correct. A general-purpose booking tool answers that list item by item. So does a system built around the clinic’s own way of working. The difference is not in the list; it is in which record each of those items sits on.

The clinic was running that arrangement on a general-purpose booking tool. What it wanted was not separate modules. It wanted the treatment plan, the appointment and the invoice to sit on the same patient record. The list was right and the thing that was ordered was wrong. There is no line item for that sentence either: “keep them on one record” is not the name of a feature, it is a decision taken when the system is set up. How the clinic’s record was put together sits on its project page; this article looks only at the gap between what was wanted and what was ordered.

Lengthening the list does not close that gap. “Treatment plan” was already on the clinic’s list. What was missing was not the name of the plan but whether the plan stands as a record in its own right or lives as a field inside an appointment. A list carries the names of things. It does not carry how those things attach to each other, and it never will, however long it gets.

A product name can also smuggle an assumption in with it. Say “staff entry and exit tracking system” and the category behind that name assumes a fixed turnstile at a fixed location. On a construction site the location is temporary, no turnstile goes up, and the crew moves between sites during the week. When a buyer names the product, that assumption is spoken along with it, without anyone noticing. What has been described is not the condition of the work; it is the condition of the category.

The opposite happens too. In some businesses the name of the product category really does describe the work, and the list is enough on its own. But you cannot find that out by staring at the list. You find it out by saying the condition and the record first, and looking afterwards.

The physical conditions of the work: where, on what device, over what connection, in whose hands

The condition of the work comes out in four questions. Where is it done, on what device, over what connection, in whose hands. You already know all four answers. What you do not know is that they need saying, and that each one closes off a design decision before anything is drawn.

When the answer to “where” is “on a temporary site”, the fixed-hardware option falls away at the start. Putting up a turnstile means taking it down again when the site closes. On the construction workforce project the record is therefore taken on the worker’s own phone, and when the site closes there is nothing left on it to dismantle.

When the answer to “in whose hands” is “crews move between sites, and several subcontractors work on the same site”, the record has to attach to a person and a site at once. A QR code says who scanned, location says which site they were on, and the two arrive inside a single entry record; nobody picks the site name from a menu. That link is made at the moment the record is created. It cannot be made afterwards by adding a site column, because the older records have no location inside them to read.

When the answer to “on what device” is “the worker’s own phone”, the application goes onto something the employee carries rather than something the business installs. Whether the business supplies the device or the worker brings it is a decision of its own, and we took it apart separately in the piece on choosing between an app and a mobile website.

The answer to “over what connection” is usually the last one anyone thinks to say. In service work the technician is in a boiler room or a lift shaft, and coverage stops there. Leave that sentence out and where the record is created stays undecided. How a record is created on the phone without a connection, and what happens once the signal returns, sits in the piece on field apps that work offline. What belongs here is the condition itself and nothing more.

The four questions do not bite everywhere. At the dental clinic the work happens in one place on a fixed computer, and connectivity is not a subject at all. The condition there is a matter of time: a treatment does not finish in one appointment, it breaks into sessions spread over weeks, and it changes in between. So the four questions are not a form to be filled in. “We have no connectivity problem” is an answer, and it locks a decision just as firmly. The trouble is never an unanswered question; it is an unasked one, because when the condition goes unsaid the other side reads it off the default condition of the product category.

What one row in the system stands for

The second sentence has one shape: “for us, one record is a …”. Its job is to name what a row in the system corresponds to in real life. It sounds trivial, because everybody assumes the answer is obvious. In three different businesses the answer turned out not to be the default record of the product category.

At the dental clinic a record is not an appointment. It is a treatment plan, built tooth by tooth and broken into ordered sessions. The plan stands on its own, independent of the calendar, and every appointment attaches to a particular step of it. Change a step or add a session and the calendar moves with it.

In service work a record is the device, not the customer. One address can hold more than one device, which is why the sentence the buyer needs to say is “for us, one record is a device, not a customer”.

In a perfume shop the product record is the fragrance, but the unit that gets sold is the bottle size. Price and stock attach to the size; adding a new size does not open a new product, it adds a unit under an existing fragrance. The word “product” is covering two different records at once here, and a buyer who says “a perfume website” has not yet said which of the two counts as one record. Left unsaid, a standard model treats every size as a separate product and the same fragrance appears in the catalogue several times over.

In all three the unit was read off the work rather than off the product name: the plan at the clinic, the device in service, the size in the shop. None of them is the default record of its category, which would have been the appointment, the customer and the product. You say the unit; fitting it to the record structure of a piece of software is our job. The test that tells a sellable unit from a browsing path, by asking what price and stock hang off, sits in the piece on modelling variants.

In some trades the unit has no name in the buyer’s own vocabulary. On a construction site nobody says “for us, one record is an entry-exit pair”; they say “worker pay”. Here the sentence has to name the source. Pay is not the record; it is produced from the records.

A wrongly described unit is not fixed by any feature

When the unit is described wrongly, every feature added afterwards lands on the wrong row. Describe a service record as a customer card and the histories of the devices at one address run together on that card. A “device” field added later only tags the new records; everything already written stays under the customer row. A feature is written onto a row. It does not change who owns the row.

How that history sits under the device is written up on AlgoKlima’s project page. This section is about what would have happened had the unit been described the other way.

The second failure shows up on the calendar side. Describe the unit as the appointment, and where a patient stands in the plan gets read off the calendar, what has been invoiced gets read off a ledger, and the month-end picture gets assembled somewhere else again. Adding an “invoicing module” writes the invoice into its own ledger rather than onto the patient record. As long as the invoice does not come out of the patient record, adding a module leaves the problem where it was.

The fix, then, is not a feature. It is the row itself changing. At the clinic the plan was set up as a record standing on its own, independent of the appointment, and the appointment was attached to it.

What a late correction costs is not the new screen. Opening a field is easy; changing which row every record written until that day belongs to is not, because the old rows never captured what the new one needs.

Not every wrong description is permanent, though. A wrongly described feature does get fixed later: a report is the same patient record read from a different angle, and adding a column does not disturb the record. The two that do not get fixed are the condition and the unit.

Four pieces of work in three sentences

The table below puts four pieces of work side by side. The sentences in the first column are not quotations from anyone; they are what the opening sentence tends to sound like in a first meeting. The service row has no buyer at all: AlgoKlima is our own product, one we keep developing, and the sentence there is simply what the trade calls the thing.

Opening sentenceCondition of the workUnit of recordWhat those two settle
”We want staff entry and exit tracking.”The site is temporary; no turnstile goes up, crews move to another site during the week, several subcontractors share the site, and everyone carries their own phone.For us, one record is an entry-exit pair: who, on which site, for how long.No hardware on site; the app lives on the worker’s phone. The site name is not picked from a menu, it comes from location. Pay is not a separate sheet, it derives from the pairs.
”We need a booking system.”A treatment does not finish in one appointment; it breaks into sessions spread over weeks and changes in between.For us, one record is a patient’s tooth-by-tooth treatment plan; an appointment is one step of that plan.The plan is a record in its own right, independent of the calendar. Appointments attach to plan steps, so the calendar moves when the plan does. Invoice and report derive from the patient record.
”Service software.”The technician works in a boiler room or a lift shaft; coverage stops there.For us, one record is a device, not a customer; there can be more than one device at the same address.Warranty, maintenance and fault history sit under the device and stay with it when it changes hands. The record is created on the phone and does not wait for a connection.
”We want a perfume website.”The customer decides without being able to smell the product, and part of the buying is done for someone else as a gift.For us, the product record is the fragrance; the unit sold is the bottle size, and price and stock hang off the size.The variant boundary sits at bottle size: a new size does not open a new product. Fragrance family becomes a second way to browse alongside the category tree.

The axis to read this table on is not a removed step or a preserved feature. It is the sentence itself. All four opening sentences name a category of product. None of the four unit sentences is that category’s default record. The gap between those two columns is exactly the gap a list, sent on its own, leaves open.

You can also read the table against your own work. Whichever row yours resembles, write your own sentences in the same order: the list or product name you already have, then where and in whose hands the work is done, then what one record stands for. If the third sentence contradicts the first, that contradiction sits in your business, and it is precisely the thing a software team needs to hear.

The condition sentence does not have a fixed shape either. In two of these it is built out of device and connection, at the clinic out of time, in the shop out of the state the customer is in when deciding. Which of the four questions bites depends on the work, and there is no requirement that all of them do.

What you no longer need to say once those two are said

Once the condition and the unit are described, items drop off the list.

Nobody asks for a “pay module”. With the entry-exit pair described as the unit, pay is not kept in a separate calculation sheet; it is produced from matched records, and time on different sites is totalled separately. Nobody asks for a “site picker” either. Once the condition says crews move between sites, the site name arrives from location and there is no menu to choose from.

Nobody asks for an “invoicing module” or a “reporting module”. Because the procedure performed sits on the patient record, the invoice and the report are both that same record read from another angle, and no separate ledger has to be opened. That is what the clinic wanted in the first place.

And “make it work offline” is not a feature item at all. It is the condition sentence. Once someone has said that coverage stops in the boiler room, a record being created on the phone stops being an add-on somebody requested and becomes where the design starts.

How a system decides on its first day which record is the source and which one comes out of it is written up in the piece on architecture coming first. All this section shows is that the derived items fall outside what you have to describe.

What to bring to the first meeting

Here is the preparation you can actually hold: describe one working day. Which site does the crew go to in the morning, does entry go onto a paper timesheet, does anyone move to another site during the week, how does the month-end total of who worked where and for how long get put together, and what is the evidence when someone disputes it. That account carries all four questions and the unit sentence on its own, and the word “attendance system” never appears in it.

A day on its own is not enough. Things that happen once a year, a dispute or an audit, are invisible inside a single day. That is why the account gets two extra questions bolted on: what is totalled at month end, and what the evidence is when the total is challenged. Both of them say more about what the record has to do than the day itself does.

Then there are conditions no feature list would ever hold. In a perfume shop the customer decides without being able to smell the product, and part of the buying is done as a gift for someone else. Those are not the names of features; they are conditions of the work, and a list has nowhere to put them.

Then the single sentence: “for us, one record is a …”. On the construction site that sentence reads “who, on which site, for how long”. When the feature list arrives after those two, the other side of the table stops reading it as the name of a product and starts reading it as items to be written on top of a condition and a unit. The list is doing the same job. It is just standing in a different place in the queue.

Say what conditions the work is done under and what a single row stands for in your business, and everything else gets written on top of those two sentences. Where those decisions are taken, before any code, is set out on our system architecture page, and how the record then runs inside a live system on our business process tracking page.

Key takeaways

  • A feature list names a category of product and no added line closes the gap; what goes in front of the list is the conditions the work is done under and what one record stands for in your business.
  • The physical conditions are four questions: where, on what device, over what connection, in whose hands; 'we have no connectivity problem' is an answer too, and it locks a decision.
  • The unit of record is said as 'for us, one record is a …' by looking at the work rather than the product name; it turned out to be the treatment plan in the dental clinic CRM, the device in AlgoKlima and the bottle size at Kokudankokuya.
  • A wrongly described unit is not fixed by any later feature, because a feature is written onto a row and does not change who owns it; a wrongly described feature is fixed by adding a column.
  • Once condition and unit are described, a pay module, a site picker, an invoice module or a reporting module is never requested; each of them derives from the record.

Questions this article answers

  • I wrote a feature list and the developer keeps asking questions. What is missing from it?

    Probably nothing; what is missing sits in front of the list. A feature list names a category of product, and systems that behave nothing alike can answer it line for line. The dental clinic did not want separate modules; it wanted the treatment plan, the appointment and the invoice on one patient record, which no list item can say. The developer is asking under what conditions the work is done and what one record stands for in your business.

  • What exactly do I have to describe when you say the physical conditions of the work?

    Where it is done, on what device, over what connection, in whose hands. On a construction site the location is temporary, crews move between sites and the device is their own phone; those answers ruled out a fixed turnstile, so the record is taken on the phone. This is not a form: at the dental clinic the condition is time, because a treatment spans several sessions. 'We have no connectivity problem' is an answer, and it locks a decision.

  • How do I work out what one record stands for in our business?

    Say it as 'for us, one record is a …' and look at the work, not the product name. In the dental clinic CRM a record is a treatment plan, not an appointment; in AlgoKlima's service management it is the device, not the customer. If your trade has no word for the unit, name the source rather than the result: on a construction site nobody says 'entry-exit pair', they say 'worker pay', yet pay is produced from those pairs.

  • If I described the unit of record wrongly, can it be fixed later by adding a feature?

    No. A feature is written onto a row and does not change who owns the row. Describe a service record as a customer card and the histories of the devices at one address blur together; a device field added later only tags new records, while the old ones stay under the customer row. AlgoKlima's service management keeps the device as the record. A wrongly described feature is fixable: a report is the same record read from another angle.

  • What should I bring to the first meeting instead of a feature list?

    An account of one working day and the sentence 'for us, one record is a …'; keep the list, but put it behind those two. On a construction site the account runs: which site the crew goes to in the morning, whether entry goes on a paper timesheet, how the month-end total of who worked where is produced, and what the evidence is when someone disputes it. That carries condition and unit without naming a product.

About the author

Algoriel

Remote web software agency

We build custom web and mobile software for businesses. Here we answer the questions that come up while your software is being built and after it goes live.

Tags:
  • software requirements
  • workflow description
  • feature list
  • daily operation
  • first meeting preparation

Have a system to build?

If there is a system you want built, the quote form is the place to describe it.