By Steve Endow
In the software / consulting world, we're sometimes given data that is messy, and we, the software developers, consultants, or report writers, are tasked with making sense of that data and using it in a business process. Sometimes we have to do "creative" and often unintuitive things to that data to make it usable.
For example, I was once asked to import employee time clock data into a payroll system. Simple, right? In the ideal world, an employee clocks in for work in the morning, and clocks out for work in the afternoon. But in the real world, it's never this easy.
First, the customer's horrible timeclock system did not differentiate between a "clock in" or a "clock out". I was simply given two fields: Employee ID and Date Time. It was up to me to figure out which entries were "clock in" and which entries were "clock out".
Second, sometimes the employees would take breaks or leave for lunch. They would therefore "clock out" when leaving, and "clock in" when returning to work. So an employee could have up to four records for a single shift.