https://www.hbhau.net/feed/atom/ 2012-07-13T05:17:58Z hbhau.net Copyright 2012 WordPress http://www.hbhau.net/?p=804 <![CDATA[I don’t know, but I’ll find out]]> 2012-05-23T09:21:32Z 2012-05-23T09:21:32Z Brett Henderson brett.henderson@gmail.com http://hamstaa.hbhau.net Continue reading ]]> As a professional consultant or contractor your experience and skill in a particular set of technologies is one of the key reasons a company engages your services. However inevitably a question will occur that is outside of your knowledge. How you handle that question, in my opinion, defines a professional.

Depending on the individual, when a question arises that they don’t know the answer to, some people will resort to making something up. They may even become defensive and bluster when challenged or if additional questions occur.

I believe the correct response, and in fact the hallmark of a professional, is admitting that you don’t know and indicating you will find out. Importantly you need to then deliver on that promise.

But what about the alternative response? 

Ignoring the obvious unprofessionalism of it, at some point the person will be found out. When that happens, it will call into question everything they have said, including the things they do know about.

]]>
http://www.hbhau.net/?p=747 <![CDATA[Stop the Line]]> 2012-05-17T01:45:44Z 2012-05-11T11:00:07Z Brett Henderson brett.henderson@gmail.com http://hamstaa.hbhau.net In his recent post “Go Faster By Not Working” Adrian talks about how having the entire team stop when the build breaks can result in the entire project going faster. Lean manufacturing, the precursor to the “Agile” methodologies, has the concept … Continue reading ]]> In his recent post “Go Faster By Not Working” Adrian talks about how having the entire team stop when the build breaks can result in the entire project going faster.

Lean manufacturing, the precursor to the “Agile” methodologies, has the concept of “Stop the Line”. When a defect in the product is identified, the entire assembly line stops to locate and rectify the factors that caused the defect. 

The major difference in a software development “line” is that there is no physical assembly line, so it is easy to blur the distinction between what is and isn’t part of the product and hence the “line”.

In the Lean manufacturing model it’s acknowledged that the cause of the defect may be more than just a faulty component. It may be the tools, processes or even the skills of the people involved in the manufacturing of the component that contributes to the defect. With the line stopped, the right solution can be found before production resumes.

In software development however, development continues. One of the problems Adrian points out is that

if developers keep working while the build is broken, they build up a large backlog of commits which makes it more difficult to identify which revision broke the build

It goes further than that however. By continuing to develop, the team and management are assuming that the defect was caused simply by a mistake in coding of that feature or the build process. What if the problem is in the development process, the tools or the experience of the developers involved?

Adrian goes on further to suggest that some companies go a little closer to a “Stop the line” approach by putting 

an embargo on commits or close the source tree to prevent any further changes from being committed

Once again, development doesn’t stop, we simply stop putting things on the assembly line. Once the build breakage is resolved, all these potentially broken changes are pushed through.

By stopping the entire line, your development team can not only address the current defect, they can also perform a “Root Cause Analysis” of why the problem occurred, leading to better processes, tools and people.

So why do so many companies see “stopping the line” as a waste when it is the complete opposite?

I believe it’s based on a management perception that if you aren’t developing code directly related to the final product, in other words features or bug fixes, then you are not being productive. In addition, there is a belief that the number of hours spent coding directly relates to the productivity of the team. So a team is discouraged from taking the time to not only improve their tools and processes, but also to analyse what needs improving.

]]>
http://www.hbhau.net/?p=570 <![CDATA[Labels at Work]]> 2012-05-02T06:48:48Z 2012-05-01T23:15:08Z Brett Henderson brett.henderson@gmail.com http://hamstaa.hbhau.net I saw this great tweet the other day and it got me thinking about how we label people within our work place. "When you refer to your coworkers as "the business" you degrade the responsibility of those people to treat … Continue reading ]]> I saw this great tweet the other day and it got me thinking about how we label people within our work place.

"When you refer to your coworkers as "the business" you degrade the responsibility of those people to treat IT like human beings"

by Jason Montague

How many times have you heard the people in a development team referred to as “resources” but then heard the developers refer to management and sales teams as “the business”? It seems to me that we all suffer from a need to make people outside of our group “faceless”, but at what cost.

Over the years I’ve heard developers use the term “the business” when talking about the people outside of the development team and as a manager, I constantly hear developers or employees referred to as “resources”. We even use the term “resource management”.

Now I understand that when planning a project, it’s simple to bundle people along with hardware and software into your resource list to determine what it will take to complete. However people aren’t interchangeable in the same way as other resources. You simply can’t locate another developer with the same or similar skills and expect them to be able to replace someone else without a significant cost to your productivity and success.

But what about developers using the term “the business”? Is this any better than a manager referring to developers as resources? No. By referring to the other people within the company as “the business” developers are creating “the enemy” that binds them together.They are forgetting that the success of a product spans many groups either side of the development team but that ultimately we are all working towards the same end goal, the successful use of our product by a customer.

In both cases this terminology may seem harmless enough but ultimately these are all people, with the usual raft of issues, strengths, prejudices and capabilities. By removing the humanity from the label, you are changing not only how you think of them, but also how you interact with them.

]]>
http://www.hbhau.net/?p=690 <![CDATA[Inserting content into TinyMCE]]> 2012-04-30T08:31:45Z 2012-04-30T05:52:55Z Brett Henderson brett.henderson@gmail.com http://hamstaa.hbhau.net Continue reading ]]> When developing a plugin for TinyMCE, you often need to insert content into the document. In most cases, this content is at the current cursor position, or selection. But what if you want to enter the content at the beginning or end of the document, irrelevant of the current cursor position?

In the following examples I assume you have a reference to the editor (ed). This may be as simple as getting the activeEditor.

var ed = tinyMCE.activeEditor;

Unlike the insertion of content at the current cursor position, which simply uses the selection object

ed.selection.setContent("some content");

insertion of content into other parts of the document require the dom object.

Let’s start with inserting into the end of the document. Fortunately TinyMCE provides a dom api call to add an element. So, if we provide a reference to the document using ed.getBody(), we can insert a new element. For example

ed.dom.add(ed.getBody(), 'p', {}, “some content”);

inserts a new paragraph at the end of the document.

Inserting content at the beginning of the document however is a bit more tricky. In this case, there isn’t a helper, so we need to first create the new element, and then insert it before the first child of the document. Again, there is a dom helper to assist in the creation

var el = ed.dom.create('p', {id : 'test', 'class' : 'myclass'}, 'some content');

We then use the insertBefore() method providing a reference to the firstChild of the document.

ed.getBody().insertBefore(el, ed.getBody().firstChild);
]]>
http://www.hbhau.net/?p=596 <![CDATA[What’s it all about?]]> 2012-04-24T13:03:28Z 2012-04-24T23:00:20Z Brett Henderson brett.henderson@gmail.com http://hamstaa.hbhau.net A friend of mine at the end of last year posted on her blog "Mostly, I couldn’t work out what this blog was about. The older posts, while truthful, felt stuffy and unreal. Constructed because they were going public." After … Continue reading ]]> A friend of mine at the end of last year posted on her blog

"Mostly, I couldn’t work out what this blog was about. The older posts, while truthful, felt stuffy and unreal. Constructed because they were going public."

After neglecting my blog for most of last year I, like Charlotte, have asked myself what I want out of my blog.

When I started this blog back in 2007 the aim was to write about management as I progressed on my transition from developer to manager. It was also to provide others with an insight into me, be that employees or employers. This limited brief resulted in a very stifled and often "dry" set of articles.

In late 2010 I decided to add a bit of flavour with my "West End Wandering" posts. This provided me an avenue to write about my other interests, be it graffiti, coffee or food. The problem I found was that if I had a number of interesting ”West End” posts, they would “drown” out the more business related ones that the Hamstaa blog was about.

So what is it that the Hamstaa blog is about, and what do I want to get out of blogging?

For starters, the aim of the Hamstaa blog remains similar to it’s original brief. It contains articles on topics within my profession that I find interesting. They include comments on Agile, management, design and the art of creating software.

Blogging however is a way to express myself and my varied interests. It ensures I continue to improve my writing skills and provides me with a way to contribute back to the online community. With the relaunch of the blog, and the embedding of Hamstaa into a larger blog it gives me an opportunity to write about other interests I have while not detracting from the articles I have related to the software industry.

So welcome to the new Hamstaa blog.

]]>
http://www.hbhau.net/?p=206 <![CDATA[If you can’t say something constructive…]]> 2012-03-20T10:41:52Z 2011-02-08T11:08:36Z Brett Henderson brett.henderson@gmail.com http://hamstaa.hbhau.net Continue reading ]]> For the last 6 months I've been contributing to the TinyMCE forums. In this time I've noticed a couple of disturbing trends, one of which became quite evident in a recent members post to a very old thread.

From time to time people will ask questions about how to make TinyMCE do something that it's not really designed to do. This is mostly to output non-standard HTML and is usually due to the "client requirements". The most common one is the use of <BR> tags instead of <P> tags.

I'm not going to join into the argument of using <P> tags as a good friend and colleague posted a great round up of the importance of P tags already. What I'm interested in, is the way people respond both in terms of the initial question, and the followup responses.

From what I've seen, the response to these sorts of questions can occasionally be quite harsh and usually question "why" the person is even contemplating doing this. Now while I don't always agree with the tone of the responses, I can empathises, especially if they've had to answer the 100th question that has been addressed elsewhere, including the documentation.

The disturbing trend I've recently seen however is in the reaction of some people to this "criticism" or questioning. It appears people believe we should ignore the reason why someone is doing it, and simply answer the question. I tend to disagree.

As a developer I believe it's my duty to educate, as well as assist people. This includes both other developers and clients.

I believe that there are a lot of people out there who don't know any different with respect to the choices of output. By questioning why they are doing this and ideally providing the more acceptable alternative, the respondent is potentially educating them. Now it may be that the developer knows this already and is unable to educate their current client, but for others, they may now know an alternative. They still mightn't be able to change their clients mind this time around, but they will be better armed for future engagements.

]]>
http://www.hbhau.net/?p=166 <![CDATA[Preparation is the Key]]> 2012-03-30T02:55:11Z 2010-12-16T09:54:11Z Brett Henderson brett.henderson@gmail.com http://hamstaa.hbhau.net Continue reading ]]> I know, it seems obvious, but preparation is definitely crucial to the success of your presentation/demo.

The other day I watched a presentation by Jesse Desjardins called "You Suck at Powerpoint – 5 Shocking Design Mistakes You Need to Avoid".

Along with many useful design mistakes, he made an interesting observation that

Most experts say: An outstanding 1-hour presentation takes 30 hours or more of prep time.

— Slide 39

Shortly after I was doing a demo with our European sales rep. It was the first time we had demo'd together and during the post demo debrief our VP Sales, Tom Smith, observed that role playing the demo together could have smoothed out a few rough edges in our interaction. This was especially important given everyone on the call was remote from each other.

In the book "Great Demo", by Peter Cohan, he discusses the cost of a failed demo. As this can be quite significant, including loss of the sale, it pays to take the time to prepare properly.

Now this got me thinking – just how much time should we invest in preparing for a demo?

Obviously there’s the time spent setting up your demo environment, ensuring you have data/examples relevant to the customer and identifying the key features of your product that the prospect is really interested in. However there is also the time spent with the sale rep going over the "game plan" for this particular customer.

Now I normally work with our APAC sales rep and he and I have built a good report. Interestingly this was built initially face-to-face when he was on a sales trip to Australia. In the case of the demo with the European sales rep, while we had prep'd with the customer the technology to do the remote demo, we hadn't spent any time together going over how we would interact during the demo.

So, the time to prepare for a great demo can be quite significant and involve setting up the demo, and working through the approach with the sales rep. Of course, if you are doing a demo for the first time with a sales rep, then you need to invest even more time working out your interaction and how each of you prefers to work with the prospect during the demo.

At the end of the day, all of this effort is there to maximise your success in the demo and ensure you move even closer to closing the deal. So spending less time preparing could be lead to a failed demo.

]]>
http://www.hbhau.net/?p=172 <![CDATA[Good customer service isn’t hard]]> 2012-03-30T02:56:25Z 2010-12-07T07:23:03Z Brett Henderson brett.henderson@gmail.com http://hamstaa.hbhau.net Continue reading ]]> I was catching up on some blogs recently when I came across the article "Now that’s what I call service!" by Mike Taylor. Mike received some outstanding service from his local pub when he mistakenly left change behind. As an exponent of the Fish! Philosophy I can related to the idea that a business would want to "delight its customers" in this way.

His story reminded me of the differences in service I experienced earlier this year during the migration of our two phone lines when we moved offices.

We have one line for voice, and the other for internet, each provided by one of the two major telecommunication carriers in Australia. As such, migration was to be simply installation of a suitable line at our new office and termination of the existing line. Of course these things never go smoothly but it was the approach to customer service that surprised me.

When I wanted an update, or had an issue with the line Telstra was responsible for, I had to ring their support line, battle through the "voice recognition" system, explain to the person what we were doing, why it wasn't right, etc, then wait for a response. Everytime I did this I had a new person so the process was repeated.

Optus however allocated me an account migration manager and I was given their direct number. At any time I could call her up and she'd be able to give me an update, or get back to me with one if she didn't have details to hand.

Compared to the experience with Telstra, having one person to talk to with Optus greatly improved the process for me. This simple difference resulted in the customer service experience with Optus being a "delight" and contributed to a less stressful migration of their line than Telstra.

]]>
http://www.hbhau.net/?p=163 <![CDATA[Capability versus Competence revisited]]> 2012-04-06T10:19:12Z 2010-12-02T12:27:42Z Brett Henderson brett.henderson@gmail.com http://hamstaa.hbhau.net Back in 2007 I published a post about "Capability versus Competence" in which I espoused the virtue of Capability over Competence in IT and the difficulty in measuring it during recruitment but the value it can provide. I recently had … Continue reading ]]> Back in 2007 I published a post about "Capability versus Competence" in which I espoused the virtue of Capability over Competence in IT and the difficulty in measuring it during recruitment but the value it can provide.

I recently had a comment on my original post. In it the author indicated that "Competence" in their opinion was far better.

As they put it,

Capability always indicate the “possibility” that the person have to do something, but may be he can not really do it.
“I have the capability of speak in Chineese because i have all the neccesary for this, but i can not because i dont know chineese language”.

Competence is always the capability but shown in practice, This is not the ” possibility” its real, practical.

While I agree, someone who may be capable of performing a task may not really be able to do it, in the real world of IT, there are many situation where limiting yourself to just a set of competent skills may be detrimental. For example, it may mean you overlook an outstanding developer with the right development mindset but not a particular language, who would be able to take you and your business along with the changing landscape in IT.

The other problem I have with the comment is the example. I don't believe you can draw a parallel between a spoken language and a computer language. For one thing, the grammatical rules or "syntax" of a spoken language are significantly larger and more complex than a programming one. Now while I can speak, I therefore have the Capability to speak another language, I don't yet have that Competence. However, I am Competent in many computer languages, and therefore have the Capability to quickly and easily master a new one.

In the IT world, competence does play an important part, but I believe if you rely entirely on that alone in your decision to hire someone then you are selling yourself very short.

]]>
http://www.hbhau.net/?p=151 <![CDATA[Just in Time Risk]]> 2012-03-30T03:01:24Z 2010-11-24T06:53:09Z Brett Henderson brett.henderson@gmail.com http://hamstaa.hbhau.net Continue reading ]]> We are getting our bathroom renovated at the moment, and the completion date has been extended by a couple of days.

I guess it should have been expected, but what was interesting was that it seems the delay is not due to unexpected issues in the fit-out (as in water damage, etc) but rather the delay in the supplier getting the taps to the company doing the work.

Talking to the plumber, the problem lies in the suppliers not having stock sitting in local warehouses. Now this wouldn't have been a problem, but the time from agreeing to do the project, and it starting was very quick. As such, the time for the delivery of taps was longer than the time until they were needed. So if we weren't able to kick off this project so quickly, then they could have ordered those items in advance enough to get them here in time.

This got me thinking about Lean development practices and the “Just in Time” approach. If we consider that the aim is develop something “just in time” for when it is required, then it is possible that an opportunity may arise that, to take advantage of, would reduce the available time to develop and subsequently cause delays.

Of course the trade-off of doing “Just in Time” is that you aren't building a stock-pile with all the inherit costs and problems. It does however mean that the critical path analysis for taking advantage of a sudden opportunity does require you to know the “Just in Time” periods that could affect you.

]]>