Friday, February 13, 2009

maintenance support coding

andrew moore has an interesting piece that i found on reddit tonight and it points to why supporting code that someone wrote is the best place to be a 'hero'.

citation one:

If you outperform stagnant, you're a hero

ok - let's be honest here: only egomaniacs are into being a 'hero'. while you, as the coder might think that when you refactor someone else's code you're being a 'hero' - the fact of the matter is that you are very close to being an arse.

what mr. moore should have provided is the caveat: make sure you understand the code that you're about to refactor.

at one point in time i was working with a development team and the new coder decided that he was going to be a 'hero' and refactored some code that:
  • wasn't in the functional design
  • he didn't understand
  • related to a business function that was rarely used
so he 'refactored' the code and broke functionality at a third stage approval process when the application was in the final stages of being approved. i, as the testing co-ordinator had to take the results of the tests and show where the previous beta compiles passed a particular function and why the 'final' version did not.

the project manager took this to the developer and suddenly there was found a 'bug' that was 'dormant' in the code and was 'only found when the final tweaks' were made.

it was pretty obvious to one and all where the source of that 'dormant' bug had been and it was the last time that developer handed in a product that had any 'features' that were not explicitly called for inside the functional design.

so, for all you rockstar developers who are bone certain that you know what you're doing, i have a simple suggestion for you: don't be a hero.

all too many times, the 'hero' ends up being a 'zero' in the eyes of everyone else around them because their either look down their nose at the other coders who are doing their very best - or they are setting themselves up for one of those career destroying errors.

heros are an epic fail in a team work situation. if you want to be a 'hero' you can't be a team member.

citation two: Sometimes when I look at an installed base of code, I find places where there is useful information that is not being exposed. The database knows some statistics about the business that are not being given to decision makers. Sometimes this wasn't done before because it's not obvious when something is being built what kinds of statistical information it will collect. Sometimes it's not done because it's just not the lowest hanging fruit (yet).

ok - this is boderline stupidity clear and simple.

developers are not paid, nor are they often wanted to 'optimise' the decision making process. leave that to those that wear the ties, have the blackberries, and are on the giving side of the layoffs.

a developer's job is to write the code that they are given. the business analyst is the one that is to decide what and how the code should be written.

all a devleoper that writes 'heroic, groundbreaking code' is showing is that they have way too much time on their hands. their manager won't really like it - and all the managers that had been making decisions based on the previous iteration of the code won't like it either.

it goes like this: the sad truth is that ninety percent of the time when your boss asks you what your opinion is, if you're like me: you have to keep your mouth shut and just give him back what he or she is looking for. i've seen too much heartbreak because i answered honestly what my opinion is about a situation or to provide a solution.

if your solution is radical enough then they'll file you as a nutcase.

if you give them the same brain dead options that they came up with while they were on their power lunch with their friends - then you'll probably be able to keep your job during the next wave of layoffs.

heros are zeros in the business context because they alienate their coworkers.

'innovative' solutions are only looked for from coders inside start ups.

Thursday, February 12, 2009

Company Fishing

one of the aspects of the web that has impacted the job market is that if you are seeking a job, then you should be aware of what you have put up online.

today's marketwatch.com has an article about why companies should be careful about trawling for data on prospective employees:

Various studies suggest that upwards of 40% of employers have trolled Facebook and other social networking sites for information on potential hires -- and that when they find negative information on these sites, more than 80% of the employers factor that information into their hiring decisions.

now they go to list four aspects that u.s. companies need to be aware of but there are a couple of really salient points:

one: finding out information such as gender or ethnic background which could negatively impact the perception of the applicant to the seeking company.

well, at the end of the day - from a prospective employee's position, i am not sure i would want to work for a company that took things like that into consideration in the first place. it's illegal in both canada and in the u.s as well.

but, the sad truth is that there are still a lot of racists in powerful positions so from a blogger/job seeker - that fact is not all too relevant to me. if the company doesn't want to hire me because of my gender or ethnic background or political views - then i wouldn't want to work for them in the first place.


two: trawling facebook is, at best, a grey area in terms of legitimate background checking.

from my perspective - that's not such a big deal. i don't blog about anything other than my takes on how technology impacts my life, i blog sometimes about machinima (a hobby) and i have been blogging fairly regularly over at ibankcoin.com about my take on the stock markets.

now that last bit, is where i actually would prefer a prospective employer would pay very close attention to what i blog because here is my position:

  • i like taking on challenges and solving hard problems.
  • i also try to be as cognizant of the "big picture" as it relates to business as i can be.
  • finally, i am willing to entertain "out of the box solutions" to the hard problems out there. case in point, would be my use of genetic algorithms and ID3 to find tradeable edges in the u.s. stock market.
i use an unorthodox style for my blog here - personally, in my private correspondance - i think that capitalization of letters is, well redundant. however, on my ibankcoin.com posts - i use upper and lower case lettering and ensure that my sentences and paragraphs follow a logical order.

that's because, really - if you are are a prospective employer and you found this blog because it was at the tail end of my signature, then i would hope that you find me to be a relestlessly creative type who enjoys solving problems and does not have any interest in being a drone that shows up and 9 and punches out at 5.

case in point, look how much time i spent on my ibankcoin.com posts - i was "King of the Peanuts" and blogged every day just about in december 2008 where i not only commented on the state of the markets but, i also presented ideas for trading solutions discovered using machine learning techniques.

if that's the kind of person you want - then you know how to reach me.

if it's not - rest assured, i probably don't want to work for you.

cheers.

Sunday, January 11, 2009

just relax, no depression here

today's globe and mail has a great article called cheer up: canada's in great shape:

Job numbers out yesterday - showing a jump in the national unemployment rate to 6.6 per cent - confirm that Canada has followed the United States into a recession. But the odds are that workers here will come through the downturn of 2009 with far fewer scrapes and bruises than they did during the two previous recessions. They'll also - for a change - fare markedly better than their American counterparts.

this is apparently, along with a near death experience for his minority government, what is driving the current prime minister's cooperation for a "massive stimulus" as described in a recent cbc.ca article:

Statistics Canada said Friday the big loss was the result of a drop of 70,700 full-time jobs. That was partially offset by a rise in the number of people working part-time.

what is interesting to note, when looking at the actual report, is that:

In December, private sector losses (-59,000) were partially offset by gains in the public sector (+21,000). Over the year, employment was up 1.4% among public sector employees, 0.6% among the self-employed, and 0.3% among private sector employees.

now when one looks at the location for the job losses, it appears that about 47% of the job losses were in alberta:

Alberta was the only province to show a large employment decline in December (-16,000), all in full-time work. With the drop in employment, the unemployment rate jumped 0.7 percentage points to 4.1% in December, still the lowest in the country.

this makes sense considering the parabolic rise in employment in alberta in correlation with the rising price of oil for the last five years. mostly, though the price in oil has risen because of a) the decline in the US peso and b) the fact that a great deal of speculation went into oil as a means of counter balancing against the falling usd rate.

now that the US is in the throes of depression-like unemployment numbers as noticed by Mish Shedlock:

When the U-6 unemployment rate rises above 12.5 in conjunction with a stock market that is down close to 50%, the CPI is negative, and nominal wages are stagnant, it's an economic depression. We are in one.


it's quite common to believe that the whole world is facing a depression. but, let's look at some facts because the truth of the matter seems to point otherwise:

1. canada, if no other country in the world, is more aware of what goes on in the US than even itself is. this allowed the country's business leaders to move in anticipation of the decline in export revenue proactively rather than spasmadically respond as has happened south of the border.
2. there was no real estate bubble in canada. this is because of two reasons; the first being that canadian banks are boring and their competitive market is small so they see little impetus to try new things out seeking every last customer as was the case in the states. the second reason is that, while there were big real estate increases, it was closer to being in proportion with the economy.

alberta, experienced the biggest rush in economy and consequently will have the rockiest roll through the correction.
3. the baby boomer retirement wave is coming as noted in the globe and mail article:

The prospect of a looming post-recession labour shortage promises to factor into employers' staffing calculations this time around.

"The whole phenomenon of an aging population will act as a brake on layoffs," predicts Desjardins Group senior economist Benoit Durocher. "Businesses will think twice before laying people off because it could be more difficult to find employees when the recovery comes."

and there we have it. there should not be as high a wave of layoffs in canada due to the fact that wise business leaders know that the people they let go of when times are hard, are going to not be there when times get better and they are in need of new talent.

in fact, any business leader worth their salt should be using this time to hire such talent as has come available due to other companies' stupidity.

believe me, there are still plenty of management in the world that only sees cost when they view their associates instead of value.