Follow by Email

Search This Blog

Posts

What are your motivations for creativity?
- I want to make a change.
- It makes me happy! It is a need of my mind.
How to be creative for a thing?
There are two steps:
- See the thing as every people see it
- Think about a new different thing from it
How to think about a new different thing?
There are two ways:
- Forget all things you have already known.
- A whack on the side of your head. ;)
This was what I have learned from the following great book: Well! A physical whack on the side of your head is needed sometimes but the meaning behind is that you need to break these 9 following locks on your mind. Remove them!
The lock #1: "The correct answer"
We all learn from schools that there is only one correct answer to a question. For example, a proposition is only true or false in Algebra. In reality, there are always some answers to a question basing on a point of view. For example, number 6 becomes number 9 if you look it in the opposite.
The lock #2: "That is not logic&…

Human resource management motivation
Managing human today is quite different from the industrial age which treats people as just "chickens". Rather than people now are very important to the success of an organization. People are an organization's special resource. They should be encouraged to grow to contribute their effort and creativeness to their beloved working environment because the contribution is one of their most needs in life.
Training people: getting rid of the ineffective model and adopting the new one
The ineffective model of training people: Hiring new people --> giving them a crash course once --> expecting them working effectively.

That somehow makes sense but you're about to expect a luck because you do not really spend your effort for mentoring them. If they can work effectively, well...lucky you! Otherwise, you will blame that these people are ineffective and you let them go and hire the new ones. What a waste of time!

Using daily meetings for frequent course corrections. However, you should keep the meeting short because time is burn rate.
Though good collaboration doesn't guarantee a project's success, poor collaboration almost always guarantees a project's failureWhat benefits does the daily meeting bring to you?

- Keeps inexperienced developers and experienced ones on-track.
- Avoids reinventing the wheel.
- Limits tumbleweed developers' damage.
- Leverages the entire team’s experience to solve problems quickly.
- Improves team communication.
- Helps every people have a big-picture
point of view.
Who are tumbleweed developers?
We’ve all worked with a few tumbleweed developers. These developers lose direction and drift through their days. They wade through the random code and “improve” it, cleaning up method signatures, polishing algorithms, and reformatting brackets. Tumbleweed developers lack the discipline to finish any task you ask them to do and generally cause more harm th…

This is a book telling about many stories of the book's author, Ta Minh Tuan. Each his story is not only a valuable lesson but also a heart-to-heart talk.
Think Big, Start Small, Move Fast
I accidentally attended a $2 meetup which was held by Hoithao.vn in 2013. It was the first time for me to see the author. At that time, he wanted the attendees to repeat many times a sentence "Think big, start small, move fast" (a mindset for entrepreneurs). It was really impressed to me. I've been following him on Facebook since 2013. This book was his recommendation.
Do It Anyway
Your success is defined by yourself. It is built by your habits. Habits are the things need time to tackle. To me, that somehow means JUST following your heart combining with your brain because you're the one who knows what you're doing. Believe in yourself and never betray your dream!
We Are One
The author said that "everything is connected". This is also the theory of Buddha. He beli…

The topic is about my experience on my first project with my freelance team. We implement the last step of this process which you can find in the end of this post.

You might have heard of something like the following:
Many customers don't know what they want.
Yes, that's a fact. In order to help customers solve their needs, we'd better consult them or we provide a consulting service. The next questions is "how?".

Our approach is enhancing the collaboration with customers or providing a design of customer interactions. Firstly, we create a website wireframe to express the idea of website's functionalities. For example:

Source: Wikipedia
And, the further step is that we make a running app based on the created wireframe where the real UI/UX is demonstrated. However, it is just a GUI/frontend with dummy data without interaction to a backend. Technically, that is just a html template which contains source code of HTML, CSS and Javascript. For example:Source: ThemeF…

Passion for System Design
After finishing a one year project, my longest stable team (lasted for 3 years) was separated into two smaller teams. Sadly, but that was a good chance for me to become a key member in my new team. My preferred skills were about system architectures; therefore most of the tasks of building the application structures were handled by me. In order to enhance my design system skills, I have spent much my time for reading books closely after work. These following books help me a lot.
- Object-Oriented Thought Process | Matt Weisfeld
- Head First Design Pattern | Elisabeth Freeman and Kathy Sierra
- Java 8 in Action: Lambdas, Streams, and Functional-style Programming | Alan Mycroft and Mario Fusco
Junior Technical Architect
I was requested to join a technical architect team (aka Team. Alpha) where I actually had gained experiences almost on interviewing candidates for my company (lol). Besides, I noticed myself must improve the skills of convincing people because …

https://www.scrum.org
Scrum is not only designed for software development
Scrum can be used for addressing any complex issues:
1. Research and identify viable markets, technologies, and product capabilities;
2. Develop products and enhancements;
3. Release products and enhancements, as frequently as many times per day;
4. Develop and sustain Cloud (online, secure, on-demand) and other operational environments for product use; and,
5. Sustain and renew products.Scrum Values is a key factor for building trust and respect among team members
The five values are:
1. Commitment
2. Courage
3. Focus
4. Openness
5. Respect
Daily Scrum's questions are more focused on inspection and adaption rather than the status
1. What did I do yesterday that helped the Development Team meet the Sprint Goal?
2. What will I do today to help the Development Team meet the Sprint Goal?
3. Do I see any impediment that prevents me or the Development Team from meeting the Sprint Goal?
Why Scrum still needs Scru…

Fansipan is a mountain in Vietnam, the highest in Indochina, at 3,143 metres. It is located in the Lào Cai Province of the Northwest region of Vietnam, 9 km southwest of Sa Pa Township in the Hoang Lien Son mountain range. Wikipedia
Currently you can get the peak by cable car; however, I loved to explore it by climbing.

Here are what I have learned from this exciting journey. 💪
Do not procrastinate
I have had no experience of climbing a high mountain before. Then, I've sought advice from my friends, but they suggested that I should not make it at that time due to bad weather and lack of experience. I know it never come true unless I just make my decision. Can't wait!
Prepare for your journey
You firstly need getting to know about the journey, schedule, transportation, etc. Recommended sources: YouTube videos, blog posts and tour companies websites. Tips
- Quality hiking shoes helps a lot
- Bring your stuffs as light as possible. Important stuffs: a light raincoat and water (t…

I have joined several job interviews with candidates at my current company. As a technical supporter, my attention was mainly focused on specific technical points rather than behavioral ones. However, I saw that these following typicalquestions were rarely missed for any interviews. In fact, there is a meaning behind of the questions. The concern is candidates should focus on answering the right things that interviewers really want to know. Take a look!
Introduce about yourselfIt is "What and why are you fit for this job?".
So, it is good to go "Talking too much about your hobbies."?
I would say "We don't care about your hobbies much". ;)
Why do you want to find a new job?It is "Why this job are interesting you?".
So, it is good to go "Talking about something negative like 'I hate my boss/leader'"?
I would say "Who wants to work with a negative person?"
What did you do in your current job?It is "Tell us wha…

In my point of view, if a team has a good collaboration, team members will achieve the following: To be more effectiveTo make work more enjoyableI have been working for a company for nearly four years as an software developer. Working on various projects from maintaining existing systems to developing a substantial product resulted in me moving to new teams three times. Actually, my most stable team lasted only around three years. Every time I've moved to a new team, I have a chance to work with new members and a new team culture again. Indeed, I realize that there is a process of developing the team collaboration which gets better time by time. I think it is an evolution!
Phase 1: Poorly collaborateFor example, that is when the team members have the following issues: Only work on his/her area of expertiseDon't communicate to othersBe not confident to take on new challagesDon't listen to other members. Subsequently, the team has some Failed Sprints and the knowledge gap betwe…

If you do Scrum at work, you might be very familiar to the estimation
in Planning 1. My PO has once complained to my team that why it took too long for estimating just a story. Wasting time results in the planning timebox is violated.

I give you some advice from my experience:
Estimation is estimation, not measure.
When you read some requirements, you see some risks but you actually don't know how complicated it will be. Don't try to influence the others by explaining how to do it in too detail. Just keep in mind that you know the business domain pertaining to customer needs and estimate how much effort you will spend for it. The effort should be compared to your baseline one that you use for a simple requirement.

The bottom line is we do "relative estimation", not absolute estimation. For example, you are asked to estimate the height of a building. Basically, you just need to answer "how many times higher is the build than your height"; you don't ha…

Have you ever got bored with the Retrospective meeting? I have, sometime. Most of the times, this meeting just goes traditionally by answering three questions: "What good things have we done? What bad things have we done? And, what actions should we improve?" Ever and ever again! My team found a way to make it a little bit more exciting. The idea is that each member - not only our Scrum Master - will become a host. If a meeting is hosted by a memeber, the next meeting will be hold by another one.

Yeah, I used "Sailboat" pattern in my turn. So, I just want to share with you guys how it was.
I started the meeting by telling a short story that I hoped everyone in my team could recall the meaning behind of Retrospective meetings: There is a group of people trying pick up trash in a park. At the first look, the park seem not to have a lot of trash because they are spread out all over the place. However, these people continuously found trash when they started. They kept …

In this talk, Ms. Phuong pointed out some major wastes includes information (ex: unclear requirements), processes (ex: waiting), physical environment and people. Knowing what the problems should be the best way to eliminate them.

The difference between Single item flow and Batch processing is the second main point; and it is the Lean's idea. Batch processing perform…

This is the topic of HMC full stack developers' meetup this time. We have shared our ideas and discussed about them. Most of discussions is focused on career path for developers in Vietnam and what next we will do in 2016. I have a problem with my career path in Vietnam. I seem to get lost my motivation because I don't like to become either a manager or a TA (such as Technical Assistant, Technical Analysis, Technical Architect).
But, why only are there either manager or TA in Vietnam? How about a 60-years experiences developer? Salary is actually an issue.
I admire several great developers in the world such as Jeff Atwood (stackoverflow.com founder), John Sonmez (simpleprogrammer.com fouder). They created very great and valuable stuffs for the community and they are free of finance - of course, I think. Why can't I follow that way? I would like to not only create cool stuffs but also get high salary.
I love to become a "many years" developer. Coding is one of my …

Software Craftsmanship is a metaphor for software development: software as a craft and developers as blacksmiths. In other words, Software Craftsmanship is about professionalism in software development.

The Software Craftsmanship manifesto:Not only working software, but also well-crafted software: regardless how old the application is, developers can understand it easily; high an reliable test coverage, clear and simple design, business language well expressed in the code.Not only responding to change, but also steadily adding value: constantly improving the structure of the code, keeping it clean, extendable, testable, and easy to maintain; always leave the code cleaner than we found it.Not only individuals and interactions, but al…

My team just started building a new project about finance. There are something new with us rather than other processes happened before. Here is we didn't have requirements/user stories about the project yet and we needed to work together with another team in this time. Our product manager (PM) decided to have a camp to collect the ideas in order to getting started as well as make the communication between the teams.

Firstly, our PM gave an introduction about the project to all members. Then, we decided to split and focus on four topics that we needed to discuss about them. They are:
- General information: working agreements between two teams included coding convention.
- Data model: structure of data.
- GUI design: user interface and user experience (UX).
- GUI technical framework: how data model and GUI can be worked together.

The target of each topics should be given an overview and can be shown why and how to work with chosen approach. Finally, we separated all members from o…

Barcamp Saigon is one of my most expected events of the year. This year, it took place at RMIT university. As usual, it brought many useful topics to the community. Here is all topics that I have attended.
Scale it! - Lars Jankowfsky
Lars is founder of 8bitrockr.com
How do we make a decision correctly? It is hard to know that until we try and measure it. He gave an example about how good an app was. And, most of people thought that the app with nice user interfaces is good at the first look. But it is not correct because it is only true until we try to use it, even the nice GUI app sometime is not good at UX, functionalities, etc.
The key of success for working in team is collaboration. We can not only base on the experience of members likes: "In my opinions| As I know.... this is the best way..bla..bla.." but we should test it. Therefore, manually testing as well as automation testing is more and more necessary nowadays.
"Don't think, just try" - he said.
She…

I had a chance to join this event today. It was great! Agile Tour Vietnam 2015 in HCMC

For who don’t know Agile Tour, the following is the basic information from http://at2015.agiletour.org/ “Agile Tour has been a way for enthusiasts of Agile to spread the word about Agile practices and to share their experiences, both good and bad, within their local community. These non-profit events occur every year in October and November in several cities.” Many valuable topics were shared to the community. The topic I like best is “Software Craftsmanship” from Mr. Sandro Mancuso. “Software craftsmanship” is an approach to software development that emphasizes the coding skills of the software developers themselves (wikipedia). I would like to share with you my notes about it: Agile is actually “a quick feedback loop”. For example, we review the user stories after 2 weeks, we will get feedback; we apply TDD, we will get feedback immediately, etc.Scrum, a Agile framework, is one main stream of Agile’s …

- The content should be simple, easily to follow, short words rather than long one.
- Use the active voice, positive words rather than complaint one.

2. The "One Thing" rule

- Keep the message focused. The another thing should be written in another email.

3. Be political

- The message is in more the two paragraphs, it should be reduced.
- Use "Please" and "thank you"
- Use phrase that states you are not sure of something: I think that..., It is possible..., The optimal solution...

Changes is constant, software development as well. Do you know the development of mobile phones, starting from Motorola DynaTAC (1973) to Iphone 6 (2014). How about the software? The new versions are released with new improvements.

Software is not always able to automatic repairing. Therefore, software should be changed frequently and we need responding to changes.

In working software today, how about customers' collaboration or requirements?

We ignore the fact that many customers don't know what they want.
We ignore the fact that when they know what they want, they can't describe it.
We ignore the fact the even when they can describe it, they often a proposed solution rather than a real need.
We ignore, that a lot of customers give us a solution but not the problem.