Debugging by comments

In: Software Development

Posted by Geries Handal

15 Jul 2010

You have written your code, ran it and looks ready to be committed. Once is committed it can be tested by another member of a the team. However,why no write some comments for your code before committing it, which will help you find some bugs.  By writing comments, you will have to dissect your code piece by piece, which will lead you to find common errors and makes your code understandable for other (and your future you).

Is not just about just writing one liners, write them with the following set of mind: it will be read by somebody that knows nothing about the applications or program, imagining the target reader is a new member of your team. This will help you see your code from a different perspective and go into details. By submerging in to details, you will  find bugs in your code before going into the testing stage.

There are two advantages of this method: First your code is readable and readable code is better code. Second, you save resources by saving a bug report. Testers will not test code, find bugs and return it to you. You will NOT stop your current task and go back to fix a careless bug and resubmit it for testing. Instead you will spend your time producing new code.

Share and Enjoy:
  • Twitter
  • Facebook
  • del.icio.us
  • StumbleUpon
  • Digg
  • Tumblr
  • Reddit
  • Technorati
  • Google Bookmarks
  • email

Let’s stat with “Why”

In: Business

Posted by Geries Handal

5 Jul 2010

On the weekend, I went shopping for a pair of sneakers. I needed something comfortable for my summer travels, which provided a much needed arc support. This is due to being flat footed and been giving me problems when walking a lot. In addition, they should later be wearable to work and everyday commuting. My decision: the Nike Air Max Classic BW.

I got to the store and when I saw the high price, plus all the colors and similar models, I stalled and wasn’t totally convinced. Still after some browsing and a coffee, I decided to ask for two pairs to try them all. I was disappointed because they didn’t provide the support I was looking for, although they looked cooled than I thought.

Things changed when the salesman got some insoles with arc support, the sneakers felt  much, much better. When he asked me “what do you think”, I gave him the thumbs up. Then asked if the insoles were included, and he said I had to pay extra for them. At this point, I got turned off.

Note: Looking at this from a third view, when you have a price sensitive customer and then you make him pay more for what he/she has already committed too (in this case more than 10%), then the deal breaks up and there will be no sale.

At that point, I said I wasn’t going to buy them because, it was already an expensive product and I had to add more to actually serve its purpose. While he was trying to convince he can’t give it to me for free and they are good insoles and that they have a warranty and “bla bla bla”, I realized something: what I really need was the insoles with arc support, not a new pair of sneakers.

I bought the insoles and left the store with them in my old sneakers. After three days, I assure you: that was the best possible decision I could have made. It will have been a waste of money, to buy new sneakers when most of the non running shoes come with neutral arc support.

Most of the time, customers want to solve a problem and they think that the product/service you offer is the solution. And most of the time we are wrong, that is why is important to find out: WHY they think that is the best solution.

In that process of finding out WHY, you might not sell them anything and the customers just needs to tweak something in their current solution (that being sneakers, network, website, etc). However, a happy customers has a bigger possibility of returning and even better bring it’s friends. But, if he/she is not satisfied with the overall experience, forget about it. you lost them, because is about building relationships and thinking long term, not just selling.

Share and Enjoy:
  • Twitter
  • Facebook
  • del.icio.us
  • StumbleUpon
  • Digg
  • Tumblr
  • Reddit
  • Technorati
  • Google Bookmarks
  • email

The Fukunaga approach to UX Design

In: Software Development

Posted by Geries Handal

17 Jun 2010

Sin Nombre” is the title of the independent movie, written and directed to Cary Fukunaga. His approach to writing and directing was that caught my attention some months ago and thought it will be usefull to apply in  User eXperience (UX) design. First lets see what the movie is about, here is the synopsis:

After murdering his gang’s leader, a teenager joins a family of Honduran immigrants making the dangerous journey across Mexico to the United States, avoiding a fellow gang member who has been sent to kill him along the way. [Source Yahoo Movies]

Fukunaga’s approach was to do research before starting to film anything. He travel with illegal immigrants in trains, talked to gang members or “mareros” (the local term for this type of gangs) and even had two ex-mareros help him with the slang and way of expressing.

The movie has been acclaimed internationally and is very well done. One of the strongest attributes is attention to detail (which leads to some strong scenes), high pace and scenery. Things Fukunaga couldn’t have figured out without the research.

In the case of software, research is needed if we want to provide a pleasant UX experience to our customers.

Most of the time we create software to solve a problem. If we follow Fukunaga as example, we should not just interview the people the suffer the problem, but “ride the train” with them. In other words, let them take you through that moment in life where they suffer the problem. If we continue with the movie theme then we can conclude that:

story boards are to sketches as filming is to programming.

UX design is about continuous improvement.

We have done the research, now we need to determine if our conclusions are correct. So, we need make a rough sketch of the software and show it around the future customers or users. Then after some feedback, lets redraw the sketches with more detail. We continue doing so, until we have something that we can take to the next level.

The next level is to build the core of the software. This means that we only include those features and functionality that is the least needed to solve the problem. Once we have a good core, then the rest of the features will be easier to add. In addition it will keep things simple, which will save some resources. But more important it will give you a application that some of your customers can try and give you feedback on.

It is always about continuous improvement through research and attention to details, unlike movies there is no final version.

Share and Enjoy:
  • Twitter
  • Facebook
  • del.icio.us
  • StumbleUpon
  • Digg
  • Tumblr
  • Reddit
  • Technorati
  • Google Bookmarks
  • email

Playing the “catch-up” game

In: Business

Posted by Geries Handal

28 Apr 2010

image 

[Image source]

There are only two ways to catch up a “market leader”:

1. the leader makes very bad decisions that eventually comes back to haunt him and leaves him vulnerable.

or

2. you buy a startup or small company that has the innovation, but lacks the resources, giving you a better possibility of catching up.

Either is very hard, just look at Microsoft. Vista really sucked, but still they are the “market leader” operating systems. Or see at Google, they bought Android and see where they are today, still on the hunt for iPhone and trying to be the dominant mobile platform.

So, what to do? Stop playing the game of others and play your own. The catch game is like gambling in a Vegas casino, you will win enough to continue betting, but will never win against the house or break even. Do something different, which makes you the leader since you are the first to come up with it.

For example, Asus and the netbooks (eventually everybody was able to catch up). More interesting, instead of trying to play catch-up, Apple did something different, the iPad, which is a device that is between the tablet, eBook reader and netbook.

Another example is the Puma Phone, just freaking cool stuff.

At the end of the day is like convincing people to not follow the conventional patch and follow, therefore making you the leader.

Share and Enjoy:
  • Twitter
  • Facebook
  • del.icio.us
  • StumbleUpon
  • Digg
  • Tumblr
  • Reddit
  • Technorati
  • Google Bookmarks
  • email

On pitching and Yanzi

In: Pitching and Presenting

Posted by Geries Handal

25 Apr 2010

Yesterday, I spent my day at Startup Day 2010. There I got to meet new people, catch up with others, listen to interesting stories and practice my pitching skills. No, I didn’t participate the pitching competition. However when you meet somebody, generally they ask what do you do. This conversation goes something like this: “Hi, how are you? What have you been doing?” or “Hi my name is Lalala. So, what do you do?”.  Most of the time, my response was:

Currently I’m working with startup called Yanzi. We sell a product that helps owners mange their business, through cameras and sensors. You can do this through the web or a mobile phone.

By the time I said the word “sensors”, they were looking for the cookies. And those that paid attention, were wondering what is special about Yanzi. That made me realized that I was doing something wrong.

Table of cookiesWhen developing any product or service, “test early and often”. The same applies to pitches, there is no way to find out if the pitch delivers the message, until you try it with different people. So, if the pitch sucks (like mine) you will find this out, before the cookies are gone. Or, if you have a good pitch, it will help you refine it.

You can refine it by tweaking details of it and see what works and what doesn’t, until you have a great pitch. And it becomes a great pitch, when people receive the message you intend to deliver and feels natural to talk about it.

To solve my issue with the bad pitch, I turned to using a framework called the Golden Circle: Why, How and What. This is a simple idea developed by Simon Sinek. He states that to deliver a inspiring message, one should start by the Why we do things, instead of starting with How or What. So, based on the Golden Circle, here is my pitch:

[Why]

Business owners should focus on the important things:  customers and families. Instead of trying to control every part of their business.

[How]

24/7 remote  access to your business, through a computer or mobile phone. In addition, providing history of camera recordings and sensor data.

[What]

A plug and play, solution with data recorder, cameras and sensors that can be connected, that can be access from anywhere that has a internet connection.

As Sinek states, making money is not Why, that is result. So, ask yourself: Why to you make what you make? Why to you blog? Why to you dance? Why to you work? Why do you study?

I invite you to try it and you will see that your message will be much better, it will have more substance and will be less boring.

Share and Enjoy:
  • Twitter
  • Facebook
  • del.icio.us
  • StumbleUpon
  • Digg
  • Tumblr
  • Reddit
  • Technorati
  • Google Bookmarks
  • email

Java == vs equals

In: Software Development

Posted by Geries Handal

19 Apr 2010

I was chatting with a professor (mentor and friend) from my University in Honduras. He was telling me that now the University became a “Javaschool”: a university were programming is taught using Java. This lead me to think of a couple of common mistakes that students might commit, since they don’t understand what is happening behind the scenes. Here is an example:

String patito = “javaschool”;

if (patito == “javaschool”){
//will never enter here
}
if (patito.equals(“javaschool”)){
//always enter here
}

The difference between using a == and equals method is that the operators == compares references to the object. Since “javaschool” is an object (even if you may see it as a value), it doesn’t reference the same object as patito. That is why the first if is always false. To compare or find out, if a String object has the value “javashool”, they will need to use the method equals.

They will make the above mistake, due to them learning to program using primitives like boolean, int, double, float, etc. Which is natural to conclude that everything in Java, works like comparing primitives,  when is not the case.

int x = 90;
if (x == 90){
//woohoo! we are in
}

In the above example, int is not an object, but a primitive. A primitive is just a block of memory, no methods or others stuff. Just the value and a way to reference that block in memory containing the value.

If you need to read more about equals and == in Java, I recommend you go here. And if you want to read more about primitives, you can go here.

Share and Enjoy:
  • Twitter
  • Facebook
  • del.icio.us
  • StumbleUpon
  • Digg
  • Tumblr
  • Reddit
  • Technorati
  • Google Bookmarks
  • email

What we can learn from Vivaldi’s Four Seasons

In: General

Posted by Geries Handal

21 Mar 2010

On the first week of march, I started to listen to a recompilation of Antonio Vivaldi’s work on Spotify. My curiosity for Vivaldi was triggered when Google changed their logo to commemorate his birth date (on the 4th of March). I didn’t remember much about him so, I thought it could be interesting.

While enjoying the music and working I suddenly felt goose pumps when I started to listen to Winter 1st Movement of The Four Seasons.

Maybe is because I’m a big fan of the violin and maybe is why I felt how I felt. When I saw which piece was, I decided to go through the other four season pieces. I started from spring to winter, while I was trying to map my memories of the seasons. At this moment I had understood the four seasons. Before I had the knowledge about them. I had read what they represent the four seasons of a year: what people do and climatic events during each season. Each piece reflects this through the melody, tempo and a rhythm.

Because, I had experience them more than once, so they stuck to me, which lead to understanding them. To know is different from understand, therefore once we feel it and experience that feeling more than once, we will understand.

Since, I lived most of my life in Honduras where there is no clear manifestations of the the four seasons, I did not understand them. Until now, that I’m in my third winter in Sweden, I had the experience them, therefore I understand why Vivaldi’s four season sound as they do.

You can know that being a father is difficult, however until you experience it you will understand it.

You heard countless times and read even more, how hard is to have a business, but until you run your own, you will understand.

You might know or have an idea of what your customers want, however until you are your customer, you will understand them. Why do you think (37 signals’ book), “Getting Real”, recommends that you solve your own problems and therefore you will have great web applications? Because, you will become the customer, feel the pain and there understand what it is really needed. However this is sometimes difficult to do. Sometimes we just need to solve other people problems. That is why, in addition, developers that build the web applications should receive the tech support emails. Not as a punishment for writing buggy software, but because they will never be the customer. So, they need (somehow) feel the pain of the customer. That way they will understand what it is really needed.

Once we feel something we will understand it, other than that is knowledge. just theory.

Share and Enjoy:
  • Twitter
  • Facebook
  • del.icio.us
  • StumbleUpon
  • Digg
  • Tumblr
  • Reddit
  • Technorati
  • Google Bookmarks
  • email

Ditch the Project Manager, Get a Mentor

In: Business

Posted by Geries Handal

28 Feb 2010

Drop the clichés, forget about what a engineer and a artist are suppose to do and don’t judge based on the university title or gender.

This is the information revolution, where anybody with the will power to learn, can be anything they want. Sure the revolution hasn’t reach everybody on the planet, but is on it way. In the meantime, just remember that you can wear any hat you wish and more importantly, anybody can wear the hat the want, even yours.

So, my proposal is that in those workplaces, companies and startups where project managements: “are managing the resources of a software project”, ditch them (or if you are nice give them a chance to get a new hat).

Management of people kills creativity, instead provide mentorship: guide instead of dictating. Get people that can lead by nurturing the skills of the people around them and help them focus, instead of “try to put off that fire or cure the itch”.

Let the artist write software and the engineer design, it might not be appealing but, it is a start of something different and sometimes different is good.

Share and Enjoy:
  • Twitter
  • Facebook
  • del.icio.us
  • StumbleUpon
  • Digg
  • Tumblr
  • Reddit
  • Technorati
  • Google Bookmarks
  • email

Writing software with a Hangover

In: Web Development

Posted by Geries Handal

28 Feb 2010

Universities and corporations develop software with a “hangover” (of classical concepts) from the days of punch cards and mainframes. Today we don’t need to control computer resources, since they are widely available. The access to information about programming is available on the instant and to anybody with access to Internet. However, universities still teach concepts that where design to control scarce resources, when there not scarce anymore. IT departments still try to use these concepts, to manage the projects and comply with internal politics.

There is a belief that everything needs a project plan, progress reports, Testing Procedure Specification (TPS) documents to make sure that everything is on budget. I find it ironic that we spend money on making sure we don’t go over budget. What is the point of writing stuff that nobody is going to read.

Cure for the hangover? Embrace chaos! Give some liberty to people to work without reporting or detailing everything. At the end of the day it doesn’t matter how you did it, the point is that you did it right.

Like my mom used to say:

All roads lead to Rome

Just because is different, doesn’t mean is good or bad, the point is to get where we want and on time.

Share and Enjoy:
  • Twitter
  • Facebook
  • del.icio.us
  • StumbleUpon
  • Digg
  • Tumblr
  • Reddit
  • Technorati
  • Google Bookmarks
  • email

Flattr a new way of consuming for digital content

In: Marketing

Posted by Geries Handal

14 Feb 2010

Flattr is a new service for paying or “rewarding” creators of digital content on the internet. Below is a video describing how it works.

I liked the video and I found it appealing to the eye and well produced, still they failed to deliver the message correctly. Which is a shouldn’t be the case when you are trying to change how people pay for content. Don’t get me wrong, I think the idea is awesome and disruptive, however it could have been presented in a better way.

Note the reader: Following are my thoughts on how should the idea been presented and will try to avoid talking about if it will work or not. that will be for another post.

When it starts running the first thing you will se is the following image:

image

Even if it is only shown for around 2 seconds, this is most important piece of information, due to this two words presented: social micropayments. In my case, the first thing that came to my mind was that this was a service like kiva.org (given it uses similar colors). Then I realized I was wrong when the video mentions content and consumers, the flattr button and the cake.

If the service is about showing appreciation or love to content creators, then they should remove “social micropayments” and replace it with some other message. The problem is that the service is about showing your love and appreciation to the artist or create, while the word payment is related to something more cold such a commercial transaction. Second, micropayments has been widely use hand by hand with microfinance in third world courtiers, which is out of context of where flattr will be used.

Instead of using social micropayment, they could have use something like:

rewarding content creators, flat rate love or flattering creators

In addition I will have change the way the cake analogy with a story, which will be of somebody using the service, while keeping the black graphics used (we don’t want it to look like a “revolutionary” vacuum cleaner commercial ).

Here is an example:

Tom is 29 year old web designer, that spends his day working, reading blogs and posting on twitter.

In the past year or so, Tom has found an interest for mashups of music. Most of the mashups are given for free by the DJs, so he just downloads them. Recently he found a mashup album of Jay -Z and Marvin Gaye called Brooklyn Soul, that he loves. He tells all his friends about it and enjoys to play it while commuting or just walking. So, he decided to show his appreciation to the producers of Brooklyn Soul with a Flattr.

Tom has 2 eruos in his account and in the past 3 weeks he has given a Flattr to Xaphoon Jones for his Mixtape and to a couple of writers for their free ebooks. In total it has been 4 flattrs and the month will end in two days. By then the 2 euros will be split in the four flattrs equally.

Why did Tom decide to give 2 Euros? Well he figured out that if he didn’t drink a latte a month, instead he could use the money to show his appreciation.

Why a story?

Is less abstract and is more down to earth. Also, by mentioning what is the give and get, the audience has a better understanding of the service.

If you want to now little bit more about why using stories to pitch an idea, check my previous post.

Share and Enjoy:
  • Twitter
  • Facebook
  • del.icio.us
  • StumbleUpon
  • Digg
  • Tumblr
  • Reddit
  • Technorati
  • Google Bookmarks
  • email

About this blog

A personal blog where I write about my current projects, work and interests. The posts are a reflection on my current self, varying over time, since change is the only constant.

Welcome to G To The Square, my thoughts on ICT, Business and Life... in a Square.