Live data from Hacker News

Why Is Payroll Hard - Ron Jeffries

c2.com

41–50 of 54 posts

Re: Why Is Payroll Hard - Ron Jeffries

#41

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…

Any simplified payroll system must result in no employees getting paycuts. That is not as easy as it sounds.

Re: Why Is Payroll Hard - Ron Jeffries

#42
post #12

I 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…

> excellent developers

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

#43
post #39
post #14

Actually, 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…

But most people have complicated personal banking set-ups with money flowing in and out to different places at different times. It works well because the individual has control. If you had to automatically pay for your shopping using some database magic every week, instead of just handing over a credit card it wouldn't work either.

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

#44
Payroll is a really weird beast. In some ways business apps can be a challenge, and in others a real pain. Payroll is definitely one of the harder business problems to make generic.

I'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

#45
Typical 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 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

#46
post #37
post #35

Earlier 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'…

>As an IT pro I can't do much about the laws and regulations, but I can advise and design business systems in ways to avoid complexity traps and help accommodate more sane business processes.

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

#47
-- 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 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

#48
post #39
post #14

Actually, 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…

I am really not underestimating the effort. But there are multiple pieces to what you just talked about. There are complexities in time measurement (or computing how much work was done) and in payroll calculation.

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

#49

Typical 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…

Your reply reminds me of Zed Shaw's presentation 'The ACL is dead'. Basically he said that if the law rules that you have to handle are turing complete, you're probably better off with a turing complete language:

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…

Wow. I once did a payroll program for a company of about 600 employees and 5 unions. it to 18 months. After that they changed the union contracts to be more common with each other and simplified the payroll rules.
Post reply on HN