09/10/2014

"Fail First" Now

I read "Fail First" concept around 3 years ago. The learning from it was that we need to deploy as often as to test market. But the reality is that it doesn't produce better than before knowing "Fail First". So what is stopping us?

Around 3 months ago, I started to build my own startup - KareerTracker. It brought me better view about business and product development process. I am using Lean Canvas to iterate my business mode. 

The striking point is about more than 90% of new products and new businesses failed statistically. What does this number mean? If you dont have strong believe of values on your products or businesses, please dont do that. You need an value more than a product to believe in. The value needs to guide through your hard time because we need to go through hundreds failures. Just in three months, I went through several failures, like just can't recruit more than 10 customers for first batch customer interview, one customer group just don't like our product at all and others and many more. But fortunately part is about that if you have "fail first" in mind, you will experiment those ideas with minimum cost (mostly free) and without even programming or writing a script. As normal start-up, we are resources constraint business including both money and time. To minimize risk, we need to be very careful. Otherwise, we gona die very soon.

And another side of "Fail First" is that you need to understand what to test before and actively learn from it from both business and technical views. Without them, you mostly will take an action to do different things without any evidence.

Now, looking back, What I will do differently if I knew three years ago. There are many ideas which can be done without programming/developers. And they can be tested and validated before going into development team backlog. While doing development, involving customer in the process is most effective way to "fail first". And code bases will be much nicer and it will save a lot in maintenance costs.

My understanding of "Fail First" is that "fail" early with minimum cost and learn from it. While I am going through the journey, I believe that my understanding may change again.

What is yours?

06/10/2014

Cutting Corner Every Day - How we change that

I have been thinking about writing about this for long time. But I have been too much focusing on my startup, KareerTracker. But recently, I have been hearing about "cutting corner" almost every week in software development teams. Is that kind of "crap" built into our industry?

There are two problems that I often have seen:

1. When we fix problems, teams often take shortcuts and never look back and invest money and time on long term solutions. All our wish is that we won't have the problem again. But they will come back again.

To fix the problem, I have adopted post mortem and  the counter measurement board idea from Jason Yip. And we implemented monthly board review meeting to make sure that we are make progress on long term solution and prioritize them.

The outcome is really positive and we got several big improvement done with the help from the board. At start of my journey in a business, there are issues almost every week. After two and half years, there was only one issue for three months and impact was much smaller too.

The best impact of that is development team have more time focusing on improvement and innovation instead of fixing issue. That is bigger than anything else.

2. Teams mixed prototype and software development. Teams often either grow prototype into production without architecture design or we just write prototype into existing production code base. And in worse case, business people will sell the prototype as a product and we can't remove them even there is no market demand for that.

Another similar problem is that business people wants to experiment in production environment but there is NO proper architecture supporting that. Then we HACK and never clean because it has been hard.

You normally can have a sense of problem at story grooming and sprint planning sessions. The typical symptoms of the problem are that product owners use general word, such as customer, as user for story,  or hear "dont have enough money", "dont know whether they gona buy",  "there is one customer asking for this", "it will be a big success" without signup paid customers and others which propose there are limited number of customers or unknown number of customers in the coming 3 or 6 months.

The first thing that we have done is to develop an architecture which will decoupling code between features, "vertical slicing architecture" (I will write more about this in later posts) + feature flipping. Each major feature has its own component and we can easily  add and remove one feature from production. In experiment and explore stage, we can plugin a new feature / component in with quality just enough.

But there is another thing must be done. That is educating people about difference between prototype and production. Prototype will be used to discover customer needs, just enough quality is enough. But production code needs an excellent design and easy to use provision.

I often found that there are more effective ways to prototype without write a piece of software to test customer demanding. Product managers just need to change mindset and be more innovative. If you want to understanding more about prototype, you can read the wiki post.


04/10/2014

Build Habits, and Enjoy life - 2 - Quantify your missions as Annual Goals


The blog posts will introduce my experience and learning for past 7 months about course changing of my life. What I have done? Lose 16kg and have a healthier life, find my passion, start a business to pursue my passion, and starting to solve problems instead of ignoring them in workplace.

If you haven't read my first blog about "Build Habits and Enjoy Life Part 1", you can read at: http://agile2lean.blogspot.com.au/2014/09/build-habits-enjoy-life-1.html

This blog post is about how I start a journey about my missions and do something which are "impossible" 7 months ago.

When I was a child, I had a big dream to have my books with my choices. With limited incomes from parents, it has no money left for me buying books after buying essential supplies like food, clothes and stationary. I still remembered my mum bought me a book and parents didn't buy anything for themselves for months. I decided to find a way to earn myself money and buy books for myself. There was a manufacturer who put rubbishes which contained some steel parts at back of factory.  I did a hard work to find those and sold that to a recycle center. I earned 2 dollars for first month. But the money was not enough for a book and I felt a very disappointed and try to give it up. But dad told me that, "A book is around 3 dollars. If you continue doing for one more month, you can buy a book." I were happily after that and continued for another month. I bought a book after that. After several months, I had around 20 books with my own choices and rent them to kids around me.

One biggest learning from the childhood experience is that having a specific and measurable goal can help you going to achieve something hard to be done or even sometimes they are impossible.

I have applied same theory into my missions. I will talk about setup measurable goal for healthier:

1. Lose weight so that my BMI (Body Mass Index) back to health one. As my height won't change with my age, I am targeting 70kg util Jan 2015; Now I am at 71kg. At start of of this year, I weighted around 87.5kg.
2. Keep most of blood testing results as now which is healthy and change one of metrics from risk to normal by Jan 2015; Low that metrics to low-risk around July; I just got my blood testing done last week. It is on the track.
3. Back to monthly 10km bush walking between Nov 2014 and Jan 2015. Now I am doing that every quarter. And shorten it gradually. 

The specific and measurable goals have helped me overcoming plateau period and keep focusing on what I need to do.

There is a popular SMART goal criteria. Except specific and measurable, a goal needs to be attainable, relevant and Time-bound.  Every part of SMART is important.You can read more about SMART from wikipedia.

To quantify mission, you definitely need to bound your goals as annual goals or more than one year.  If it is not your case, it is not big enough for you to treat it as a mission.

And I want to highlight the "relevant" part for being healthier, it is very important that people should understand longer benefits come from healthier not from fitter or thinner. Healthier is some degree measurable from medical point of view. Routine check and use that as one of goal settings are essential and important. Bush walking is not only physical exercise, but also mind training to me. You may find other activities will help our mind training and please include that in one of your plan. Your mental health will impact everyone around you a lot esp your family. 

About attainable part of "SMART",  feel free to change your annual goal around first and second months from start and but try to stick to that afterwards. You can't create attainable goal if you never try them before, but you need to stick to them to achieve something outstanding. So allowing yourself to modify it at start is as important as sticking to it after 2 months.