08/11/2014

Build Habit, Enjoy Life 3 - Create first milestone, tracking and feedback mechanism

With previous two posts, and with some time thinking, you should have your annual mission statement and annual goals now. My two biggest challenges are:

1. Lose 17.85 Kg to reach my health weight (now I have lost more than 15Kg)
2. Speak at one conference, I did that in August

What are your first milestone goals? First,  I will suggest to pick one hardest and easy to measure goal and don't setup first milestone with other goals. And you should simply set first month as your annual goal for the time period. I choose three months as period because there are too many uncertain just for one month. In my case, I chose weight lose and set first milestone goal as losing 4.5 kg. Your annual goal should be reviewed or updated after every 3 months so that you will have right values and when you start to understand more. 

How would you achieve your first milestone? There are many ways to do that. Don't be ambitious and try all of them. Focus more and see whether it works. My weight losing just started with walking 45 minutes minimum each time and minimum 4 hours a week. And it helped me losing 2 kgs in first month. When time goes on, there is a require of different way to keep you on target. But first, it is as simple as just one. It is much better to do with JUST one. 

Find a tool for tracking your progress. It make everything visible and easy to understand. I have chosen Run Keeeper for my personal fitness goal setup and tracking. Their web interface is excellent. The only glitch is that logging weight function is buggy and it takes long time to log in their Android mobile app. But I do like the web interface for tracking goals like following. 


And I haven't found a good tracking tools for learning and development. I am building one called "KareerTracker" at the moment. The goal setting and tracking are very convenient and easy to do because it is much faster than RunKeeper. And another advantage of the KareerTraker is that it will give you alert if you are far behind. I love this one a lot because it instantly tells me whether I am on track or not. But it still growing and we are still building social tools and rewards tools around goals using theory around becoming master with 10,000 hours from Outlier. (Follow us at http://www.linkedin.com/company/kareertracker )



  
All these tools give us feedback mechanism and that is why I love those tools. And dont worry if you are behind. Just try and adjust, find new ways to improve if you find yourself stuck. And there always a plateau from time to time. If you see that more than 3 weeks, you should try to find a new way to conquer it and don't give up on old ways in short term. 



Coming Soon
 
    Time Management with Prioritization and Kanban

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.

26/09/2014

Landing your dream job sooner

Since January 2012,  I started using resources on the internet for my career development because of a limited training budget. I felt so excited that I had world-class trainings from Amazon, Twitter, Udemy, edX and General Assembly without a big budget just like friends from big corporates. But I did find there are several roadblocks:


  1. What is next step for my career? I don’t know
  2. Time wasted on low quality resources
  3. Time and knowledge wasted while changing topics


During the last one and half years, I personally discovered several ways which help me focus and improve effectiveness for informal learning.


As I am from a software development background there are two choices, either continue being an individual contributor and becoming an architect or improving my leadership and people management skills. As I was not a native english speaker and my communication skills were not great,  an easier choice would be to become architect. But I love working with people and helping others grow in their career. So I have been working toward the people management direction with a guide from several good friends and mentors.


With that in mind, I started cleaning up twitter followings which were my major social resources for learning so that I can keep focused. A great resource I recently found was LinkedIn Pulse which had some great articles, however I did find their recommendation didn’t work well for my learning purpose.


Since December 2013, I started to create  monthly goals for a skill with one or two keywords from books and online courses. I found that works really well to keep me focused and bring up my specific skills. With a goal in mind, I am not so distracted by different topics and interests too. Of course, I can still learn other topics. But those are chosen with more care now.


This year during Melbourne’s LAST (Lean Agile System Thinking) conference I presented “Agility for Big Data” . This helps businesses deliver big data application into the market with shorter timeframe.  


We are developing a product that defines career paths with mentors, recommends high quality resources and keeps track of your activities toward goals.  Even better, we can develop the product with your input to bring an innovative and affordable learning experience.


Please find my contact details below:


Mobile: 0401 651 178
Email: charlie@kareertracker.com

How to join as our ProUsers (Android App only at the moment, iOS app out around Decmember 2014)
1. Register as our ProUsers by registering to this group:http://groups.google.com/d/forum/kareertracker-prousers
2. After that, wait around 4~5 mins, then access the following URL to confirm as beta testing user for Android App:https://play.google.com/apps/testing/com.studyisfun.kareertracker
3. There is download link after confirm as testing user, download and you have a KareerTracker in your hand now

23/09/2014

Build Habits and Enjoy Life - 1

A day in December 2013,  my days started with I pushed my little girl going to kinder garden. She cried and I still tried to push because I definitely would be late. And in the office, I faced with many "urgent" issues. It made myself feel important. But there is NOTHING important which has been done. After coming, I read a story to my little girl in a hurry and try to come back either trying to catch-up in technical front or catch-up in people management books. It was a typical day for me in any day in 2013. But luckily, I start listening an audio book "7 Habits of Highly Effective People" (Stephen Covey) from audible.com. The book opens me new view about my life and with my knowledge lean Kanban, I started a journey of changing myself from January 2014.

With identify my missions, quantify my goals and measuring my progress towards goals, my life has changed a lot.

In past 7 months, I have lost 16 kg and much healthier than before. Now my day starts with waiting for my girls prepares herself for kinder garden. My job doesn't full of "urgent" things. I starts to focus more value generation instead of just solving problems. And I have more free time to improve myself and start dedicating one of weekend to my family. And I am starting to find out my dream and starting build a startup for that.










I want to share my experience with you.

Build Your Mission

The missions has guided my activity in past 8 months. The biggest benefits that I get from these is that I can prioritize things in my life very easily with these. I personally compared the ordered books from me in Amazon.com. This year's books are all about two topics. But last years, it is around five topics. Although I dont read as many books as last year, I did feel that my skills around two topics have become much better comparing with last year. In the job, I personally tried to involved less in the activities that I don't have in my mission statement. With that, I can focus on the things that I have more interest on.

And in summary, I have focus things more important for my long term goals.

With guidance from the book, I personally classified my missions into 4 parts. They are:
  • Career Development and Path
  • Family and its value
  • Community (People around you and what is your value to community)
  • Healthy and other long term goals
All of them are important to my personal growth and feelings. 

There is the tool at Franklin Covey website, http://www.franklincovey.com/msb/, which help me a lot on building my personal mission and my family mission. 

If you have any question, feel free to let me know. In the following sessions, I will share about my experience in the following topics:

  • How to create quantified annual goals from your missions
  • Create first milestones for you goals and how to create feedback loop
  • Time management with prioritization and Kanban
  • Try different solutions but keep focus
  • Dont forget about celeberation

10/07/2014

A culture of technical excellence and good design - a start post

Do you have any idea how to make technical excellence and good design happen in your business? I plan to write a blog this. Please comment below. I plan to finish it by three week with three focus 1. what is technical excellence and good design 2. What are benefits it will bring although it looks like it gona cost a lot 3. How to encourage technical excellence and good design when everything is about survive and money Please comment with your answer so that I can learn from you guys

Agility for Big Data

My LAST Conference Presentation

26/09/2013

Three Maturity Levels for Software Delivey

I believe that there are three maturity for software delivery.

Level One is delivering software as specification;

Level Two is delivering solution to solve business problem;

Level Three is  delivering solution to deliver customer value;

To be agile, you need to be at level 3


20/08/2013

Transition in Agile Project Life Cycle

After some reading of "Lean  Startup" and "Scaled Agile Framework", I start to think about to add "Transition" as part of project life cycle into our projects. The problems that we have been experiencing are:


  • There is no feedback after projects delivered into production environment
  • Lots of team members treating deploying into production as end of life cycle
  • We have lots of features deployed into some of server for early access purpose, but there is no feedback loop into development team
  • Difference between business values expected to delivered and business values gained, no learning gain from that
From 2 months ago, I have setup portfolio board which outline projects and BAU items in project as a business and start to have in-transition as part of process. What is most important factor we are looking for
  • Mindset that project is only finished when stakeholders/customers gain values from it
  • Build learning culture across business about what we have failed and been succeeded 
  • Extend learning culture from Engineering team to other business departments
  • Early access program which bring a safe-net to delivery team 
  • Help support team and operation team preparing for production 

We are still working towards a better transition period. But most of feedback is positive and we will continue and make it better. There are few things that we have done along the way with feedback
  • Build rhythm for projects in transition too like setting up catchup every week
  • Setup specific page or websites as communicate tools between customers and business when projects in transition stage
  • Dedicated communication channels while projects are in transition to make sure problems solved as soon as possible so that business values can be delivered
  • Stories discovered in transition stage is always treated as highest priority
Please note transition is different from "harden" sprint in many ways. And if you are working towards continuous delivery, you should not have "harden" sprint at all.  At the transition stage, solution is delivered what it designed to do. But it may not fulfill customers' expectation fully or the solutions is deployed to test hypothesis. From transition, we need to learn something and business will grow with the stuff learn from it. 

08/08/2013

Stakeholders and Business People in Your Project/Product Delivery

It has been amazing Agile journey since 2006 when I applied some general agile practice in my own business. And I have seen lots of advantage when business is small and innovative. And it fits with my personal believe that team output can be gain while empowering people. I had been working as owner, project manager and architecture designer at that time. It all works so perfectly because I always brought lead developer with me to talk with customer. As its nature of business, it is easy to get business people and client together with developers. 

But recent experience with SCRUM has given me headache. Product owner has been go-to person for questions related to business. Product owner decision is representative of both clients and business needs. Communication lost cost is high. And my experience has been that product owner acts as middle man in the case they are accountable for product delivered. I personally believe bring stakeholders including customers into table is one of the solution when product owner has decide priority and core requirement. 

What I am doing at the moment? There are few things: 
  1. Identify stakeholders from internal and external in project vision statement
  2. Bring stakeholders in grooming sessions to help developers understanding what customer needs
  3. Product can decide whether it is in scope or not if developer think some changes may requires huge amount of work
I have been pushing vision statement and identify stakeholders for projects. It has bring lots of value into business in which we don't such doc before. And I haven't try 2,3 yet. And planning to do soon. 

If you have some way to involve stakeholders in discussion both before development and after development, please send me or leave as comment


12/07/2013

My Agile Failures - Deliver Software Frequently without Enough Safenet

"Deliver software Frequently" becomes symbol being agile. As my previous post, I am talking about that delivery software to production is not finish line because feedback loop has not finished just with that. This post I will talk about deliver software frequently without building enough safe-net or not enough infrastructure.

Recently, I have been push software from releasing every week to several times a week. But in the same time, there was an incident happened. Of course, there are many reason behind that. There are always many reason behind an incident. But the most important lesson that I learn from that is safe-net for delivering quickly.

The basic assumption that a team should have is that if there is a failure, what we can do. How can we achieve rollback without customer notice or with minimal impact. "Fail more often" doesn't mean that you can fail more often. But it is a mindset that

. We gona to fail and we should have a way and capacity to quickly recover
. We should learn from our failure

Failure doesn't necessary a system failure, it can be that metrics shows that business hypothesis failed.

And I personally found "Post Mortem" is a good way keep us learning from failure in real time. Dont let similar bad things happen more than three times.

What is your failure experience with delivering software more often?

26/06/2013

My Agile Failures - Welcome "Changes"

"Welcome Changes" becomes one thing that product owners/managers love most in Agile .  Most of time, when you talk with new teams, product owner/managers always come and demand changes; At start of my Agile journey, I did believe that "changes" are important. We should allow "any" changes. The outcome is output of team is unstable and feature delivered were hard to maintain. And from time to time, we missed commitments because of change required. And lots of changes doesn't bring expected business advantage. 

After years practice, I believe that there should be a line for

  • Whether a change is a new story or changes to existing story
  • Whether changes are the change which bring lots of customer advantage or it is another hypothesis from product owner/manager
And if you frequently experienced any problem related to story change becoming new story, you need to looking at what is the root cause of problem. It is very important to solve root cause of problem. Mostly, I found that lack of either functional requirement or architecture design are mostly root cause of problem. It is highly related misconception about agile doesn't require document. Agile means "communication" over "document". It does NOT mean that you don't need documentation. But from time to time, document, esp design document, are very helpful, but skipped. Although you don't need them in a very formal format. But some sketch on whiteboard and record them in somewhere will help team understand problem and find question earlier.


18/06/2013

My Agile Failures - No or Long Customer Feedback Loop

For agile journey, most of companies focus on engineering practice like TDD, BDD, Automatic Testing, and Continuous Deployment. But the everything in agile is about shorting customer feedback loop time. Without it, agile practice will mean nothing to business. It will only become purely cost side for business.

The hardest thing in Agile is about involving customer / customer proxy in every stage of development including analysis, development, UI testing and customer satisfactory survey. Without customer feedback, any decision to change or add feature to a product is gut feeling and guess. Production vision is build from experience and vision. But to build a software product can survive, it is about to build an innovative product which support ever change customer's need. 

In my agile experience, I have seen similar problems happening from time to time where there is lack of customer interaction and there is no define of success for a story/feature. If the situation continues, it will cause friction between business and development teams. 

I still in progress build such feedback loop, I am trying following ways:

1. Get customers into UAT stage
2. Setup early access environment so that customer can access newly released features
3. Setup monitoring/tracking strip for user actions
4. Involve customers and other stakeholders at grooming sessions
5. Try to change to business culture to understand importance to have customer/customer proxy in house/easier to access while product delivery process

Do you have any suggestion for this? 

11/06/2013

My agile failures - Deploy to production is a finish line

Agile principle highlight that to be agile, we need to deliver valuable software to customer in continuous way. In practice, it becomes continuous delivery. And we keep forgetting about customer value. 

My experience is that we focus on starting Agile transformation at Engineering/Technical teams is easiest way to do considering popularity of "agile" in software development space. But as soon as you get a team up to certain maturity level, you will be able to deliver a piece of software continuously. I were in a phase like that. And I still didn't see lots of satisfied customer faces. 

So what has been wrong? There are few things that I found that we can do better: 


  • Didn't engage customers in story discussion and delivery (we only involve customer proxy - Product Manager in the discussion)
  • Treat deploying to production as full stop, then 
    • Engineering is disconnected from customer; Small issues are stopping large number of customers adopting
    • Project based methodology has delayed future improvement
    • Support team take over communication even for MVP products
    • Lack of communication between teams and engineering team after software on production
What I have done to improve the outcome:
  • Setup a kanban which has "transition" as one of columns; Project/Stories will be only moved to "Party Time"/Finished/Done when it is proved to work for customers;
  • With above Kanban board, we make sure improvement stories related to new projects/stories have highest priority
  • Engage customer directly in "transition" stage so that customer values can be delivered in timely manner; Project can actually become "valuable" product
Some further things to be answered:
  • Does "Project" stop us from doing better job? 
  • Without project, how will you manage budgets? 
  • How to engage customers more in execution/in progress stage to shorten transition stage?  
If you have any suggestion, please let me know

07/06/2013

My Agile Failures - Customer Value and Failure Demand

Agile first principle: "Our highest priority is to satisfy the customer through early and continuous delivery of valuable software."  So first of my thought that means that we should deliver customer value as quick as possible. As highly experienced developer and architect, a customer value does not only include function delivered, but also include non-functional requirements including quality, security and others. 

But with monitoring in place, it doesn't seems that our agile delivery bring more significant sales into business.  So which part goes wrong. A recent read of John Seddon article bring some lights on that. In his article, he talk about failure demand - "demand caused by a failure to do something or do something right for the customer".  Most of our "agile" delivery are delivering wrong thing quickly. 

There are few wrong sides for things delivered:

1. Miscommunication and information lost
2. Someone else did that and that is valuable to our customers too
3. Never analysis root cause of customer business problem; So solution can't solve the most important problem

Sprint Review has been prescribed in SCRUM as part of process. But our product delivery and customer value feedback were just skipped after sprint review. And there were no continuous improvement process related to product development and provision. 

What I am trying at the moment

1. I have setup Kanban to visualize whole product delivery process including MVP provisions 
2. Plan to have some review meeting like sprint review. But it focuses more on product delivery to customer. 




09/04/2013

Agile Principles

Everyone in Software Development knows about Agile Manifesto;

But I personally believe the principles are more important.

What is your thought on each of them?


We follow these principles
1. Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.
2. Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage.
3. Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.
4. Business people and developers must work together daily throughout the project.
5. Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.
6. The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.
7. Working software is the primary measure of progress.
8. Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.
9. Continuous attention to technical excellence and good design enhances agility.
10. Simplicity--the art of maximizing the amount of work not done--is essential.
11. The best architectures, requirements, and designs emerge from self-organizing teams.
12. At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly

16/12/2012

2013 Goals


Personal Health:
- Exercise 120 Minutes per Week (this and following item has been merged)
- Bicycling to train stations 2 days a week
- Bicycle in average 4 hours a week
- Go to bed before 12:00PM

Family Health:
- Towards more health diets
- Schedule family traveling to increase communication and family mentality sync
   . A trip South Australia
   . Schedule a return trip back to China
   . Schedule a trip to country side

Personal Growth:
- Atthend Melbourne Uni MBA Classes (Remove from List)
- Join 2-3 Conference at least one focus on Lean and another one focus on trending of technology
   . Joined Lean/Agile/System Thinking Camp
- A blog post a month around Agile/Lean (need some boost for this)
   . Collecting topics
   . Trying to catch up to make up 1 in month in average

Networking:
- Attend lean or scrum meetup once a month (too busy to keep it)
- Attend 2-3 Conference and start spread network (need more work)

Professional Development: 
- Start to know one colleague a month out of product/support/engineering team (Started Coffee Club, it works in some way; Need to solve the problemt hat uncertainy commitment from sales teams)
- Help defining Agile culture in other departments and senior managers (Spread agile culture through the Coffee Club at the moment)
- Apply system thinking for organization changes (need more reading and study for this)