Productivity Tip: Talk with Your Customer

It’s easy to work hard and create something nobody wants - I don’t consider this a productive use of your time, while technically you are producing something you can get nearly the same effect by doing nothing, that is why it’s important to talk with your clients or customers.

You have to talk to your customers directly, don’t settle for documents (requests, specification and such) or experts that explain what the customer wants – and you have to ask questions and find the motivation behind what the customer is asking for.

The customer doesn’t know what you can do for him or her, usually the customer can’t even clearly describe what he really wants and most of the time what the customer wants is not the best solution for the customer’s problem.

So, it’s up to you, before getting your work done you have to make sure you are working on the right thing and the only way is to have a nice long talk with whoever you do the work for.

For a concrete example read If You Want to Write Useful Software, You Have to Do Tech Support.

Blog Design Updated

I’ve upgraded the blog software and updated the blog design, on first glance the new design may look almost the same as the old design just with a smaller page header like the rest of the site but actually the new design has some bigger changes.

First, if you are reading this on the web (as opposed to an RSS reader) you probably see the big box at the top telling you who I am and inviting you to subscribe to the RSS feed and follow me on twitter – this box will only appear the first 5 times you visit the blog (if you refresh 5 times it will go away).

Second, just after the text of every post you can see an improved “post to twitter” link (with a built in URL shortener) as well as links to e-mail the site or post it to delicious, digg, and .net kick.

You even have a short URL for every post just in case you need it.

If the blog doesn’t look good it’s possible you are seeing a combination of the new design with old files from your browser cache, if you refresh the page the problem should go away.

If you have any problems or comments on the new design just leave a comment on this post or use the contact form.

Productivity Tip: It’s Ok to Fail

Yes, it’s ok to fail, it’s ok to make mistakes and it’s ok to throw away hard work because of your mistakes – it can even make you more productive.

We all learn from an early are that failure is bad and that avoiding failure is good – but that’s not always true, the hard truth is that avoiding failure isn’t productive work.

It’s easy to spend more time preventing failure than it would have taken to fail in the first place, when you are going to start a new project you can plan, analyze and research all aspects of the project, you can prepare detailed documents and make absolutely sure the project will succeed before starting – and then the project will either succeed because of your preparation or fail because of things behind your control (like a sudden world-wide recession).

On the other hand, you can cut the planning phase short and do only the most basic analysis in order to get the general idea about what the first phase of your project will look like and start working – this way you have a very good chance of failing because of mistakes you made – but you may just fail and move on the next project in less time than it would have taken you to complete the detailed plan.

In the end of the day you are much more likely to succeed by accomplishing more than by producing just one perfect project.

Make Time for Marketing

I’ve accidently found the post Launch a Business, Not a Side Project and I couldn’t agree more, it talks about web applications but it’s true for any business.

Marketing (especially effective marketing) is difficult and it takes time and effort, usually a lot of time and effort – and it’s also the difference between the successful products and companies and those that are just going along barely breaking even (or failing entirely).

yaTimer 2.4 Released

I’ve just uploaded the new version of yaTimer to the server, you can download the latest version of the best time tracking program or upgrade from previous versions at the usual locations.

The biggest feature in this version is the ability to synchronize with a portable copy of yaTimer, this has been the number one request ever since it’s been possible to run from a portable drive, completing this single feature has taken way longer than I planned for it, it is the reason most of the features planned for this version were delayed to the next version and also what caused a delay of more than a month from my original release schedule.

There are also new report customization abilities, some new reports and a lot of minor improvements and bug fixed.

What Percentage of Users have the .net Framework Installed (and what versions)

When I read forums used by software developers I often see people saying they can’t use .net (or some feature of .net) in their product because .net is a huge download, from my experience installing .net from the setup program of your own software is really not a big deal but I wanted to see the real numbers for .net installations.

The numbers are based on visits to this site from mid December (when I installed a new analytics software that let me get this number) until mid April (when I wrote this blog post), because I regularly blog about WPF visitors of my blog tend to have the latest version of .net installed, to remove this bias I only included people who downloaded the trial version of yaTimer (unfortunately programmers reading about WPF are highly unlikely to download time tracking software).

I used the browser user agent string to determine the .net version, Internet explorer always report all installed versions of .net (I disregarded all but the latest), FireFox reports only the latest version and only if it has the ClickOnce plug-in installed, other browsers (Google Chrome, Opera, Safari …) don’t report the .net version at all.

39% of visitors are using browsers that don’t report the .net version – I don’t have any information about those so I’m going to disregard them, I’m also going to throw away results from FireFox because I think they produce bias because the ClickOnce plug-in is included with .net 3.5 SP1.

Here are the results in all their glory:

  Version Percentage .net installed base pie chart
 
none 17%
 
1.0 0%
 
1.1 3%
 
2.0 24%
 
3.0 30%
 
3.5 5%
 
3.5SP1 21%

Or, to put it another way:

17% of visitors don’t have .net at all

80% of visitors are able to run .net 2.0 software without any lengthy download or installation.

56% of visitors have .net 3.0 or later and can use WPF, WCF and WF.

And this information is from mid April 2009, Microsoft is rolling out .net 3.5SP1 via windows updates for everyone with .net 2.0 or later, so I expect the numbers to get even better.

Follow me on twitter

For all you twitter lovers out there, you can follow me on twitter (or send me messages, obviously) at @nirdobovizki, this is especially effective if you want to know when I post but you don’t like RSS.

Free Mouse Pointer Image

Here is a free mouse pointer image you can use whenever you want, for example you can add it to a screenshot to show someone where to click.

The image is slightly larger than a real mouse cursor, isn’t completely white and has a large drop shadow – all of those make it much more noticeable when copying it into a screenshot.

You are completely free to use this image wherever and however you like, you don’t have to give credit (but a link back will be very appreciated).

The image is a PNG with transparent background, just right click and select “save image as” to save it to your computer.

WPF Printing Part 3 – Sizes

In the previous post in the WPF printing series I used a lot of numbers for sizes and positioning, I want to take this post to explain those sizes.

Unlike WinForms where each pixel is really a device pixel in WPF each “pixel” is actually 1/96 of an inch, this means that most of the time each WPF pixel is one pixel on today’s screens (that are usually 96DPI).

For printing this means that when you specify a “pixel” size in WPF this will always translate to the same size on paper, regardless of the actual printer you use.

Also, because most printers are at least 300DPI (usually much more) the printing precision is much more than one pixel, for example, for 600 dpi each real pixel is 0.16 WPF “pixels”, so placing elements at strange locations like this made up coordinate (57.3,55.12) actually makes sense (on the screen this usually leads to blurred controls).

Translating between WPF pixels and common sizes used in printing like inches, millimeters and points is really easy just multiply by the number in the table.

 

WPF to …

… to WPF

Inch

0.01041666

96

Mm

0.26458333

3.779527

Point

0.75

1.333333

In the next post we’ll continue with printing, specifically we’ll write a print preview feature.

Productivity Tip: Think

Most people go through life without really thinking about what they are doing, they do things because that’s the way it’s always done without really stopping to think about the reasons behind what they are doing.

You can be much more effective if once in a while you will just stop and think – ask yourself is there a more efficient way to complete what I’m doing right now? Is what I’m doing important enough to do it in the first place?

You’ll be surprised how much work you can save by just thinking about what you are doing.