The engineering department of a large company had to print half a dozen documents for each one of the 100’s of parts to be manufactured each day.
These could include any of the following:
- Component part lists
- Part drawnings (for timber or metal)
- Cutting machine instructions
- Assembly plans
- Routing information
- Dispatch labels
These were a combination of CAD files, spreadsheets and PDF documents. Most required information to be added (quantity, order number…) either to cells or as PDF overlay stamps. Some parts were composed of nested parts.
The rules covering what to print and where to find the files differed depending on the type of part.
Due to changes in the business, and the difficulty in capturing all the exceptions, we were finding out new rules every few weeks/months and having to update the application. There was no way the client could have specified everything up front.
Designing a solution
Manually testing every permutation after each change wasn’t feasible, yet we still had to guarantee that any changes to behaviour applied to all the right scenarios without affecting others, which can easily happen with this level of complexity.
We achieved this through automated tests that allowed us to check every bit of behaviour without running the full process (think of the paper waste!)
Designing an architecture that caters for fluctuating similiarities and differences over such a range of scenarios, and allows granular testing, requires the kind of advanced programming techniques that most developers only become comfortable with after 3-4 years of experience.
Effect on the business
Asside from the huge amount of admin time saved, automating the whole process also delivered added benefits:
- Discrepancies in documents were highlighted and got fixed once for all, which in turn removed a lot of double-checking that was taking place further down-stream.
- It allowed processes from different business streams to feed into the factory in the exact same way, which had side benefits.
- When a new CAD system (Inventor) was introduced, we were able to plug in the outputs into the automated process with very little effort.
Take home points
- Requirements can’t always be specified fully up front.
- Automating a process often has many fringe benefits.