May 2009 Archives

I was speaking with a colleague of long-standing (an old friend). He's newly unemployed. He's been a tester for years, and for the last few years has been a developer. He'd like to keep doing development kinds of work, possibly creating automated tests or for a product. But he's resigned himself to being a tester.

I asked him what he wanted to do. "Oh, development. But no one will hire me for that." I asked why. "Because I was a tester for so long".

Your attitude around a potential job will shine through in an interview. If you would not hire yourself for a particular job, no one else will. Part of your job search is to manage your reactions to a potential job as you search. Some ideas about what you can do:

  1. Know what you want to do. If you see a job you could do, but it's not what you want, reassess whether you want to investigate this job. If they hired you, would you work there? Sometimes the answer is "yes, because I'm broke." But more often, the answer is "Hmm, that's not really the right job for me."
  2. If you're relatively new to a particular role, and you have a ton of experience in another role, make a list of all the reasons why your more junior role is the role for you. Go back to your resume and take a look at your accomplishments.
  3. Use those accomplishments to explain your value to other people. Take the time to articulate your story of why you are valuable in your preferred job. My colleague has a bunch of stories to support how his testing expertise makes him an amazing developer, especially in a test-driven environment.
Your attitude about a potential job has a huge effect on an interviewer. What does your attitude say?
You might not be aware of the pattern, "Broken Windows." Well, I think it's a pattern. It's at least a parable. The idea is that if you allow a broken window, pretty soon the neighborhood deteriorates, because other people think it's ok to leave broken windows, litter, graffiti, and more. Soon enough, you have a neighborhood no one wants to live in.

We see the Broken Window pattern at work all the time: builds that stay broken or take too long, defects that remain open, coffee machines where the coffee has boiled away, recycling containers where no one has taken out the recycling.

Broken Windows matter even more on a resume. If you can't somehow help the hiring manager see that you don't tolerate small problems on your resume, the hiring manager thinks you can tolerate them at work.

Make sure someone else reviews your resume. Look for Broken Windows in all of your work. Talk about it in an interview--you'll make points :-)

Don't leave a mess for other people to clean up. They won't.

The Web is broken in lots of ways, one of which is that its content is mostly unstructured. Most web pages have a title and some content, and that is about all you can assume. Researchers and standards bodies have been trying to impose more semantic order on the web since its earliest days, by adding metadata so that web crawlers can parse the content accurately, rather than relying on inference. These efforts have had little success outside academia; and the semantic content of typical pages has arguably got worse rather than better, thanks to the trend towards richer pages using JavaScript and Flash, rather than simple text marked up with HTML.

Microformats are a softer approach to adding metadata, using standard HTML but with conventions that identify certain types of content, such as name and address details (hCard), events (hCalendar), or even CVs (hResume). If you have web pages that include content of this type, you can usually mark it up according to the microformat specification without damaging the appearance of the page. The benefit is greater searchability; in fact, you could think of it as a kind of search engine optimization.

A good example is hReview, a draft specification for reviews of anything from products to events or places. If I'm considering a purchase, I often type in a search for "product x review", and then find myself sifting through lots of useless results, because all the ecommerce and affiliate sites know we do that kind of search, and pretend to have reviews when really they do not. If all the sites used hReview I could do more precise searches, perhaps specifying "only reviews in the last 12 months", and sorting by rating, and the search engine could structure the results nicely so I can see at a glance the author's name and an extract from the review itself.

Simple standards like this can have a huge impact. The whole blogging revolution was driven by RSS, which itself is a kind of microformat for news.

The snag is, they have to be widely adopted to be useful. I first wrote about microformats in 2006, but despite my enthusiasm they have had little impact to date. That may be about to change. On Tuesday May 12th the mighty Google announced a new feature called Rich Snippets, which means it will be exposing microformat metadata in its search results, along with another more generic type of metadata called RDFa.

It all sounded familiar to me, as the previous weekend I attended Yahoo Hack Day in London, and heard about its Search Monkey project which also uses microformats and RDFa. Yahoo was there first; but it is Google that has the power to shake up the web.

Should you care about microformats? If Google is serious, then it will have a wide impact. Business names and locations should be marked up with hCard, for example. Anyone designing an Ecommerce site with user reviews should be looking at hReview. Although the list of microformats Google is taking note of is small at the moment, if it catches on that list will inevitably grow.

The message that Google is giving an advantage to sites that use microformats and RDFa will be heard loud and clear by the SEO community, and given the commercial importance of effective search ranking this could grow quickly.

Then again, I may be over-optimistic now (and yes, I do think it is a good idea) as I was in 2006. Watch this space.

I was speaking and teaching last week at the PMI Regina's PDC (Professional Development Conference). I taught an estimation workshop and we had some illuminating discussions about what to do when people on your project can't estimate. We all agreed people tend to be either optimistic estimators, where they think the work will take less time, or they will be pessimistic, where they think the work will take longer. Rarely does someone change. Our discussion about what to do when someone consistently miss-estimates was the part where I saw servant leadership.

One project manager said, "I don't want to crush someone's hopes or ignore their hard work, but how do I explain that each and every assignment he's been late on and I just don't believe his estimate?" Good question.

People need feedback on their estimation, and a project manager might be able to help the person see where this estimation suffers from the same problem as the previous estimations.

That's where the servant leadership comes in. A PM who's not a servant leader will think, "Hmm, your last 5 estimates have been off by 50%. I'll add 50 %," and be done with it. But a PM who is a servant leader gives feedback and asks for a re-evaluation, "Joe, you might not know this, but your most recent 5 estimates have been under-estimated by 50%. I don't want to blindly pad your estimate. I'd like to help you learn to estimate better. Is that ok?"

If that's ok with Joe, now you have a way to help the other person learn to estimate better. I like breaking tasks into inch-pebbles (one- to two-day tasks that are either done or not done), starting with user stories, or using Delphi estimation as a way to help people learn to estimate smaller tasks and see when that work is actually complete. One guy I worked with said, "I always thought it just took a few minutes to set up a new branch. But when I tracked what I did, I realised it took me closer to an hour, by the time I was actually done and ready to start writing code and tests. Who knew?" Until he created inch-pebbles he had no idea how complex his work actually was.

Great project managers serve the project and the people on the project. They don't take estimates at face value, without understanding how the estimate came to be. But they don't autocratically change the estimate without providing feedback.

If you're a leader in the organisation, whether you're a team lead, a project manager, or a manager, think about how you can serve the project, the organisation, and the people. You'll get better results if you remember the people.

Recently I have been working with Microsoft Silverlight, looking at how to put together a simple database application. I am no designer; my interest in Silverlight is to do with cross-platform deployment, a consistent runtime, and an alternative to HTML and Javascript. It seems I am not alone in this respect; the Silverlight forums are dominated by programming rather than design queries. Here are the message counts at the time of writing:

  • Programming with .NET: 61,022
  • Designing with Silverlight: 4,912

The Silverlight 3 wish list is also illuminating. You soon get a feel for what developers are most frustrated about, such as: no printing support, no easy way to save documents to the user's hard drive, ugly fonts, no clipboard support, no access to devices like web cams and microphones, and no support for WSHttpBinding which adds transactions and reliable messaging to web services.

Only a few of these things are fixed in the Silverlight 3.0 beta. There is a file save dialog, and text rendering is improved though Microsoft is a long way behind Adobe Flash in this respect.

That said, Silverlight 3 does offer substantial improvements for business applications. For example, in Silverlight 2.0 you have to handle client-side validation manually, whereas Silverlight 3.0 adds validation support similar to what is in ASP.NET. There is also a new server-side piece called .NET RIA Services, which wraps key areas like authentication and transactions. Although Silverlight cannot do real transactions, .NET RIA Services introduces changesets, which let you bundle a set of database updates into a single web service call. You can also include arbitrary custom operations, such as approving a purchase order. On the server side, where you do have transaction support, this is processed and can succeed or fail as an entire unit.

Despite the snags, there is a lot to like in Silverlight. As a GUI framework it works really well, and it is good to know that special effects and transitions are available are available if you need them. Microsoft appears to have executed well on the challenge of creating a smaller, cross-platform build of the .NET Framework, which is really Silverlight's key advantage.

Another plus is the ability to work in Visual Studio with the server and client projects side by side, integrated for debugging. You can set a breakpoint in the Silverlight client, and another in the ASP.NET web service implementation, and it just works.

Presuming that Microsoft's continues its rapid pace of Silverlight development, my guess it that it will evolve into an excellent client for .NET applications, since this is what the community is demanding. As yet though, Silverlight has made little impact on the wider world of web design, which remains dominated by Flash, and it is hard to see that changing.

silverlight-app-small.jpg

Current Vacancies from CWJobs

(* Required field)










Preferred format
   
Normal 0 false false false EN-US X-NONE X-NONE MicrosoftInternetExplorer4