Follow Slashdot stories on Twitter

 



Forgot your password?
typodupeerror
DEAL: For $25 - Add A Second Phone Number To Your Smartphone for life! Use promo code SLASHDOT25. Also, Slashdot's Facebook page has a chat bot now. Message it for stories and more. Check out the new SourceForge HTML5 Internet speed test! ×

Comment Re:OP fired because of this article (Score 2) 214

Legally, it's a grey area. If your employment contract has morality clauses, for example, you can be punished for things done outside of work. However, usually that is limited to situations where your contract explicitly states it, which usually happens when working for religious institutions (or, occasionally, schools). You can also be fired for actions that reflect badly on your company, but that assumes that A. people know the author works for that company, and B. they have reason to somehow connect the two. And of course, in at-will states, your employment can be potentially terminated for any reason, though in many, the implied covenant of good faith might give the author grounds to argue that this was without cause, done out of malice arising out of personal embarrassment on the part of the management team.

The bottom line would be that the author should contact a lawyer who regularly deals with employment law in that part of the country, because whether he has a case or not is highly dependent on where the author is located, and I'm pretty sure it won't be open-and-shut no matter where the author lives. However, the fact that the author has not revealed where he works does open the opportunity for the lawyer to point out that bringing this to court will cast their company in a very bad light publicly, whereas an out-of-court settlement for... say ten years' salary will not. Depending on how terrified the company is, such (entirely legal) blackmail might actually be more effective than bringing a suit.

Comment Re:Yes, but... (Score 1) 214

In my experience, what makes it chaotic is the vast expanse of code that you didn't write personally. I've seen big chunks of functionality have to be completely rewritten because even major frameworks from major companies like Apple sometimes have bugs that are showstoppers when used in some way that the original author didn't expect. Most people normally assume that external dependencies already work when estimating, because after all, those are major frameworks written by major companies with testing resources.

Now extend that to code written by random engineers with limited testing resources. Normally, you assume that your internal code works, because after all, people are using it every day. But what happens when there's an edge case you didn't notice? If it isn't a crash, a bug in a suitably complex app often isn't easy to track down, and even when it is a crash, it might be some subtle multithreading race condition that can be utter misery to debug. And the larger the app, the more opportunities for untested code paths to suddenly find themselves on the hot path. This is why estimating is hard; you aren't just estimating how long it will take to get your code working; you're also estimating how long it will take you to fix everybody else's mess.

Comment Re:Leftists are learning about pushing people too (Score 1) 269

One prominent example is minimum wage regulations. While the intent behind these may have been good, what they've ended up becoming are huge burdens to businesses that are already on the brink. It's not economically viable for a business to pay somebody far more than the value they're providing. What is the end result? Fewer jobs, and a lot more focus on automating away low-end jobs. This actually leaves people worse off than they were before the minimum wage regulations were put into place!

That's a very naïve view of reality. For every business that's on the brink, there are hundreds that are doing well, and many that are turning record profits. A business that cannot afford to pay its employees a living wage is almost certainly doomed anyway, so allowing it to pay a less than a living wage is just delaying the inevitable slightly. The business will fail. Let it fail.

Keeping a business on life support by letting it pay a subminimum wage doesn't help anyone in the long term, and doesn't help very many people even in the short term. But allowing businesses to pay a subminimum wage does hurt people who work for all those other companies that actually are profitable, because given the opportunity to pay their employees less, they will do so.

More to the point, if that is the only business providing jobs in a particular community, then that community is doomed. Keeping the business alive a little longer by depressing wages just encourages people to stay in the doomed community and make less and less money, thus making them less and less able to afford to move to a community that isn't doomed. So continuing to pay those employees a wage actually ends up hurting those employees more than it helps, at least in the aggregate, though the individual employees might not believe it at the time.

Comment Re:slashdotters are happy (Score 1) 185

I don't think that's true at all. Most of the pro-life voters I've known are people who genuinely care about protecting the unborn. Most of the pro-life politicians at least appear to be using the abortion issue as a means to get elected (though I suppose it is also possible that they're genuine but clueless). The number of pro-life folks who are actually misogynists is probably fairly small, though I'm sure that they do exist.

Comment Re:It's true (Score 1) 270

When the chip returns, we have to test it and make sure it is correct before we make any last minute changes. So there is a 72 hour bring-up period, most of us work 18 hour shifts and the campus is open around the clock with three meals served a day.

When you're talking about a short-term crunch period, sometimes those really are unavoidable, because of events that could not have been predicted ahead of time. When that happens, what matters is that the period be A. short, B. bounded, and C. rewarded with extra vacation to balance out the crunch. If an employer does that, it isn't a big deal. When an employer drives people to work 18 hours a day all year around, though, that's a much bigger deal.

That said, to some degree, what you're describing is still a failure of management. The final deadline might not be movable, but the milestones on the way to that deadline are movable, and the number of employees you throw at the problem is also adjustable. There are two ways to trivially fix the problem in your case:

  • Move the deadline for the design earlier. This approach will initially mean slightly longer hours during the entire project, but over the long term, will make it worth hiring one or two extra employees to reduce the workload. By doing that, you'll have an entire week or even two weeks at the end of the process for the bring-up period instead of 72 hours.
  • Hire contractors to offload most of the testing during surge periods. I guarantee you can find people who will do short-term contracts for a week if you throw the right amount of money in their direction, and I guarantee there are plenty of other companies that need testers only part-time. Work with those other companies and build up a contractor talent pool. Spend two days preparing for the tests, then three days doing the tests. Make a larger quantity of engineering test samples so that you can parallelize the tests better, and use three times as many people during that week so that everybody works sane hours.

This isn't rocket science. Either approach above would make those crunches completely unnecessary, and the combination would do so in a way that isn't even particularly painful for the company or the employees. However, both approaches require management to A. acknowledge that there's a problem, and B. care enough to fix it.

Comment Re: Cry me a river (Score 3, Insightful) 270

He wanted the growth, the stock options... and he wasn't cut-out for the demands:

Yes and no. Most startups have the opportunities for growth, stock options that could become valuable, etc., though you always have a decent chance of not getting anything from them other than more work. But there's definitely a point beyond which that extra work qualifies as worker abuse. This is why we need stronger laws on employee work hours.

Don't get me wrong; I'm okay with people hiring "exempt employees" with the understanding that their work hours will vary throughout the year, depending on what is happening. Where that scheme goes off the rails is when that turns into an expectation that you'll work 50+ hours every week—something that is fundamentally unsafe from a psychological perspective, causing serious harm to workers when done over a prolonged period. And from what I've read, Uber is one of "those companies".

Make no mistake, that culture is entirely the fault of Uber's management. Young people tend to think they're invincible, so without managers telling them to do otherwise, they will work themselves into the ground—sometimes literally. They think that by working ridiculous hours, they'll get ahead of their coworkers, and when enough people do that, others start to believe that long hours are required; thus, a work culture forms around that expectation.

What those young people don't realize is that those longer hours invariably lead to bad decision-making and lower quality output. Statistically, for every hour above about thirty hours, productivity falls off, and by about 50 hours or so, productivity actually goes negative; for every hour worked beyond that limit, you end up doing more than an hour of extra work to fix the additional screw-ups caused by the hour of extra work. For this reason, it is crucial for every tech business to have competent managers who strongly encourage employees to maintain a healthy work-life balance. Managers who do not do this—managers who prioritize short-term gains over worker health—invariably lead to worker burnout, long-term low productivity, and yes, suicides.

Unfortunately, between Uber and video game companies, it is pretty clear that self-regulation by industry isn't working, and that government needs to step in. Exempt shouldn't mean "we own your life". It should mean "40 hours average", i.e. the same as non-exempt workers, but allowing for seasonal variation. It should be illegal for exempt workers to spend more than an average of 40 hours per week spread across a one-year period. Huge fines are quite literally the only thing that companies like Uber will understand.

Comment Re:slashdotters are happy (Score 1) 185

No, actually it's the solution to the abortion false dichotomy. And this isn't by any means the first story on the subject. A team in Japan did early animal testing in an artificial womb at least a decade back. I know this because I remember having a conversation about funding the development of this technology as a way for anti-abortion folks to put their money where their mouths are while on a church choir trip in 2008.

The fact of the matter is that abortion is worse than a wedge issue. It's a false dichotomy. Why would anyone in their right minds not want both a right to life for the fetus and a right to choose for the mother? The nature of birth involves trading the rights of one person for those of another, and that's the only thing that makes the abortion issue challenging for people to navigate. The mere existence of artificial womb technology is a game-changer.

If Republicans were actually serious about ending abortion, they would have jumped on this a decade back, and would have insisted on pouring funding into making this technology viable. We'd see research dollars being poured into that instead of into missile shields and random weapons research, and this technology would be fully viable by now, because with enough people working on it, the advances would happen faster. But they haven't done this, because they would lose most of their seats if abortion actually became illegal in a way that wouldn't get undone in a future power shift.

A truly intelligent, competent candidate for office, then, should be pointing this out, and should be running on a campaign of making artificial wombs available soon, and then making abortion illegal, requiring patients to instead get outpatient transfer surgery to move the fetus to an artificial womb. And the government should massively subsidize the transfer and pay for the incubation in cases where the woman gives up a fetus for adoption in utero so that no one chooses a back alley abortion over saving a life. And the government should require insurance companies to cover the transfer and incubation in cases where the life of the mother or fetus would be in jeopardy if a pregnancy continued, so that women with high-risk pregnancies can keep their kids without risking their own lives and the lives of their kids.

The mind-boggling thing about this, at least in my mind, is that our politicians still haven't thought of it. This should have been obvious to any competent leader at least ten years ago when the first study came out. Arguably, it should have been obvious earlier than that. I've been advocating this as a solution to the abortion debate for so long that I can no longer even remember when I started advocating it. If I ever run for office, I swear I'll run with the promise of being pro-life and pro-choice—no more false dichotomies. The American people deserve at least that much competence from their politicians.

Comment Re:I hope he wins his suit (Score 2) 711

Technically, it is possible to get into med school with only three years of undergrad education, and a fraction of a percent of M.D. degrees are actually awarded to people under those circumstances, but realistically, you won't get into medical school to get an M.D. without first obtaining an undergraduate bachelor's degree. Similarly, you won't get into law school to get a J.D. degree without an undergrad degree.

You could certainly argue that they're equivalent to Master's degrees, but they most certainly are not undergraduate degrees.

Comment Re:"Like"? (Score 1) 415

In the long run, I'd expect the tools to adapt to solve those problems more transparently, e.g. through the use of standardized libraries that hide the parallelization behind procedural wrappers so that developers can write seemingly procedural code, but gain the benefits of massively parallelized code for the pieces that matter.

Or not; hard to say.

Comment Re:Lots of claims are being made about it's virtue (Score 1) 415

For that to be even ostensibly correct, you're missing one single quote mark and some double quotes, e.g.

"There are to many 'it's, don't you think?" he said.

And even that is arguable, because those aren't really apostrophes; they just happen to use the same key on the keyboard, typically.

With only two exceptions, the plural of any word is always spelled with an 's', not an apostrophe followed by an s. The exceptions are:

  • The plural of a lowercase letter (e.g. there are too many i's here).
  • The plural of an abbreviation that contains periods or mixed case (e.g. there are too many Ph.D.'s here).

And even then, those exceptions might depend on what style guide you go by.

Comment Re:It has its uses (Score 1) 415

Functional programming and unit testing are things you don't see widely used in the videogame development world, at least that I've seen.

I'd expect functional programming to be used quite a bit in that space, but only for very small chunks of performance-critical code, such as massively parallel bits down in the guts of raytracing engines. Now whether they actually use functional programming languages or not is another question.

Unit testing is something you don't see widely used in software development, period, unfortunately. But the industry is getting better. Slowly. Very slowly. Very, very slowly. Glacially, really.

Comment Re:Functional Programming Considered Harmful (Score 4, Interesting) 415

It needs to be done and done well. Very tempting. But alas, just like drug use, there's only so much any sane person can write about the subject, because anyone who knows functional programming well enough to fully explain why it is harmful is probably mentally damaged beyond the point of being able to understand why it is harmful. :-D

The thing is, functional programming is a good paradigm for students to be exposed to in school. Briefly. It forces you to think about data flow through your program, and forces you to think about your software as a giant state machine and visualize how the states change as your software does work. It is not the only way to teach that concept, but it is a halfway decent way. And once you pick up those concepts, you'll start to understand why singletons are so useful (approximately the polar opposite of functional programming, but often the software equivalent of the data you'd be passing around in a functional world).

So basically, there's a time and a place for everything, and it's called college. But just like with drugs, if you continue to do significant amounts of functional programming after that, don't be surprised if the rest of us ask what you're smoking. Functional programming as a real-world paradigm tends to be almost invariably a disaster, because it neither fits the way we think about problems (human thinking is almost entirely procedural) nor the way machines do work (computers are inherently procedural). It can provide useful extensions to procedural programming languages that serve specific purposes (e.g. closures), but calling functional programming useful for that reason is akin to calling a diesel-electric freight train a perfect commuter car that saves fuel because a Prius is also hybrid hydrocarbon-electric.

About the only space where functional programming techniques might really make sense is when working in a massively multithreaded environment, e.g. creating really efficient implementations of certain massively parallelizable functions (such as FFTs). But for the most part, that functional programming is limited to creating components that are then utilized as small (but performance-critical) parts in what is otherwise on the whole still procedural (or OO) software.

Outside of those very limited scopes, though, the theoretically ivory-tower-pure, zero-side-effect functional programming model is pure garbage. Real world systems don't just have side effects; they are side effects, whether you're talking about storing data on disk, sending it over a wire, drawing it on the screen, reading data from a keyboard, or whatever. The notion of treating all of those "side effects" as some giant state object that mutates as it gets passed around is fundamentally antithetical to real-world use of the data, because state must be stored to be useful. And the entire notion of passing around the complete state of real-world software is so far beyond infeasible that the concept is utterly laughable. Cell phones have a gigabyte of RAM, not a petabyte. There's simply no way to write something like MS Word in a pure functional language, because it would take all the computing resources on the planet to barely run a single instance of it.

Using functional programming in most real-world environments, then, cannot possibly do anything but cause brain damage, because the whole functional paradigm is wrong for the problem space. It is like cutting the grass on a football field using only a single pair of nail clippers—theoretically possible, but completely infeasible. To that end, although I wouldn't say that functional programming is inherently considered harmful, it should be approached with approximately the same level of skepticism as goto statements, and for approximately the same reason. When used correctly, in a very limited way, it is a powerful tool to have in your toolbox that can seriously improve your software. When overused or misused, it is a black hole that consumes infinite amounts of programmer time while emitting very little.

Slashdot Top Deals

Nothing makes a person more productive than the last minute.

Working...