3

The company works on website, for each hour worked on the website the customer gets billed 1 hour.

There are lots of things that can be optimized in the company (beter pipelines, tools and writing tests). But setting these things up takes time, time we can not bill to the customers.

Management would rather we spend 1 hour each time we do a release, (which we can bill) than spend a week reducing the release time to 5 minutes, because this week of work we can not bill the customer for.

And I kinda get it. The customers are happy with the quality and quantity. We also use a specific framework, so customers are not very likely to switch to a different company (since there aren't many). So why spend money on improving a product, if the customer is willing to pay the same for a worse product.

But I would find my work more enjoyable if could produce better code faster. Which is doable by investing in the right tech and tooling.

Whenever I ask to implement such things, the answer is "no", because they cannot bill it to the customer.

7
  • 3
    First and foremost, what kind of weird contracts do you have with your customer, that you cannot bill them for clean work? Second of all why wouldn't your employer want to sell a more competitive Product and increase customer loyalty?
    – Chund
    Jan 19, 2023 at 13:31
  • 1
    @Chund What is "clean work"? Jan 19, 2023 at 14:25
  • @Chund both things are in the questions. 1: We only bill for the work on their product, 2: the customers are happy with our product Jan 19, 2023 at 15:02
  • 2
    I've been in this situation and found it very unsatisfying also, ultimately, I had to leave and work for a different company where time spent on pipelines/tech debt was time well spent
    – CurlyPaul
    Jan 19, 2023 at 15:53
  • 3
    How is improving the product by doing things like implementing tests and using better tools not "working on the website"? What, specifically, are you allowed to bill for?
    – Ertai87
    Jan 19, 2023 at 17:30

12 Answers 12

11

Customers generally don't want to pay you to improved your efficiency unless it helps them in ways beyond money. This is especially true if the development time to improve the efficiency will also help other customers. In that case they think the development cost should be funded from all customers or form your company budget.

From your employers viewpoint, if they can only bill for the actual hours for that step of deployment then they want it to take as long as possible without the customer complaining. Now if they constructed their contract to bill for the outcome instead of the time, then they would have the incentive to complete the step as quickly as possible.

Unless the company or the customer can be convinced that the quicker process is better and worth the time to develop and test the new process then you will be stuck where you are. You might have to wait until the company changes their contract with their customer.

4
  • Why beyond money? Jan 19, 2023 at 14:26
  • The big selling point can be fewer errors. Also going from 1 hour to five minute can mean that you can do more deployments per day. But it depends on the process being improved. Jan 19, 2023 at 14:31
  • more deployments per day very often isn't convincing. Being able to deploy bugfixes quicker, that can be very convincing, especially if a bug happened that actually cost money.
    – Benjamin
    Jan 19, 2023 at 14:36
  • I'd try convince the customer to pay for it with numbers. You pay ABC hours due to deployments. This saves X hours per deployment, Y deployments per month means Z deployments until it saves you money. Jan 26, 2023 at 9:14
5

But I would find my work more enjoyable if could produce better code faster. Which is doable by investing in the right tech and tooling.

Whenever I ask to implement such things, the answer is "no", because they cannot bill it to the customer.

The company isn't in business to make your work more enjoyable.

A company can always spend money on making their product "better". There are always things that could be done. It would never end. The secret is to spend on things that will either attract more customers, cause customers to spend more, or stop customers from leaving.

Perhaps down the road there will be an advantage for the company (other than just your enjoyment) to invest in new technology and tooling. There usually is. But for now, the company has decided that what they have is good enough.

Meanwhile, you get to continue doing what the company needs you to do, or you find a different company to work for - one that will be more enjoyable.

1
  • The company isn't in business to make your work more enjoyable. What makes you say that? More enjoyable work means less stressful and consequently fewer mistakes and overall better quality of everything.
    – red-shield
    Aug 30, 2023 at 9:44
2

"investing in the right tech and tooling." is often keywords for "change how we are doing things". In other words, you are asking your management to invest in possibly major changes to their operations - changes that the customer has not asked for and is not likely to pay for.

While you are being helped by doing so, your company may, repeat, may not. Management sees the risks. You see the benefits.

The way to get management to agree to changes is to start with the benefits to the company, not to you. This means identifying how to bring benefits to their customers, how to gain more customers, or how to get more profit from each customer. Another aspect would be showing how this change would reduce costs or reduce risks of malware and cyberattacks.

Until you show a benefit to the customer or to the business, you won't convince your managers to go with it.

1

It may be possible to get some process changes done despite them being non-billable. Depending on what specific arrangements you have with clients (such as SLAs) you may be able to convince your management that a faster deploy process would decrease risk, in some scenario where a client's site needs an emergency fix. A one-hour deployment that fails twice could mean three hours of downtime as compared to 15 minutes if you have a five-minute deployment that needs to be run several times.

There are some issues that management will care about other than billable hours, and which you can leverage to argue for process improvements. Generally anything which could outright lose you a customer (like a risk of not being able to restore a site, or irretrievable data loss, or a major security vulnerability) is worth flagging up as a risk. Depending on contracts and the law where you are, these could also see you needing to pay compensation, or possibly even getting hit with fines. Management won't necessarily be aware of the risks here, and it's your job as someone with technical expertise to flag them.

One approach to take is to suggest a risk mitigation exercise where you lay out how you would, in theory, recover from data loss or a critical bug being in production or a major security incident. Modelling out your response can show where the company is vulnerable, and the idea of losing a profitable contract can show the business value of better tooling.

This isn't guaranteed to work, and it might not lead to the specific changes you are after, but it's good practice anyway and could give you the opportunity to improve your processes at least a little bit.

1
  • 1
    That's what I call a constructive answer as opposed to the others "work shouldn't be enjoyable, now deal with that".
    – red-shield
    Aug 30, 2023 at 10:01
1

The answer to this question really boils down to one thing: Money.

Begin first by understanding that the ultimate goal of any corporate operation (any company) is to have as much income as possible and as few liabilities as possible, so that your net income over any given time period is maximized. That is the primary goal of any company, and any other considerations run secondary to that goal.

In that context, what you are asking is, you have an ugly, long, difficult process which is very time consuming and you would like to streamline it. Problem is, your company's income comes from billable hours. The more time it takes to do any task, the more money the company makes. The company is incentivized by the terms of the contract to make every procedure, no matter how small, as long, difficult, and painstaking as it possibly can, to milk those billable hours out of the client. So what you're essentially asking is, "can I make my job more enjoyable at the cost of a 20x decrease in income to the company (by reducing the time for this task from 1 hour to 5 minutes)?", and the answer to that, of course, is a resounding HELL NO. The company wants money, if your solution costs the company money, they're going to kaibosh it right out of the gate.

The way to solve this problem is to think of a reason why the company would want to accept your proposal. Honestly, I can't think of any. The customer is happy paying for these billable hours, management is happy paying you to do the work, and the money comes raking in every pay cycle. There's no reason to change this procedure, from a management perspective.

The "problem", such as it is, is what happens when the customer wises up and realizes you're charging them 1 hour for a task which should only take 5 minutes. In short, what happens when the customer audits your processes. That's not going to be a good look for the company when the customer hires some outside audit firm to come in and be like "oh, you could be charging the customer 20x less for this work, why are you ripping them off?". But, it seems, the customer is not interested in such a procedure, and management isn't interested in covering themselves against such a circumstance.

The problem for you, here, is that if you work for a company which uses inefficient, outdated processes, you won't learn new things, and you'll spend an inordinate amount of time doing boring, painstaking work. The situation isn't going to change, so if you're not satisfied with the situation then you should find a new job.

0

Customers (and contracts) vary. For example, if I deploy for a customer every week, and they are paying for an hour's time to do that deploy, they might be willing to pay 40 hours to save 50 hours a year. That's a choice they might make. I have gone to customers and asked them to fund that sort of work and they have said ok.

But, maybe you only deploy every few months. That customer will never see a savings from the "better" way of doing things. And that raises the question - why do you think it's better? You can spend 40 hours to save an hour. So? Who does that help?

Everyone wants their job to be more fun, to have less boring turn-the-handle work, to be the latest and coolest and most resume-worthy and all of that. Depending on how much this matters to you, you may decide you don't want to work in an environment that says "it might be boring, but we can charge for it!" But you won't enforce that decision by changing your boss' mind about automating your builds or whatever. You'll get a job in a different kind of company. This one does the work the customers are willing to pay for -- and there is a lot to be said for that.

0

We also use a specific framework, so customers are not very likely to switch to a different company (since there aren't many)

This is one reason. What would happen if another company started to approach your companies customers with alternate solutions - which include the innovations you mention, resulting in a better price point, faster and more accurate releases, etc.?

Companies are forced to innovate when there is strong competition, but many stagnate when competition is non-existent. Perhaps your company has found the 'sweet spot' and are just riding it out.

0

Why the customer would pay often depends on the contract. At my company we are redeveloping a product. The customer hasn't driven this redevelopment, however they pay us a fixed sum for software support.

The current solution is very manual, runs on legacy hardware and monopolises a lot of support hours. It started out as quite a simple solution and has grown legs.

We are redeveloping it because we hope that a new solution will pay for itself over the life of the new support contract. Maintaining legacy on premise servers/paying support guys and having to maintain separate branches per client is expensive.

So the business case the software manager made was simple. We can write a new solution AND save the business money within the current contract. The customer will be happy as they get a better product and don't pay anything extra.

A lot of business decisions boil down to money, so if you want to do something I would start there.

0

You kinda sound like a contractor. The role of a contractor is not to "improve" the code that they're working in, but to deliver the results the customer is paying for in the timeframe that they expect it to be delivered in. That's the whole contract.

This line makes me think you want something other than contract work.

But I would find my work more enjoyable if could produce better code faster. Which is doable by investing in the right tech and tooling.

You can always find work that will reward this kind of philosophy at another place. If working to suit demand and to ensure that your hours can be properly billed isn't your speed, look for a place that doesn't offer that work environment.

Full disclosure - I have worked as a contractor for a brief period of time, and I hated it for this exact reason. Not being able to optimize some super convoluted Python code that was most assuredly written by a data engineer who just heard of "partials" and thought they were the best thing since sliced bread still gives me anxiety to this day, with the hours spent in my debugger trying to help them figure out their own rats' nest. Unfortunately I stayed there for longer than I should have but was able to find a comfortable job in being able to be more efficient and be a driver of change.

2
  • These answers here are terrible. Everyone thinks work shouldn't be enjoyable and that it even needs to be ugly.
    – red-shield
    Aug 30, 2023 at 9:47
  • @red-shield: You're not contracted out to have fun or enjoy the work, you're contracted out to do the thing we hired you to do. It's blunt, but a fact of life. If it's a problem then finding a different place to work at that would want you to be at least somewhat happy when fixing their god-awful code is paramount.
    – Makoto
    Aug 30, 2023 at 15:01
0

Anecdotally, I doubt you can change any of this. However, if you wish to attempt to do so anyway, there is a very relevant XKCD comic here:

enter image description here

By your claim you save close to an hour. You didn't specify how often you release, but weekly sounds reasonable (especially if you include DEV/UAT environments), which given you 10 days before the improvement is too much effort.

Note that this is across 5 years, and you need to scale the result accordingly. If you're only supporting this application for one more year (1/5th), you only have a budget of 2 days. If you're supporting this for 10 years (or similar future applications which would benefit from your improvements made to the current one), your budget scales to 20 days.

However, this is assuming all other things being equal. If the company is only getting billed for work time, and they bill honestly, they are actually decreasing their bottom line. If there is not enough billable work on the backlog that you can fill your regained time with, it doesn't make financial sense to do so.

If the company is incapable of self-improving, billing by the hours makes the most sense. In a case where the company's staff is not efficient, the company doesn't get harmed since they make more money from the staff taking more time.

However, if the company is capable of self-improving, it makes more sense for them to set a price for doing a release. If they then manage to cut 60 minutes down to 5, they've effectively increased their income per effort spent by a factor of 12. Furthermore, working faster also pleases the customer, and a happy customer is what you want, so the benefits are even better than just 12x the income (relative to effort spent).

This is not something I can answer for you. However, I would objectively consider billing by hour, not result, only a valid option if the company has below average efficiency and either doesn't trust itself to be able to improve efficiency (or accurately judges itself to be unable to improve efficiency).

But is that the kind of company you want to work for? That's up to you to answer.

-1

Since your company seems to be all about the billable hours, you could argue that if you can get the process under the minimum amount of time that they bill (in my experience company won't bill the exact amounts of minutes but will use blocks of either full hours or half hours), they will be able to recoup the cost of your optimisations in the long run by still billing the extra minutes that are no longer necessary. And in the process they will get a better process and a happier employee.

-1

This is why you don't bill per hour.

You want to work efficiently, but your company is incentivised to work inefficiently because the longer work takes the more money they make.

You are correct in wanting to streamline your approach, but your company does not want it to hurt there bottom-line.

Really why should working faster and having a quicker turnaround come at a pay decrease?

So the paradigm shift that your company needs to make is to realise that the effort / time, that it takes to provide tech solutions is largely irrelevant.

The gauge of what you as a tech professional should decide the remuneration of your work by is the VALUE your work adds to the organizations or people you work for.

Currently as it stands if somebody wants me to develop an ecommerce website. If they have a specific platform in mind I would have to see if I can do the work, but if they are happy with a shopify or woo commerce site, I can do it for 40 - 60 K local South African monopoly money.

If a random person wants me to help them to setup a blog I will help them for 2K and a nice dinner.

Is the woo commerce site all that much work than a WordPress blog, slightly, you have to setup payment gateways, but not massively.

The difference is the ecommerce site enables a business to make real money. I'm adding real value. I'm giving a business the keys to the safe. I'm helping them do business on a national scale.

I'm entitled to my cut and I will demand it for that type of work.

0

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .