Earlier quoted context omitted.
My first job out of college was with a consultancy that specialized in payroll integration projects. We were a partner with ADP (largest payroll provider in the country), and typically they sent us the clients with the trickier payroll processes, so know I'm speaking from experience. Long story short, I agree with what you're saying, but you make it sound like it's really simple. It's not. Creating a single payroll s…
I seems like the general system is something like: A) A set of tools to talk with external systems B) A set of tools for manipulating the internal representation of payroll data C) A GUI for interacting with / managing the system. When their internal process is simple managing the payroll system should be simple. When their internal process is complex you get fat consulting checks. Which brings up a great point, it s…
Why Is Payroll Hard - Ron Jeffries
41–50 of 54 posts
Re: Why Is Payroll Hard - Ron Jeffries
#42I love stuff like this! Instead of complaining about the structure or motivation of business rules, excellent developers ask different questions: - How can I design my architecture to accommodate just about anything my customer throws at me? - How can I use all the tools in my tool box (including CS and math concepts) to clarify the apparently nebulous? - How can I use things like Boolean algebra, parameter driven pr…
For some value of excellent. Simple, general rules, that are well understood, are better than complexity, even complexity your excellent developer can manage.
How about a developer, who says no to their customer, and comes up with something simpler, and better.
I just submitted this:
http://news.ycombinator.com/item?id=3245550
And declare that progress depends on the unreasonable person.
Are you paving a goat track?
Re: Why Is Payroll Hard - Ron Jeffries
#43Actually, Payroll systems can be structured. In the end, there are only 3 things that you need to provide: - compensation (money employee makes) - deduction (money employee gives for some service) - taxes (employee owes the government) Everything that you do is toward satisfying those requirements. It is hard because each of these pieces are influenced by human interaction. But, that does not mean there are no rules…
They get nasty. You cannot underestimate the complexity that collective bargaining agreements bring. New York City, as an example, has something like 15,000 variations for payroll categories. Plus garnishments, domestic relations orders, etc. How do you compute the extra boot benefit for a fireman who has worked more than 526 hours in a 13 month period? Or how to you compute the salary of a garbageman who is paid by…
Treat payroll like an individual bank account with facilities to make and receive payments automatically. Then let actual humans enter the information individually for each person. Add automation of this as an after thought once the problem is fully understood.
Re: Why Is Payroll Hard - Ron Jeffries
#44I've just come off a payroll project that has been 2 and half years in the making, and I can say first hand that all of these things happen. And more.
Acquisitions, benefits, and here in AU award wages for hourly employees make things even more fun. Different sites of the same company can have completely different set of rules and regulations that they adhere to, purely because the unions decided to negotiate differently for a different site.
Ahh fun.
Re: Why Is Payroll Hard - Ron Jeffries
#45I hate to be blunt (or worse, snarky) but seriously, everybody does this at least once: modeling and factoring out tons of bullshit when the user is really explaining an ad hoc rules system. Very painful.
At some point during analysis, you have to ask yourself "Do I really want to make the system more complex for each example of X the user gives me? Or just acknowledge that the user is free to come up with all kinds of crazy rules from now until the cows come home, and code that?" (and simplify)
Re: Why Is Payroll Hard - Ron Jeffries
#46Earlier quoted context omitted.
I guess I wasn't clear. I realize that businesses need to survive in the eco-system created by crazy laws and ill-thought out regulations and contracts. I was trying to suggest that the legal and regulatory framework is what needs to be fixed, not the businesses.
Ah, look at that, I totally misread where you were going! ;-) In my experience, regulations and crazy laws aren't really a competitive advantage or disadvantage because all of the market players are playing by similar rules. I'm not saying that there's no negative effect to bad regs and laws, but the costs are shared fairly equally. I've never worked at a business that was cut off at the knees by new laws or regs. I'…
This, I think, is a very healthy attitude; Focus on what you can change rather than railing against things that won't.
Re: Why Is Payroll Hard - Ron Jeffries
#47He devoted an entire session to the French Railroad payroll program. The French Rail- road had gone on an economy program and reduced their number of employees from 540,000 to 360,000. So that was the size of the payroll that was run on the computer in Paris. That payroll must be the most difficult payroll in the world to run. The size of the payroll is only the tip of the iceberg. An engineer’s (i.e. a train driver) salary is a function of the amount of power that he uses. So if he is on an uphill run, he makes more money than on a downhill run. The employees live in government housing and their rent is deducted from their pay. People with a lot of dependents get more money than people with a few dependents. A vet- eran gets more money for each medal that he won in the war. The amount of money depends on the medal. A Purple Heart is worth more than a Sharpshooters medal.
Re: Why Is Payroll Hard - Ron Jeffries
#48Actually, Payroll systems can be structured. In the end, there are only 3 things that you need to provide: - compensation (money employee makes) - deduction (money employee gives for some service) - taxes (employee owes the government) Everything that you do is toward satisfying those requirements. It is hard because each of these pieces are influenced by human interaction. But, that does not mean there are no rules…
They get nasty. You cannot underestimate the complexity that collective bargaining agreements bring. New York City, as an example, has something like 15,000 variations for payroll categories. Plus garnishments, domestic relations orders, etc. How do you compute the extra boot benefit for a fireman who has worked more than 526 hours in a 13 month period? Or how to you compute the salary of a garbageman who is paid by…
When systems of this sort are built, it is usually a combination of Timekeeping (how to measure time spent on the job) and payroll (how to pay for that time). Each section is a big (i.e. millions of line of code and many engineers) worth of effort. All that said, depending on how systems are built, you can a) Create a base system that solves core issues b) Accomodate as much configuration towards that system to allow computation to occur differently based on what the employees do c) Allow customizations of computation when as required d) Make most of the data that can be changed, to be changeable through design (data driven instead of code)
Of course, there will be customers who will want to behave differently because the moon is in a certain position in the system. But, that is when you need to know the domain enough to understand whether what they are asking for is because "that is how they have always done it" or because there is a valid use case that needs one of the b), c) or d) to be updated.
Re: Why Is Payroll Hard - Ron Jeffries
#49Typical noob mistake #73: trying to make a class out of every rule in a rules-based system. I hate to be blunt (or worse, snarky) but seriously, everybody does this at least once: modeling and factoring out tons of bullshit when the user is really explaining an ad hoc rules system. Very painful. At some point during analysis, you have to ask yourself "Do I really want to make the system more complex for each example…
http://news.ycombinator.com/item?id=420650
Of course, procedural code becomes spaghetti code quite easily, but one probably needs the same discipline when doing object oriented/relational modeling...
Re: Why Is Payroll Hard - Ron Jeffries
#50-- Stories of the Burroughs B5000, http://web.me.com/ianjoyner/Files/Waychoff.pdf He devoted an entire session to the French Railroad payroll program. The French Rail- road had gone on an economy program and reduced their number of employees from 540,000 to 360,000. So that was the size of the payroll that was run on the computer in Paris. That payroll must be the most difficult payroll in the world to run. The size…