Follow Slashdot stories on Twitter


Forgot your password?

Comment You can't (Score 4, Interesting) 221

The short answer is that you can't. Your boss, if he / she is a programmer, will go to bat for you, and say "this won't happen; deal with it." If they aren't, you're screwed.

See, in the business world, much to its caricature, there are people who think they are business-savy. They watch 'The Apprentice' with a notepad in hand, and think that when it comes time to handling outside work, it's all about how fiercely you negotiate. Your non-programmer boss, who got his start in sales / marketing, is used to promising people stuff that others need to deliver well as combing over any problems when a 'whoopsie' happens (missed deadline, etc.); he is also used to the idea of pandering to the client, and doesn't understand the intricacies of telling the client, in non-subtle, but non-insulting language, that something simply cannot happen.

So, when your client comes to negotiate with your boss, he's going to give them everything for nothing; he doesn't know this, but he does it. He's going to ask for time estimates from a programmer, where things operate in a completely different kind of world (every project is a new set of problems, first rule; ergo, all time estimates are vague and unreliable...even for 'easy' projects, because of some stuff I will touch on later); he's going to take these time estimates, and shave them down...asking the programmer, "Can't we try to get this done by Tuesday? And we can fall back to Friday if it doesn't work out." The programmer, of course, will tell him the truth (the programming / mathematical truth), which is "Sure, we can try to get it done faster." But in reality, it's not a magic button that gets pressed to make things 'go faster.' So, your boss tells the client his truth, which is that the project will possibly be done by Tuesday. The client, hearing this, thinks that it might be done by Monday, but will begin annoying your boss via phone calls as of Tuesday.

Now, let's take a moment to look closely at some of the elements around this scenario: your boss is going to charge the client for a certain amount ($2K), based off of your low wage, long hours, and another project that will be coming up a few days later for another client (it's all about volume). The actual cost of the project is $3K, but after your boss is worked down in negotiations ("We need to keep this client / build a relationship. We'll make it up to you with more work down the line / another project from them that will be worth more at some point in the future."), it'll be $2K. Bear in mind that the Tuesday deadline is actually negotiated by this client as from their viewpoint, they've gotten a pretty sweet deal according to Apprentice 101: by dominating your boss, they got him to place their project at the top of the 'critical priority' pile...and they saved themselves $1K.

Your boss, believing the lies of his industry, thinks he's building a relationship with the client...he's not, since the client will bounce as soon as he tries increasing the costs anywhere near market rate, and they know that they can tweak him at will to speed things up / shave costs because he's already done it once before. Meanwhile, you, the programmer, are doing $7K worth of work, and enjoying near constant panic attacks because -> the client submits development requirement changes piecemeal, via email, telephone, SMS, Skype, and toilet paper. Your boss, of course, will come to you, and ask you if you can just do these extra tasks...that they won't take too much extra time, right? Of course not...changing the backend from SQL to NoSQL, and the frontend from ASP.NET to PHP shouldn't take any extra time at're a're second-kin to a magic can just not sleep, and reach into your magic bag of tricks, and pull off this thing by Tuesday's lunch. And skilled salesman that your boss is, he's either giving the changes away to the client for free, or taking on an absurdly low number for the additional work ("It'll pay for itself in the long run, you'll see!").

So, Monday rolls around, and the client calls to 'check-in' on the status of the website. Your boss, of course, will ask you how it's coming along...and you don't have a clue, since you're still working through their requirements (some of which are mutually exclusive), and give a half-assed answer of "I don't know." Your boss presses you, lectures you about the importance of this client and his fledgling business (eating away at the time you could be spending programming); you nod your head, in the end, to just remove yourself from his presence, so you can get back to coding. You weren't paying attention, of course, to his hijinks, where he asks you the question again, and offers an answer of "It will be ready by tomorrow, right?" You, of course, don't even remember nodding an affirmative to it.

Anyway, he calls the client, says everything is cool. Tuesday rolls around, and you're still programming. He calls the client, and says you are working on some last minute testing / bugs, and everything will be fine by Wednesday morning; the reality is that you're about halfway through coding it, and there is zero chance that it will be fully functional by tomorrow. Your boss, of course, extracts another lie from you about you having ready by this time...since you are divided between answering his pointed questions about why it isn't done already (and he wants to know, but he also wants you to spare him the technical details, since he doesn't program / understand technology), and continuing to work 'in the Zone' on the code, which his questions are impeding.

So, he's playing his game with the client, while perhaps quietly grumbling about lying programmers, etc., while you're trying to get the project done as quickly as possible, and are making some really bad design decisions to 'have something to show'; you begin hard-coding values, or putting in features that aren't fully tested / guaranteed to work, to meet with his increasing demands that it be completed right then and there. At the end of the following week, long after any 'trust' has been burned with the client, the website is done...but not without you suffering for it.

And then your boss calls you up, and asks where you are on the next project that you were supposed to have started a week ago...since it's due in two days. Wash, rinse, repeat for several years, until you decide that you can't work there anymore, and go on to a new job, at another place, for more money, but still not enough.

That's your non-programmer boss. Now, your programmer boss, possibly, will simply tell the client "it's going to cost double, take twice as long, and you will be happy with the results" and will tell them, when it comes to their additional requirements, that that counts as a new project, and will be properly negotiated once the agreed upon project / contract has been fulfilled. And they will be happy...since the design wasn't rushed, it can be easily extended in the future, with less pain, and go a lot further.


Comment Re:That's just not a viable option. (Score 4, Insightful) 407

You'll find that just about every feature your "essential" library provides has a native equivalent that works across browsers -- even as far back as IE 8.

That's a pretty naive view that over-simplifies the situation. One major use for a framework, for example, is to normalize the behavior of different browsers. Another major use is to provide implementations to create interface elements. Now, obviously, everything is natively supported because the Javascript framework is right there doing it, natively. But why should I write the necessary logic to create a draggable window, or a tree view, or sortable grid, when I can just pull that in from a framework? ExtJS is the kind of framework I'm thinking of. Why should I implement ajax-style uploads inside an iframe when they already did that for me, and I can just set up a form panel, indicate it is a file upload form, and write the important stuff?

Even though I can use a massive ExtJS application on a phone, we're not talking about massive applications per se, we're talking about mobile Javascript. So there are things like Sencha Touch for that. Sure, I could write native applications for every device listed under the supported devices section, but why is it smart to do that when I can write a single codebase that I can package for multiple devices?

Or maybe I'm just not "familiar" with Javascript, or development concepts in general. Hopefully you can enlighten me on the merits of reinventing the wheel every time you create something.

Comment Re:Really?!? (Score 1) 1448

You do realize you're being more of a bigot than he is?

I have never heard of "intolerance of intolerance" being described as bigotry before. Card is actively campaigning against (i.e. spending money to oppress or support the oppression of) a whole group of people. h4rr4r's MetaIntolerance (if you want to call it that) is simply choosing not to support someone he/she sees as a bigot. There is a big difference there.

Comment Re:how about (Score 3, Insightful) 255

Nope. But the Brits did. So pack your crap and move out, the redcoats wanna move in again. You can pack your third amendment too, while you're at it.

Snide comments aside, when will humanity learn that "but I was here first" means exactly jack when it comes to land claims. How far back do you want to reach to determine who owns it? Should Europe belong to Austria, for they pretty much held a sizable portion of it in the 18th century? Or maybe the Germans, after all the Holy Roman Empire, which contained pretty much all of central Europe, was ruled by German Emperors for most of its existence? Maybe the French would be more fitting, after all Emperor Charlemagne ruled nearly all of Europe in 800. Or the Mongols? I mean, considering how much of it was conquered by Attila before? Or Italy, owning it to the Roman Empire? Maybe Greece would be fitting, considering they settled almost all over those parts of Europe that border the Mediterranean Sea. Or ... who is the legal successor of the Celts again?

Forget "I was here first" as a claims to land. You might find out that someone can say that to you, too.

Comment Re:Real War (Score 1) 253

Oddly, a movie is actually accurate in some degree. It was even named after the program.

In a nutshell, Navy and Air Force drew different conclusions from the horrible aircraft loss rate during Rolling Thunder, and both were right. And, as usual with actually sensible programs in the military, funding was crappy at best in the beginning.

Comment Re:Makes sense (Score 1) 566

Seriously. Binary might be faster, and that's cool: when it comes to sending / receiving data, compressed forms are awesome.

But yes, if there's an error...or if something doesn't work as expected, your choices may be a special tool to read the data stream, or trying to read it manually (which can, lacking practice, take a lot more of the developer's time).

Personally, I'd do what I normally do with other forms of storage: develop in human-readable, push to production in binary; boolean switch / comparable classes in the original code to swap back if / when some horrible error appears (and no one knows what it means, or why it's happening).

Comment Re:saber rallying (Score 1) 213

Dude, it depends if things are an employer's market, or an employee's market. If the US government needs a cracker that can slice through security like a hot knife through butter, and their choices are John Convict, or Joe Non-Convict, with the former being capable, and the latter not so much...well, would you prefer an employee that can perform the job, or not?

Of course, this sidesteps the entire issue of whether we should be engaging in such things to begin with. Nations spying on other nations has occurred since the beginning of civilization...and there's no reason for them to do otherwise (well, from their viewpoint, anyways; perhaps, if one pauses, and relfects that all nations who have engaged in this kind of warfare (and it is) have fallen, one would not be in such a hurry to emulate their possible mistakes).

Comment Re:saber rallying (Score 1) 213

Lol. I'd just synthesize a camera from available parts...and go the microfiche route (store the film inside the suit I'm it right, it's flexible, and who is going to rip open the shoulder pads / inner lining of a $2000 suit? If they're wrong, that's $2K from the security budget.) Meh...actually, if I used cellphone filters / trickery, I could collapse the data somewhat holographically...maybe (who is going to question the use of a cellphone wrapper on your person if you bring in / acquire some candy with the right characteristics? Red, blue, yellow, green, etc. on a piece of film...extraction via Photoshop later on.).

But then, who wants to wander into the lion's den to get what you want, when you can just chill outside? I imagine that the security reports they are using to build their zero-day database are coming to them via emails, or phone calls, or even from the vendors themselves. Why take on the castle (a secure installation), when the tavern is more surmountable (the vendors themselves)?

But then, this entire thing is a distraction. Let's be honest...going this route is filled with fail.

Comment Re:Real War (Score 5, Interesting) 253

By definition they are not. Because you would have to come up with every possible scenario that the enemy could design to outsmart your drones. Remember the V1, the first "drone", so to speak? English pilots came up with a clever (albeit quite dangerous) maneuver that could easily down them.

In Vietnam, the US made the mistake to only prepare for the "big war" against the USSR, ignoring minor conflicts that might appear. Planes didn't get guns anymore because "modern air combat will be fought beyond visual range. Then politicians came up with the stupidity that enemy planes first have to be visually identified. Not to mention that the long range air-to-air missiles of the time were unreliable at best and required an active lock (yeah, it's a really bright idea to fly straight towards and enemy plane coming at you with its weapons pointed your way...). In a nutshell, the USA relied on technology that was simply not ready to fill the role it should, coupled with political stupidity of epic dimensions.

I'd fear that this is heading towards the opposite. We're just preparing for an asymmetric war, ignoring the possibility that we might have to face an enemy of equal technological level. And while it is quite unlikely that there will be a full blown war between the USA and, say, China (just to name one country that might be some sort of threat, replace with your favorite boogeyman at leisure), if the past half century taught us anything then that proxy wars where one side is the US and the other side gets top level equipment from a "partner" are by no means far fetched.

Slashdot Top Deals

I judge a religion as being good or bad based on whether its adherents become better people as a result of practicing it. - Joe Mullally, computer salesman