Mar 5 2012

It’s Always Your Problem

As a business, if any client has any sort of problem using your software then it’s your problem. Non technical users will have trouble using your software because of an array of issues, such as permissions, settings, configurations, other software, and external devices. No matter what, you have to make the effort to get them started using with your software or not. I’ve seen issues at different client sites because one software application required one version of Java and another required a newer version. Typically you can have multiple version of Java on a computer, but these two applications demanded that only over version exist and that it be the one they require. I’ve seen issues where end users print from an application and complain because they don’t see the document printed in their laser jet, it was printing in another printer in another floor and they didn’t know how to configure it correctly.

As a development lead, if any programmer has any sort of problem with your architecture then it’s your problem. If someone doesn’t understand an design and they have to work with it, they will make changes that can cost you in the long run. If you make a system overly complex, there will be a time that you will have to delegate that to someone else and they will not understand it as deeply as you and will make changes to fix the bug of the day, but cause another problem to be discovered later.

Whether an end user doesn’t know how to change the printer or a new developer doesn’t know how to implement your design, it’s your problem and it should be addressed with something other than blaming the confused.

Sometimes it’s because you took on the wrong client, or hired someone without the technical background, but it is still your problem. Often times, the problem is basic communication and availability of training material. Always, examine these situations and see how you can improve the process, training, and communication of your team.


Apr 14 2011

Keep is Short and Simple

No one has time to read long rambling text. One of the great things about Twitter is that it has a 140 character limit, it forces people to be concise, precise, to the point. It is so much easier to follow someone twitter than someones blog. This is also true for corporate communication. Within a team, the best way to ask short question is through instant messages such as Skype. The one draw back to instant messaging systems is that people expect instant responses. But for quick yes or no questions this is the best approach. More detailed questions can be escalated to email. But always be short and precise in emails. Always stay on point when emailing someone. If you are making multiple points separate them to their own bullets or paragraphs. Don’t intermix different ideas in the same paragraph. Always outline and simplify key points to one line bullet points. When asking for something, be clear as to what you are requesting or asking and always outline what you have tried, research, or done prior to asking.

Effective communication is a skill. There are tools, habits, and best practices that can help maximize the results of your team communication efforts. One of my most effective tool in communicating is to keep to the Three Sentences practice. One way to successfully achieve reply within three sentences is to never answer the same question twice, to refer to existing documentation, wiki sites, and other resources.


Apr 11 2011

Hire Smart, Not Seniority

The folks of 37signals have written on Years of Irrelevance that years of experience is not a good enough indicator to hire people. Marissa Mayer and Joel Spolsky recommend to hire people that are smart and get things done. From my years of experience, and irrelevance, I believe this to be true. People that don’t get things done, will somehow delegate it to someone else that is most likely already getting her own work done. I my career I have seen people that don’t know how to get their stuff done (practice) but can talk a good game (theory) and are therefore promoted to manage people instead. The problem is that if they couldn’t get their work done, how can the manage others to do theirs? I’ve seen teams waste time, energy, and opportunity by not working smart, asking the wrong questions, and focusing on the what is not important.

Here is another more concrete example that I experienced this week. I recently closed a feature request and the bug tracking software we use emailed the requester back with the status. I immediately received a forward from the requester asking if the feature will be available in the next release. Replied replied that it would be available in the next beta release. I then got another email back asking a second question, if there was anything required to test this feature. I reply back with the location of the documentation, our testing procedures, and installation process. Then I get a another email saying, “Perfect. You rock!” With those words I knew I should brace myself for a screw up.

As predicted, right at 7:30 PM the feature request was rejected, no update or comments were given, just simply rejected. I immediately knew what the problem was, step in the release was not run, the database wasn’t migrated. This is what happens when you don’t hire smart. You will spend needless hours emailing back and forth one question at a time, back and forth like email ping pong.

If you don’t hire smart, you will find yourself repeating yourself in emails what is already in documentations, processes, systems. This is how you can easily spend all day in building, installing, testing and find out that you have to do it all over again because someone missed one step out of three.

Hire smart, not experience or seniority. Hire people that get stuff done, not have elaborate reason why it doesn’t get done. Hire those that work the smartest, not the hardest. Some people compensate working smart hours for long hours, they will stay long hours doing repetitive mind numbing tasks and not think of ways to automate, streamline, or reduce those tasks. You don’t want someone to reinvent the well, you need someone that makes it turn.

Reinventing the Wheel

Reinventing the Wheel by Doviende (http://www.flickr.com/photos/doviende/)