Digital thoughts

Adventures in my inner cyberspace

Subscribe to RSS feed

Posts tagged with "work"

Signs your first day at work is also the last

, ,

I haven't had a full-time job for a year now, and while I'm not 100% opposed to the idea, the latest attempt to get one reminded me in a rather painful way about the reasons I hate full-time jobs. If this happens to you on the first day, consider running away screaming:
  • Nobody has their own workstation; they keep moving between computers like guests at the Mad Hatter's table.
  • When the lights go out, they have a difficult time accepting the simple reality that they're forced to take a break, and run around like headless chickens.
  • The boss looks funny at you if you're sitting still even for a moment.
  • When the lights go out at the other office, the same boss brings everyone over. Never mind there aren't enough chairs, desks... or electrical sockets for the extra laptops.
And no, don't buy the excuse that it was an unusually chaotic day. Reasonable people would easily deal with chaos by slowing down, sitting back and taking things one at a time. Trust me, the above bullet points indicate a systemic problem. Unless you enjoy stress (some people do), just stay away. Your health (mental and otherwise) has no price.

Creative Commons License
Signs your first day at work is also the last by Felix Pleșoianu is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.

Client vs. Web developer: a quick guide

,

With the Web becoming more prominent in everyone's life, it is only natural that sooner or later many people will end up being involved in a Web development project, either as a client or, why not, a developer. Trouble is, most people -- on both sides! -- don't really know how to conduct such a project, and they end up running into the same problems again and again. This tends to lead to stress and losses on both sides, which is too bad, because after 11 years of working in this field I can pinpoint almost all failures to the same few causes. Let's see what they are and how you can prevent things from going awry.

Estimating

Advice for the client: don't ask for ridiculously precise estimates.
So, you've just given the developer the elevator pitch for your project and asked for a time and cost estimate. No offense, but do you seriously expect to receive more than an educated guess at this time? If you have a hard deadline and/or budget limit, say so. But don't ask for a prediction of the future; you might as well use Tarot divination to find out how the project will unroll.

Advice for the dev: help the client understand why you can't give them.
Look, it's easy to forget that your client is a layman, but he has no reason to know all the things you do; explain politely that software development is not like building houses or bridges, and even these activities are fraught with uncertainty. Do give an order-of-magnitude estimate, you can be that precise and it's better than nothing.

Specifications

Advice for the client: tell the developer what you want to achieve.
This may come as a surprise to you, but Web developers cannot read your mind. Nor can they divine the functioning of a third-party Web service just by looking at it. Doesn't work that way. Better yet, don't try telling the developer how your application should operate; there's too much detail, you can't think of everything, and you're probably not qualified to design it anyway. Just explain what you want it to do. If you can't even do that easily, you're overthinking.

Advice for the developer: lead the development process, it's your job.
See above. Your client is most likely a layman, with no understanding of how software is designed. Worse, decades of childish portrayals in the media have created the impression that it's some kind of magic. Do your best to educate, ask the right questions and generally guide things along; that can go a long way.

Development

Advice for the client: don't vanish into a black hole until the deadline.
You may think the developer is some kind of assembly line cranking out the 937,546th identical car, but this is not so. If he could have reused existing software, it would all have been done in 5 minutes. The whole reason he's building from scratch is that your project is -- to a degree -- unlike any other that came before. And that means he needs your feedback. So watch your communication channels. Answer e-mail, check the previews and mockups you receive and generally be there.

Advice for the developer: too much communication is better than none.
Keep in mind that the client can't read your mind any more than you can read his. So take the time at the end of each day to send e-mail explaining your progress, highlighting problem spots and asking for specific feedback. In the long term, it will benefit you at least as much as it does the client, by minimizing delays and misunderstandings.

Wrapping up

A software development project is only "done" when you pull the plug.
This is doubly true on the Web, where every little change instantly reaches all visitors of a particular site, and every little change can have a disproportionate effect. And since you can't predict the future anyway, a contract saying "payment will be done after delivery of the finished project" is a recipe for disaster (possibly of the legal kind). You'll need to agree on some clearly defined milestones, but! that's not easy either, as things may change along the way. Be flexible yet focused. What was the project supposed to achieve, again?

General advice

Be respectful to each other.

That should be obvious, but it's surprising how many people forget this most basic of rules.

Developer, remember that the client worked hard for those money he's willing to pay you. It's only natural to expect some value in return. Also, he's not an idiot; he's just an expert in other things than you.

Client, remember that the developer has years and years of study and experience behind him; he's not your servant, nor a menial worker. He's a highly skilled expert and you need him, or someone else just like him.

There you go. You should be able to start off the right foot now.

Creative Commons License
Client vs. Web developer: a quick guide by Felix Pleșoianu is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.

The Machine Stops

, , , ...

What could a short story from 1909 teach us about the modern day? A whole lot, it turns out. The Machine Stops is about a future where people have all the electronic communications they could wish for, but nothing to talk about, for lack of real-world experiences.

(As an aside, the technology imagined by E. M. Forster in 1909 still looks almost current, except it's analog, not digital. Pretty amazing.)

I was postponing writing this, waiting for something interesting to happen to me, and I'd still be postponing but for a friend's forceful request: "BLARG MORE, FELIX!". At first I was at a loss, knowing he was right, and raking my brain for something to blog about. Then it clicked: this is my topic. A cautionary tale, if you like.

As of this writing, I've been out of a job for almost five months. That, right there, means a lot of things I don't do anymore. Simply not going out of the house, and working much less than before, deprived me of life experiences I never knew I was having. Winter and lack of money also meant less travel.

Now, while I do much less than before, I enjoy a lot more human contact, for a lot more time every day. The Internet is unbeatable when it comes to that. But talking to people also eats into time that could go into actually doing stuff. It used to be that finding people with the same hobbies as myself was difficult; now I spend more hours every day talking to them than, you know, practicing said hobbies. Which in turn means fewer new things to talk about.

(Resuming after several days.)

I'm working on a game again. Will announce it in a few days; hopefully it will enjoy a better fate than my previous attempt. Ironically, focusing on it made me completely forget about this article for a while. What's worse, not having what to write about, not having whom to tell about it, or lacking the time to write in the first place?

Creative Commons License
The Machine Stops by Felix Pleșoianu is licensed under a Creative Commons Attribution-Share Alike 3.0 Unported License.

Autumn Potpourri

, ,

So, the summer's over and I still don't feel ready to return to a regular blogging schedule. But there's no shortage of things worth watching on teh intarwebs, and it's good to review them from time to time.

In the miscellaneous coolness department, A British musician sparks a huge debate on copying (and loses badly), tech-savvy Iranian youth take aim at Ahmadinejad (who keeps acting as if nothing's amiss) and an Indian probe finds water on the Moon (making NASA wonder how in the Solar System could they have missed such a thing until now). Last but not least, a cult classic operating system is resurrected as open source. Yay for diversity!

In other news, a new gaming website launches (disclaimer: I work in the same offices as the developers). And still in the cool-things-my-colleagues-are doing department, check out the brand new Logitune.fm and the slightly older Visual Things. As for me, I shed my own temporary obsession with gaming in favor of wikis, wiki engines and wiki directories. Turns out, helping people communicate is what I enjoy the most. Have a nice autumn.

P.S. I just noticed the My Opera blogging system has grown trackback support. That alone makes My Opera a whole lot more useful. It moves us all that much closer to the global conversation. And the devs didn't say a word! Tsk, tsk. p

Creative Commons License
Autumn Potpourri by Felix Pleșoianu is licensed under a Creative Commons Attribution-Share Alike 3.0 Unported License.

Busy Life

, , , ...

You know, it's hard to keep a balance between work and blogging. Do too little, and you'll have nothing to blog about. Too much, and you won't have any time left to blog. This month it was the latter for me. From the yet-another-rambling-post department...

First, I remade my website, for which I had to finish a particular piece of software. I even released it publicly, hoping to drive a little extra traffic, which never hurts. When I got around to the website proper, I found out that the release in question was buggy. After fixing that, I realized that the recent surge in traffic was due to a spammer latching onto my (otherwise neglected) tumblelog. Oh well, I was going to bring it down anyway. Too bad the traffic wasn't genuine, though - it was quite the disappointment.

So, I have a new website. What do I do with it? Here's where the real fun starts. It just happens that the Wikimagination project bit the dust around this same time, so I set out to recover and re-publish the content I cared about the most. Which, in turn, led to me resuming work on that content.

Final result: I'm still doing preparations for a role-playing campaign, brushing up a fictional universe and planning another, as well as some (unrelated) Javascript software. So I'll have plenty of topics for a while... assuming I find the time to post.

See you around.

Job Search

, , , ...

I haven't had to look for work in almost three years, and things have changed dramatically. While newspapers ads have come from very useful to completely uninteresting (too bad, they had charm), job boards are springing up all over the Web. Includind, as it happens, on two sites where I have accounts. So I quickly put together customized resumés and... off to contract hunting!

The story would end here, were it not for the... ahem... interesting postings I found on my first search attempts. Here's a sample:

Our programmers are comfortable with multi-tasking, handling interruptions, and interacting with both technical and non-technical staff and clients.



Translation: we're terrible project managers, but we expect you to do wonders anyway. That includes dealing with our idiot customers, who are so stupid they shouldn't even touch a computer, but hey, they're paying... usually.

Think you'd like to work there? How about here:

Job description:
...
Create work estimates and time-frames for development tasks
...
Dealing with deadlines



Translation: we're going to ask you for impossibly precise estimates, which we'll ignore anyway. Then we'll act surprised when your worst-case scenarios turn out to have been optimistic.

Naturally, employers insist in both cases that candidates come and work at their offices. Because, isn't it, being seen squirming in a cubicle all day long is more important than delivering results. Well, not in my book, not anymore.

Look, the corporate culture is dying. Not without a fight, apparently, but it's already deep in the tar pit. Why is it that some people - even young people! - are so slow to understand that?


P.S. I finally decided to join LinkedIn. What a change. Not only most of my friends are already there, but I had no idea just how fast connections multiply in a social network. How's this: 3 first-level connections, 32 on the second and over 1400 on the third. Or 4->102->4500 (after adding a well connected friend). And I'm just warming up.

Bussiness, not as usual

, , , ...

There is no good way to be blunt about stuff, so there it goes:
  • management is obsolete
  • marketing is obsolete
  • centralization is obsolete

Shocked already? It just means you haven't been paying attention as of late. Take the first point: it's been known for some time that programmers can't be managed, only facilitated (see the references). It is common sense to say that the same applies to every creative activity. What you probably don't realize is just how many jobs nowadays are of the creative sort, and how few maganers get the concept in the first place. In my experience, most of them seem to think they're managing a Communist factory in the 1960es. Case in point: the best manager I had in 10 years of career did nothing but keep everyone else out of our way. For 5 years while I was there - and the 5 years prior to that - sales (of women's shoes, of all things) kept growing. Once he was replaced, the business came tumbling down in less than a year. Believe me, it was sad to watch.

Speaking of sales, if you still think the key to success is to sucker a lot of idiots into buying things they don't need, think again. Apple doesn't sell because of marketing; they sell because their products are Darn Good (TM). Which brings us to the second point. A couple of months ago, a marketer tried to sell me on how Coca-Cola and MacDonald's were made big by advertising. Well, first of all Google's brand is bigger than either, and Google hasn't spent much at all on advertising. Not to mention they've been around for less than a tenth of the time. Second, the man's theory ignored the simple fact that Coca-Cola has had a consistently good product for over a century. Occam's Razor, anyone?

And now for the final nail in the coffin point: you know those Communist central heating plants, which were built to send hot pressurized water across cities - with huge losses, naturally - because it was supposedly more cost-effective than, you know, generating the heat right where (and when) it was needed? If you live outside the former Iron Curtain, you're probably wondering how could anyone ever think it was a good idea. In that case, tell me again why I should waste 45x2 minutes every day going to work and 8-9 hours or more stuck in a cubicle, when I could work more effectively from home, generating the same data with less stress and ship it to you (or anyone else) at negligible costs. A few things to consider:
  • Face-to-face time is overrated. People spend most of their days staring at screens, anyway. Admit it, you're usually IM-ing your coworkers who are within hearing distance. It's faster, and less disruptive to concentration.
  • I don't know about you, but I'm far more productive when I manage my own time. Hint: nobody knows me better than myself.
  • All that gasoline, time and neurons spent in traffic.

The funny thing is, telecommuting has been perfectly possible since the 1980es, what, with all the fax machines and microcomputers. But companies have only started to consider this seriously in the 21st century. How come? Well, on the one hand, the implications of the open source model are beginning to sink in. Moreover, centralized production (be it of media or anything else) is breaking down in a world with six billion people. Heck, even manufacturing plants are moving closer to the end users. The Coca Cola I don't buy p from my favorite corner shop is made and bottled locally, right outside the city.

So why don't we spare our employers the costs of office rent, equipment and electricity, and save our precious face-to-face time for when it really matters:
  • weekly meetings,
  • classes,
  • conferences/keynotes,
  • quality time with friends and family,
  • sex!


P.S. Yes, I just went freelance...

References:
Paul Graham, Great Hackers, How to do What You Love and some others.
Joel Spolsky, A Field Guide to Developers and many others.