Always Get Better

Archive for the ‘Employment’ Category

Get Your Boss to Do What You Want

Wednesday, January 14th, 2009

Communication Overtones asks “What do you do when you are sure you are right about something but your boss won’t listen to you?” Any manager worth his salt knows to surround himself with talent that will compliment his own skills – he will draw from the experts around him to formulate his plans and direction.

Experienced managers also learn to trust their own instinct even when the advice from the experts is contrary. So what do you do when your manager has decided to go with their own judgement even though you are sure they’re wrong. After all, you’re being paid for exactly what you are bringing to the table, so where is the sense in overriding your recommendation?

There are a few ways to proceed:

  1. Insist on your course of action and hold your ground until your manager is forced to reconsider.
  2. Back down – the manager is in effect your client, and you can lead a horse to water but not necessarily get them to drink.
  3. Plant the seed.

Plant the Seed
By “planting the seed”, I mean be subtle about your course of action. Let your manager know what you are thinking and leave it at that. It will get at them subconsciously until they come at you weeks later with a great new idea that sounds suspiciously like the one you had brought forward.

Be Patient
When you plant seeds, you need to be aware that it takes time for your point of view to enter your boss’ mindset. Depending on the concept and its complexity, it could take months for this passive approach to take effect. You could say this technique only works for non-critical ideas, but that isn’t necessarily true – it only works if you have enough patience to let your course of action sit.

Let It Go
Because this technique is a passive method for subordinates to get what they want out of higher-ups, you need to be prepared to let your idea get overridden. If your manager truly sees fit not to invest in your idea and you can’t make them come around to your point of view then your two options are either to put your ego aside and accept it so you can move on, or find another manager/company who want to run with it.

  • Share/Bookmark

People Cost More Than Equipment

Tuesday, December 30th, 2008

Much of the professional world has switched over to a two-monitor setup. I can’t even begin to imagine how I ever did with just one since I am now so used to having a help or a search open just outside of my main viewing area. Having reference material in my peripheral vision but accessible just by turning my head is much faster and less disruptive than having the fumble around the task bar and switch the focus of my attention.

It is said that switching tasks takes time – some users report productivity reductions of up to 15 minutes each time they have to change their focus of attention. If a programmer has to look at the documentation only once per day, their employer is looking at 1.25 hours of lost productivity every week, which may not seem like much but when extrapolated to that person’s yearly wage (averaging at $78k) the cost of the lost productivity is worth approximately $2400; much cheaper to buy that $500 monitor. For the general programmer, you can get by with less – a 17-inch LCD retails for less than $200. Sounds like a no-brainer, right?

The same logic can be applied to the purchase of an entire system. What is the productivity cost of having to wait for downloads and load times over the cost of a new system? Even if no new revenue is generated by the company directly as a result of the software or hardware purchase it can be worthwhile to invest in new equipment. Why hire someone and not provide them with the best tools possible to do their job? It’s kind of like putting a Mazda engine inside a Ford (wait a minute…)

  • improved satisifaction
  • reduced ’switching’ time
  • employees more knowledgable with ‘current/cutting edge’ software

There was a time in the early industrial revolution when buying equipment and machinery was prohibitively expensive, and people could be trained to keep old hardware running for many years in order to maximize that equipment’s value to the company.

Today the reverse is true – computer hardware can be acquired at a fraction of a cost of the person needed to run it – and the training involved in having someone fill the shoes of a departed worker can be crippling to the bottom line of a business. Instead of trying to make machines last as long as possible it should be the priority of any manager to make the people last as long as possible. In a world where individual jobs are replaceable and just a stepping stone to “something better”, volumes are said by the simple act of someone staying in their role for a prolonged amount of time – both about the worker and about the quality of the employer they give their time for.

  • Share/Bookmark

Work from Home as a Blogger

Tuesday, December 2nd, 2008

Several months ago I wrote about the pros and cons of working from home.  At the time I focused on the employee working from their home for an employer.  Working from home for yourself is a totally different ball game; right now many people are experimenting with the idea of working from home by writing posts for online publishers, especially blogs.

The concept sounds great: write about content you are interested in, choose your own hours, make time for family, answer to nobody (except perhaps client deadlines).  Make money continually for previous writing – financial freedom at last!

Is “professional blogger” the next logical career path?  I don’t think so.  The concept is simple enough: build a site, drive traffic, make money.  I suspect most people can even accomplish step one very easily.  The ever-changing methods for driving traffic and monetizing content require a significant investment in time that is beyond the reach of many people with full-time jobs and other obligations.

The common advice for aspiring bloggers is don’t quit your day job, ironically this goes against the fact that in order to generate a reasonable income from the medium one would need to devote the equivalent of full-time work hours to the process.  The two worlds don’t fit together particularly well; like anything else with a low barrier to entry, many people will occupy the lower echelons of the blogosphere while only those with the talent (and/or luck, if you will) and time (endurance?) will rise to occupy the 1% top of the heap.

  • Share/Bookmark

The Net is Recession-Proof; Hire a Blogger

Sunday, November 30th, 2008

An interesting article at the Silicon Alley Insider today – recession winners are designers and SEO experts.  Advertising is tricky for businesses because dollars spent can’t always be tracked to dollars earned.  When it comes to designing a web site I like to go with the analogy of a salesperson.  A web site is like an employee who works 24/7, can serve unlimited numbers of customers, and remembers everything they are told about every product.  Every dollar spent on a corporate web site is returned to the company passively over time – and as the site ages and grows in traffic, its value continues to increase.

Those are interesting elements to keep in mind when making purchasing decisions.  As we head into hard times it is more important than ever for businesses to connect to their customers in real and organic ways – social networking is the tool for the job.

For the best bang-for-the-buck, look for companies to increase efforts at creating and maintaining blogs either through the acquisition of in-house writers or by outsourcing to professional bloggers.  Blogs are search-engine darlings, but their real power lies in the fact that people are not just visiting blogs – they are reading them and participating in discussion.

Any company that has not yet begun to consider the benefit of the blogging medium to increase their brand awareness is going to find themselves left behind like the dinosaurs of the industrial revolution.

  • Share/Bookmark

Take Yourself Less Seriously, Manage Scope Creep

Tuesday, May 13th, 2008

Given the oportunity, your boss and your client would add so many requirements to your project that your only hope to meet your deadline was to forsake your personal life and donate your evenings and weekends to your job.

This is uncool.  Unless you’re in Houstin trying to bring home Jim Lovell, no one’s life but yours hangs in the balance of your work.  I urge everyone to ask themselves how important, really, is their function.  We tend ot build up walls around us and believe that our problems are big deals, but the reality is that in ten years we won’t remember what we did at work today.

So next time you’re asked to add “one more feature” to your prototype, decide if it’s best for the project, and if it’s possible for you.  It can be hard to say no, but humans weren’t intended to sit in front of the computer programming meaningless crap all day.  Go out and enjoy your life!

  • Share/Bookmark

Form Trumps Function

Wednesday, April 30th, 2008

One (sad?) truth I have learned through the past several years is this: Form Trumps Function, every time. You can write the most elegant code in the world, produce an application that meets requirements 100%, but if it isn’t pretty to look at, your time has been wasted.

In fact – you can show a client a beautiful shell of an application that has no functionality at all, and they will love it.  Show them the same application feature-complete but without the design, and they will not want to pay for it.

The bottom line is this – when writing code, be it for web or for the desktop, always have an eye for the ‘look’ of your product.  Even when a separate designer is involved, the programmer can take responsibility for the ‘feel’ of the application – how the buttons move around, tab order, this kind of thing.

I am considering spinning this blog off to a second one devoted to designing applications (both GUI and web).  The design element can’t be ignored, so hopefully getting programmers more involved in the process will improve the situation on all levels.

  • Share/Bookmark

Programming Doesn’t Mix With Family

Monday, February 18th, 2008

Back in 2006, George Alexander detailed a great list of traits essential for successful computer programmers. In this entry, we will look at those traits and see how they apply (or not) to the family life of a computer programmer.

In Canada, the Ontario government decreed the third Monday in February would be a holiday known as “family day”. This ends the decades-long stretch from January through March known to Canadians as the “dead zone” – the longest unbroken span of work weeks of the year. Nobody is complaining about a long weekend lightening the dreary winter months; except of course the four million or so workers who don’t qualify for the holiday, but that’s another story altogether.

Computer programmers don’t all fit the secluded, socially-inept stereotype. But for those of us that have families it can be difficult to shut off at the end of the day and become “human” again. Perhaps the shift that has to happen isn’t as extreme as, say, a soldier who comes home from overseas and has to go back to being a functional family member. All the same, the thinking needed to fulfill the duties of an analyst/programmer isn’t always compatible with the thinking needed to helm a family.

1. It’s not about computer languages

Leave you C++ code on your computer at work. It took you years of study, trial and error to warp your mind and destroy your soul enough that programming was opened up as a source of income. Don’t put your family through that.

I’m not worried so much about the blank looks on their faces and their faked encouragement when you go off all proudly about the sorting algorithm you finally managed to optimize. What about the day when they actual understand some or all of what you’re talking about? You’ll feel horrible for killing part of what made your loved ones human.

2. Drive and passion

Hopefully some of the passion that drives you to excel as a program is also present in your personal life. My father-in-law comes home from his job at 2pm, takes a short nap, then works until 1am improving his house and spending time with his wife and kids. His household is one of the warmest and happiest I have ever had the pleasure of being part of.

My father-in-law realizes that what you have now is always temporary – don’t take your loved ones for granted because you don’t know for sure if you will still have them tomorrow. Everyone would benefit from living every day as if it was their last; if that were to happen, computer programming may not seem all that important anymore.

3. Dealing with Change

The nature of IT careers requires us to constantly be aware of “the next thing”. Things always get “better” so in order to provide the best solution we must accept changing ideas as the norm.

In many ways, this is totally incompatible with family life. Families like stability – you’re responsible to come home from work with a positive outlook, provide financial security, consistently enforce household rules… and the list goes on. To provide the best family life possible, you must take reasonable actions to protect your family from change.

Even a move can be hard to deal with, especially for your children. I attribute this to why many workers choose to commute long distances rather than finding homes nearer to where they work. I once met a man on the Ottawa-Toronto train who was commuting to his day job – spending all week in Toronto and coming home to his family on weekends. He was involved in a new startup and wanted to make sure it was going to take off before dislocating his family; he was protecting them from unnecessary change.

4. Break It Down

Every day we apply the divide-and-conquer approach to achieving large tasks. We don’t “go to work”, we have a shower, get dressed, get in the car, drive to the office, park. Likewise, when we show our kids how to repair drywall, we don’t show them the final result and say “make it look like that” – we show them the steps it took to get there.

As important as breaking tasks down to their components can be for solving large problems, it doesn’t have as huge a place in family life as it does in work life. Your family is not a complex set of problems needing analysis and design – you really need to understand how the things you say and do today affect those around you in the long term. Day-to-day financial planning is disastrous – the big picture is far more important that individual transactions.

5. Do Not Reinvent the Wheel

A disciplined programmer knows that quality code can be re-used in other programs – rather than solving very similar problems again and again it is possible to create a single solution that can be copy & pasted or simply linked into the next project. It took thirty years of scientific reasoning to advance our field to this stage; unlike our well-defined little jobs, family life must be constantly evaluated and redefined.

Once my wife and I announced we had a baby on the way, everyone began crawling out of the woodwork to give us their “advice” for pregnancy and raising children. Of course, there is no code reuse when it comes to this stuff – every parent and child is different and it’s our job to figure out what works best for us.

6. Practice, Trial and Error

Here is one area where work skills can transfer over to your personal life. Rather, I would suggest that when it comes to trial and error, the skills you learned in your personal life are serving you well in your programming career.

Do I have to go out of my way to say that no one is perfect, and everyone can always get better with trial and error? Try new things, find out where you made mistakes, try again.

Although not everyone is or wants to be, I’m married now. As I was growing up, every failed relationship taught me a little more about myself and about how I should be treating women. In a sense, each ex-girlfriend was really “practice” for the next. The constant re-evaluation seems to have paid off. The point is – never stop trying to improve, because there’s always room to get better. We have to own our failures as well as our successes.

7. Mentorship

If you have children, they depend on you for food, clothing and shelter. More importantly, they depend on you for guidance – even when they think they know better than you do anyway. As a parent, your job is to be in control and have all the answers even when you aren’t in control and when you don’t have any answers. Going back to #3, you must be a constant source of stability.

The same is true if you don’t have kids yet. Everyone has their own problems and no one needs or wants to solve yours. The world is too full of people who won’t take responsibility for their own thoughts and actions. Solve your issues on your own time and just enjoy being with other people.

As Fernando Lamas (the real one) said, “It is better to look good than to feel good.”

8. Be Open to Criticism

When we deliver a project to a client there is an expectation that the results don’t contain a lot of problems because we have gone through a quality control process to arrive at the best possible solution. Part of that process involves having someone else look at your design and critique it.

In the real world, we get criticism from a myriad of sources whether we solicit it or not. We don’t ask family members whether they approve of the way we installed our cabinets but we get their comments anyway.

No one goes out of their way to hurt or put down someone else – at least, this is what I would like to believe in my naive little understanding of the world. Even the handy family member is trying to be helpful when he complains of how he can’t fathom why you would use plywood instead of… you get the idea.

Like anything else, it all comes down to filtration. Take the good with the bad and don’t let people get under your skin. Sometimes they may just as well offer a tidbit that you can grow on.

9. Bug Off!

As with seeking criticism, software development involves a lot of self-starting even when it’s not strictly requested. Case in point: bug testing. No self-respecting programmer takes the design at face value, programs it, and submits it for testing without evaluating the product in the project’s grand context. We desire our work to be perfect to a fault and when it isn’t our ego takes a blow. Computer programmers especially tend to be obsessive compulsive about having their solutions in perfect order with no strings left untied.

I warn you – the obsessive perfectionist view that helps win promotions at work does nothing for your personal life. Girlfriends, wives and especially kids don’t share your drive for order. You have learned many of your intuitions and must learn how to turn them off when you get home or you will slowly go insane.

A few examples of things that will turn your crank but are worthless to normal people (unlike your mutant self):

  • The kitchen was not tidied during cooking
  • The kids colouring books when shapes were only partly filled in, or coloured over the lines
  • Report cards with any non-perfect grades
  • People not trying to get every last coin in world 1-4 of Super Mario Bros. 3.

10. The Significance of Communication

Computer programmers are not like normal people. Normal people don’t obsess over math problems. Normal people don’t do the mental acrobatics needed to understand pointers and floating point precision. Most people don’t care about x = x+1. Those who do know that at face value it is meaningless (0 = 1?) and can’t comprehend why you would choose a profession in which the most important calculation is nonsense.

So don’t try to explain your work to your family. At best they won’t understand what you’re talking about and at worst you’ll ruin their minds like you have ruined yours. If your kids grow up to be computer programmers they won’t thank you for it.

  • Share/Bookmark

SEO Powered by Platinum SEO from Techblissonline