Particularly like the abstract from Kent Beck on WordUnit a docuement testing framework.
Category: Uncategorized
Good Product Developer Interview Questions
- What’s your favourite programming language?
- If you could add one feature to programming language <x>, what would it be?
- Describe the project you most enjoyed working on?
- What is the largest project you have been a part of?
- Describe a project where your deadlines started to slip, how did you handle the situation?
- Whats the biggest mistake you’ve ever made?
- What was your worst job?
- What was your best job?
- Describe your current development process?
- Describe your preferred development process?
- How do resolve technical issues that are related to; a bug, an R&D issue, a lack of knowledge?
- How do you deal with difficult peers?
- What makes you as good as you are?
- Who is the best person you ever worked with?
- Who is the worst person you ever worked with?
- What would you do different in your next project?
- Do you want to follow a technical or a management development path?
- Have you ever written a technical paper?
Difficult Conversations – How to discuss what matters most
I just finished rereading a book my good friend Hugh gave me when I was working at Cape Clear. Its called Difficult Conversations and its written by a group who worked in the Harvard Negotiation Project. The books introduction is typical of the general style,
“Asking for a raise. Ending a relationship. Giving a critical performance review. Saying no to someone in need. Confronting disrespectful or hurtful behaviour. Disagreeing with the majority in a group. Apologizing.
At work, at home, and across the backyard fence, difficult conversations are attempted or avoided every day.”
The book then goes on to describe how these conversations can go wrong, where they go wrong but most importantly, it equips the reader with a set of tools to make the process less fraught with fear and anxiety.
They specifically talk about changing the terms of a conversation from a message delivery stance to a learning stance and they refer to the three parallel conversations that are going on in any difficult conversation,
- The What Happened Conversation: Both parties views of the events, where both sides only have a partial view of their counterparties situation.
- The Feelings Conversation: What are my feelings, what are the other persons feelings, do my feelings have validity, show I show or conceal my feelings.
- The Identity Conversation: What does this conversation mean for me, am I good or bad person, competent or incompetent, lovable or unloveable.
Once you can decipher and seperate these conversations you begin to understand that these are the same conversations your counterparty is having. They then they provide tools to analyse and restructure the conversation so you should get into less difficultly.
A typical device is “and stance” which allows you to articulate seemingly contradictory positions. By using the and stance we avoid contradicting ourselves while at the same time including the other persons point of view. I realise you are our most experienced engineer and I still need you to arrive on time each morning. I really appreciate your efforts during the delivery push last month and I still have concerns about your overall suitability for this role. This and many other devices like it allow us to work through situations that previously would cause us greate distress with renewed enthusiasm and hope.
This is a short book that is easily consumed in a single sitting, but if you are like me you will find yourselve returning to it on many occasions.
Ten things that will get your software out the door on time
- Have a plan with an end date. Do the plan in reverse working from the point where your customer is using your software to where you are today. Do all the tasks fit in? Then your first estimate end-date is ok, for now.
- No Funky fractions. Try and avoid scheduling more than two resources on a task (ideally one task, one person). No 0.25 day tasks, No 1 day tasks with three people allocated.
- No go dark tasks. Avoid tasks that span more than 5 days. These are the critical path tasks that screw the whole plan. Watch any task less than 5 days that leaks across a weekend, these are the other boat sinkers.
- Convergence. Expect that your plan will be full of holes when your start so focus on convergence. The simplest goal is to have completed half the tasks when half the time has been consumed. If this is not then case then you need to actively replan.
- Contingency. Include a margin of error (20-40% depending on skill, experience, project complexity etc.). Your goal over the lifetime of a series of projects is to reduce this margin of error, rather than trying to give yourself an hernia constantly trying to hit unrealistic or badly estimated dates.
- Get stable. Your know or should know your XP drill by now. Get an end to end slice of functionality working early and build out from that core, refactoring as you go.
- Bring out your dead. Things will go wrong, get used to accepting that. Visibility is all. Don’t try and mask or conceal problems in the hope they will go away. Especially admit when you personally screw up, it happens, just make sure the process is a learning one for all concerned.
- Track your bugs. Bug count will keep you honest. Simple counts, no of new bugs each week (each day during testing), number of bugs fixed each week, total number of bugs, total number of bugs broken down by severity. This can be parlayed into simple ratios that will govern how much quality you work into your product. A good bug curve can pretty much predict when you can ship.
- Quality = Beta. You can delivery quality software without a beta period. It just isn’t possible to replicate all the weird scenarios your customers are likely to articulate so plan to beta.
- Ship something. Better to ship half the product on time than the whole product 50% later than planned.
But you knew all this, didn’t you 🙂
Tools to blog your world
The following are three pretty cool ways to write your blog without resorting to the locally installed blog tools (which admittedly are much better in WordPress 2.x).
- Flock: Replacement Social Browser. Has a good blogging tool, supports categories (in wordpress) and has a wysiwyg editor (all these editors seem to be reminscent of the excellent FCKEditor). However it is still in beta so probably not for the faint hearted.
- Writely: Writely pitches itself as a document authoring and collaboration environment. However it does provide an excellent platform for those longer articles as it provides auto-save functionality. Doesn’t allow you to set categories for your posts so this has to be done after thef act.
- Performancing: My own current favourite (if you use firefox). It runs as a plugin in FireFox, supports, multiple blogs and categories and pops up as a split screen allowing you to been the page you are looking at in sight.
What’s your favourite blogging tool?
My experience is limited to WordPress, what do Typepad, Moveable Type and Blogger users use?
Make your own Indian Movie
Darren came across this site where you can make your own indian movie with subtitles. Darren’s attempt is pretty good so I had to see if I could come up with something equivalent. You decide who should go to hollywood…
Some straight talking to Rabobank
How in the name of all that is sane can a modern business get away with a piece of Web Crime like the truely awful Rabobank registration screen?
So there is the usual sloppiness you regularily come across on “my first web form websites”, things like having to scroll the page to fill in all content, poorly identified mandatory fields, failure to highlight all mandatory fields above the fold etc. However worse is to come.
As this is a joint account, there are duplicates of all fields. So no surprises when I clicked next and got a utterly useless message Office Number must be a number. There were two office numbers, and they both looked like they had numbers in them to me. Much visual scrutiny finally identified a space inside the first business number, an artefact of cutting and pasting the number from a application that understands that phone numbers are not actual a member of any of the normal integer groups defined in mathematical theory.
So finally got to a summary screen and realised I’d forget to change my partner’s name to “Ms”. No problem thats what the back button’s for. But no, arrrggh, the back button flips me past the registrations screen to the start of the whole process and all my data is lost.
This is the “The straight talking online bank”.
I don’t think so mate….
Underfilling – Over Selling
15% free, also could be described as we actually filled the original container.
Underfilling – Carrs Table Water
About 5-6 biscuits missing.
Underfilling – Yorkie
This and the next entry are some other underfilling examples captured in the last few days.


