75

Boss assigned a friend of mine some task which requires learning several different technologies. He's asked him to make progress on the project during office hours and learn the actual technologies in his own personal time after office hours.

I'm just curious to know whether this is a normal thing in the software industry and if not, what's a good way to deal with such a situation?

1
  • 1
    Comments are not for extended discussion; this conversation has been moved to chat.
    – Kilisi
    Jun 26 at 3:18

11 Answers 11

109

No. This is not a normal thing in the software industry.

Most of the time, software companies provide some reasonable training to help new developers get up to speed.

I would suggest that your friend politely ask their boss for one or more of the following 3 training options:

  1. Online Training Courses: These courses can be taken during normal work time. Maybe your friend can spend about 10 hours per week to take these courses during his normal work hours, and the rest of the time he can work on other real tasks. The company can pay for these courses if necessary. However, there are many free online training resources or materials that software developers can easily find out via a google search.

  2. Offsite Training Courses: He could also take some offsite training courses, where the new developer is sent to an external training facility, and he/she can take a course that may last from 1 to a few weeks. But this is rather rare as it costs more money. It is still a good option though.

  3. On-The-Job-Training: He could also take on-the-job training where the new developer learns some basic skills, and starts working on easy tasks first, and then moves on to more difficult tasks. The senior members of the team would provide some practical guidance and assistance to the new developer as needed. This is the most common option.

1
  • 1
    Comments are not for extended discussion; this conversation has been moved to chat.
    – Kilisi
    Jun 26 at 3:20
42

In IT, there are constant pressures to improve, learn, and stay competitive.

That said, your friend's boss is just setting him up for failure by giving him an impossible task.

You cannot just go from a "learning" mode to a "doing" mode.

It would be like saying to an auto mechanic to fix a transmission during the day, then read up on it at night."

The end result would be the mechanic realizing he did it wrong, taking it apart and undoing all of his previous work. Worse, he might not realize his mistake before it ended up on the road and the trans blew out

Same thing with programming. I've gone through decades of bad code, and this is how it is born.

If your friend can push back with the boss, put it in similar terms, if he cannot proceed with confidence and competence, then he would likely take longer to produce the code than if he took time to learn the skill

8
  • 7
    "The end result would be the mechanic realizing he did it wrong, taking it apart and undoing all of his previous work." Which is actually not such a bad way of learning. If I think of all the conceptual lessons I learned in IT by trying to implement the same solution in different ways... "I've gone through decades of bad code, and this is how it is born." That's why code reviews with seniors should be mandatory in companies that want to deliver quality software.
    – Heinzi
    Jun 23 at 7:27
  • 11
    @Heinzi That's why I've spent weeks rewriting code that should have taken five minutes to process that instead took hours. I noticed that you forgot the rest of the quote "Worse, he might not realize his mistake before it ended up on the road and the trans blew out" Code reviews do not occur when nobody else understands the code. Your comment has nothing to do with the question or my answer Jun 23 at 10:51
  • 4
    I did not quote the second part of that paragraph because I fully agree with it and, thus, had nothing to add. I also agree that there is too much badly written code in the world. However, I strongly disagree with your general sentiment that "learning by doing" is not possible with programming. ("You cannot just go from a "learning" mode to a "doing" mode.") Despite my formal education (PhD CS) I switch from "learning" to "doing" mode multiple times during the day.
    – Heinzi
    Jun 23 at 11:50
  • 7
    @Heinzi - Good way of learning. Bad result for the customer when they can't collect their car the next day
    – Joe Taylor
    Jun 23 at 12:45
  • 5
    @Heinzi This is not "learning by doing" this is VERY different, it is "doing then learning". Boss wants to divorce the learning process from the doing process. in the ancient days of floppies, this would be akin to telling someone to "format this disk", hand them a floppy, and tell them to read up on it tonight, neglecting to tell them to change the CLI to A:\ Jun 23 at 12:47
41

Take Everything You Read Here With A Grain of Salt!

Something I think a lot of people missed is that this question is specifically about the industry practices in India. So while the answers here are theoretically correct (this practice isn't generally common/accepted)... they might be bad advice for you specifically. Because, frankly, there are all sorts of common-place industry practices in India IT that are mind-bogglingly different than the rest of the world.

Given that, and how bad India's work-life balance is, I'd suggest approaching it like this:

  • If the technology you're being asked to learn is universal and useful to your career? Then if it'd take 20 hours to learn, approach it as if your boss asked you to work 10 hours of unpaid overtime spread over a few weeks. If you'd do that, then learn the technology.

  • If the technology you're being asked to learn is company-centric and not something you'd care to add to your portfolio? Then treat the 20 hours as requested unpaid overtime. If you'd do that, then learn the technology.

... that's not something we can answer. We don't know what the likelihood that refusing would cause problems, what the company you're working for is like, and how good/bad the alternative companies would be.

3
  • 5
    Heck, it's not even uncommon in the US. A salaried job where you work exactly 40 hours every week is not exactly the norm, even if we wish it to be.
    – eps
    Jun 24 at 3:53
  • I don't understand how you arrive at the advice of "If you'd do that, then learn the technology." for the second case of the company-centric skill. What sounds logical to me is not that but, "find a way to discuss yourself out of that bad deal, or find another job"
    – ahnbizcad
    Jun 27 at 10:51
  • 1
    @ahnbizcad - I'm saying, if it takes 20 hours to learn, then view it as a request to do 20 hours of unpaid overtime. If you'd say yes to your boss saying "I need you to put in extra time to do XYZ", then say yes to this as well. If you'd say no to it, say no to the learning it. I'm not going aggro with the advice because, well, it's hard for american/european devs to understand just how ruthless and pro-company the IT policies in India are. Saying "Find another job" might not be the right play because... there might not be a better one.
    – Kevin
    Jun 27 at 14:54
29

This should not be a normal practice, although many companies try to make it such.

If my employer requests that I do something in my personal time for their benefit, whether or not I indirectly benefit, then they should pay me for my time. Doing otherwise is a form of wage theft.

8
  • 16
    @Mr.Boy so is it voluntary to do something with a thief that didn't say anything but pointed a gun in your head when you take your money from bank and that thief throws a duffel bag to the ground? Jun 23 at 9:30
  • 19
    @Mr.Boy Being an employee means you are paid for the job during the agreed work time stated in the contract, not at your employer discretion. Would you be ok with your boss asking you a report at 3AM because "you are paid for the job"? Jun 23 at 9:55
  • 14
    @Mr.Boy you're not serious right, the employee vs the employer , ven the power balance is already clear enough, yes he didn't order the employee directly, maybe just suggesting , but if the emplpyee ignores it rarely does it ends with the employer acknowledging the employee's right, probably enda up with stagnant career, firing, passive aggressiveness and so on. don't be naive and think every boss is very understanding, this thread won't even exist in the first place if they are. Jun 23 at 9:57
  • 2
    This is an excellent answer: rightly acknowledges the indeed existing problem, and offers the right way of looking at it. All the while incredibly efficient with the language. (It could benefit only from addressing the second part of the question: "what's a good way to deal with it?")
    – Levente
    Jun 24 at 8:05
  • 2
    @Mr.Boy I get this attitude a lot from US people. No, it's not correct in every part of the world. You are paid for specific hours, not for all of your existence.
    – Sigma Ori
    Jun 24 at 8:54
11

How do you deal with a boss who assigns you work but wants you to learn the technologies in your personal time?

You keep business time separate from personal time. If learning the technologies is for the benefit of the company and necessary for the completion of any company task/project then your friend should only learn the technologies during normal business hours. Your friend will not be paid extra for anything he does during his personal time.

I'm just curious to know whether this is a normal thing in the software industry and if not, what's a good way to deal with such a situation?

No, it is not normal to be asked to do work outside of normal working hours without any compensation. The best way to deal with this is to only perform work ( learning a new technology is work ) during normal working hours. If the boss has a problem with this, perhaps it is time to look for a new company to work for that respects work/life balance.

6
  • 1
    The important part is if it only benefits the company. If it helps the employee I would still push for limited training and cover study also in personal time. This will reduce the time to become an expert on it, allowing to get a better job or pay increase. Jun 23 at 2:30
  • 2
    @SimonO'Doherty In a way that's kind of ridiculous, because I can't think of any kind of technology the employee would learn that would only benefit the company, if for no other reason that learning them would make them more valuable as an employee. But suppose the employee doesn't want to learn that technology and would be ok with being less valuable and will only do it for the benefit of the company even though by side effect it benefits them as well, in a technical sense?
    – Michael J.
    Jun 23 at 6:13
  • 5
    @MichaelJ. I would look at it this way. I can choose to do something on my personal time. That's why it's my personal time. If the company wants to do something new and asks me to do it then my intention is to learn for the company. If we start mixing up the idea of "an employee becoming more valuable" then by that reasoning one can argue that you can forever work for free for corporates. After all, whatever work you do is increasing your skill at that work and thereby increasing your value.
    – Mugen
    Jun 23 at 6:38
  • @Mugen Yes, I agree with you.
    – Michael J.
    Jun 23 at 16:12
  • @MichaelJ if they don’t want to learn the skill they should probably start looking for a job that they will like to do. Some industries if you don’t continually learn, or limit learning to just company time you are damaging your career in the long run. Jun 24 at 1:05
5

I'm just curious to know whether this is a normal thing

Unfortunately, yes. Companies of course do their best to optimize the money spent to their time-paid employees. Employees are paid for doing work, but there is a deviated company culture almost everywhere such as working does not include learning, or it's just a subtle way to increase work value by not investing spending money.

I struck investing because learning is an investment. Companies must use money to create additional value by having more educated developers.

But, in the end, most (all??) software companies want their developers to finish the project ASAP, customer to sign off UAT and developers to move on another project. This explains their reluctance to pay learning hours.

what's a good way to deal with such a situation?

The soft and the hard mode.

Hard mode (the way the worker union said) is to quit at 6 PM or whatever the clock-out time is, and be firm on that. Ignoring the boss's requests or asking for overtime. Confront with the boss demanding to do the learning during work hours and not doing coding during such time.

There is a con: the boss may fire the employee if the contract allows. The employee will never get a raise, promotion or such, but will likely keep the job. This kind of approach creates a negative interaction and obviously the boss will never bet on the employee.

Soft mode should be some sort of a mutual deal. It strongly depends on the employee's negotiational abilities. I'd suggest the employee to set limits, but accept some compromise. After all, learning is a good thing for the employee themselves!!!

One could, for example, accept to read a few articles in the free time, after dinner or in some rainy weekend. Few is important, because boundaries between work and personal life must exist and should be reasonable. A programmer could try to read articles as soon as they approach a complex problem, during work hours, and learn something new.

Another aspect is rewarding. Employee may want to discuss with the boss whether the learning path can lead to a better annual review, so it could be worth investing some personal time in one's self.

2

Somewhat normal. You are expected to keep up.

Several different technologies? Sounds like re-skilling to me. As long as the "progress" expectations are reasonable this is normal for the industry.

There are usually two learning curves, one for the framework, and one for what the project is doing with it. The latter cannot be picked up outside unless it generally accepted practice.

We might need more information. Does the project have a client? How is that client billed? We know the employee is salaried.

In some cases, where a visa (or other form of labour arbitrage) is involved, there is a presumption that the visa holder is skilled, and whilst some small training budget may be required, a formal course may raise questions.

As a graduate (fresher) you should be able to pick up a new language or framework in a couple of days. The ability to do this is standard CV fodder. Yes it is common nowadays for employers to pay for your first exam attempt if you are looking for certification, but some do not. Any licence costs required may be problematic as well.

This does not apply if you are learning a legacy stack for a migration project. Visual Basic, OpenVMS,even Rails. These things should not require you to be an expert. Mainframe assembler demands formal instruction.

Formal training is also a lot like annual leave, you may have to build up some "sweat equity" before it is doled out. The days of having a two week break and "getting a big binder" are gone.

If it is a dog technology, or something they hate, maybe look for something else.

2
  • Can you please clarify what do you mean with "dog technology" as Google has been ruined by SEO completely and all it suggests are basically smart dog collars. Jun 25 at 11:39
  • @htmlcoderexe See "BCG Matrix". You would not, for instance, be wanting to learn deprecated technology or frameworks. Others may be more trouble than they are worth. I'll get flamed, censured. or sued for naming some names. Dead horses are sometimes flogged. Not a lot of dBase IV jobs around, That sort of thing.
    – mckenzm
    Jun 25 at 21:50
1

Is it normal in the software industry? Well it's certain not uncommon but that doesn't mean it's right.

It depends a lot on context. If you're a young go-getter desperate to move up quickly and learn as fast as possible, or someone who genuinely loves their work, you might already be doing this sort of thing in your spare time. That is certainly quite common. I've been there, and I see people like that all the time.

If it's a tiny startup and it was made clear when you joined that this was how things would be, it's not just a 9-5 job, then again this is pretty common but it implies you are invested in the company beyond a simple job - maybe stock options, or it's a cause/project you strongly believe in.

But if your boss just suddenly starts expecting people to work much longer hours then no this isn't right. Unless the person has in some way messed up and has to catch up, your employer should a)not push you to work additional hours b)offer some remuneration for it - whether that's overtime pay, additional time off, or something less explicit but still valuable.

It is a big difference someone wanting to work extra and someone being expected to.

It is a warning sign to get another job!

5
  • I don't agree about the warning sign to get another job. Because, simply put, if it's so common for bosses to ask for learning in the free time, the op will likely find the same elsewhere. Of course if the boss is pushing too hard, getting a new job will be helpful Jun 23 at 10:01
  • I didn't say it was the same everywhere or that it was "so common". I said it was "not uncommon." Even if it is common, find somewhere that's in the minority and treats people well.
    – Mr. Boy
    Jun 23 at 10:04
  • 5
    Even "the person messed up" isn't a reason push for extra hours in many jurisdictions. It's also a bad idea in all situations, since people who messed up don't magically do better work if pushed into an more stressful situation.
    – Erik
    Jun 23 at 10:09
  • @Erik it's not about 'better work' it's about rectifying a mistake. In work as in the world generally, if you screw something up you might be expected to give up some time to fix it. perhaps you introduced a code bug or messed up some data or mislaid a customer sale/order, well you might just have to work late or at the weekend. It is stressful when that happens but that's just how it is
    – Mr. Boy
    Jun 23 at 10:25
  • 1
    That's not my experience - bugs are part of the job and you just fix them during later work hours. If you have to work at night, it's because A) you have that in your contract and B) you're being compensated for it. It might differ between jurisdictions and companies, though.
    – Erik
    Jun 23 at 12:51
1

First, is your friend junior or senior, i.e. does he have marketable skills?

If senior, than the response can be firm with answers given above, though the below applies as well.

If junior: How would the boss quantify the rate of progress on the project? How would he ascertain how much studying is being performed off-hours? The answer is doesn't know how.

Your friend WILL be studying at work. The exercises will be related to the current project. With the skills he is learning, he now becomes more marketable. It is strongly advised that he perform additional work beyond normal hours, as he is a junior.

He needs to look exhausted and dejected. He must document of all the work he is performing and all the new information he is learning daily. He needs to have explanations ready why certain aspects of the project are taking "so long".

1

The answer is...it depends.

Are you Salaried or Hourly? If you are hourly, your time is not their time, period. If you are salaried, there is nothing wrong with being asked to put in a little extra time here and there. If it becomes habitual and unpaid and it affects your personal life, I would look for employment elsewhere. I've put in many extra hours for various reasons over the years, as long as it's a temporary thing here and there, it's no big deal.

Are you working for a company that contracts software development and tracks all of the time you spent working on particular client projects? Your productive time pays your salary, they can't charge the client a month of time for you to learn. It has to come from overhead. If it's a small company, it's a small overhead budget, they just can't afford to have you on overhead for very long. I've been with a <15 person company like this, it is what it is and do what you can to help it grow or get out. If it's a big company, they should have plenty of overhead money for this and really should be paying for training. If your position as a developer is an overhead position (meaning you don't directly contribute to revenue and probably don't track time) then it shouldn't be a big deal that you learn on the job, I wouldn't spend too much time outside work on this.

Ultimately, it comes down to you and your learning style. If you learn quickly on the job, or if you have lots of experience and this is just another tool or language, then just learn it as you go at work. Maybe fiddle with it a little outside of work before diving in. If you are someone that likes to read a book about the topic before diving in...do it on your own time. I've seen companies pay for books, and I know some guys do read them, but I've never seen them reading it in the office.

1

Sadly, in today’s IT job market, this is the ‘norm’ although in my 40+ years of IT work it was, early on in my career, just the opposite - that is, the company use to provide training. Now not providing training is considered a “cost-saving” opportunity for the company. I would have your friend ask your manager for training of any kind. I have experienced such an episode and only after asking for training did I get training. Otherwise, it wasn’t offered. Besides, it can’t hurt to ask.

You must log in to answer this question.

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