Thursday, April 6, 2017
Bean Test: Vịnh xuân quyền và những tố chất cần có của một Te...
Bean Test: Vịnh xuân quyền và những tố chất cần có của một Te...: Cũng giống như bao môn phái võ thuật khác, Vịnh Xuân quyền là một trong những môn võ thuật với phương pháp luyện tập hiệu quả để giữ gìn cũn...
Saturday, April 1, 2017
Questions to James Bach
I had a pleasure to talk to James Bach when he came to Vietnam last summer. He is a father and a teacher who enlightens people about metacognition in software testing. His knowledge covers many areas of software testing, from context-driven testing, heuristics, tester careers, to the secret life of testers. If you have an opportunity to learn from him, you will absolutely agree with me on how talented he is.
1. What would you do to make sure the quality of the co-located Agile Project?
James: You are going to need a lot of planned communication, because communication will not happen naturally when people are far away. I suggest daily conference calls. Distributed projects take strong leadership to get people to come together. I also suggest that key people should periodically visit each other, instead of relying only on electronic communication.
(“Co-located Agile project means Agile team members are located in different location or multiple agile teams are working on different parts of the product from different location.”)
We all know that in Agile environment, the high speed and quality is the first priority. People seem to work without taking break, and the quality is measured not only based on the project but also based on the team characteristics. Hence, the human factor is the key in ensuring project quality, which means that effective communication could influence the success of the project. James’ opinion woke up my mind about some ideas about the communication in co-located Agile projects.
Firstly, the effective communication is determined by the language, product, tool/technology, and process knowledge of the team, which have to be synced at the same level. In order to communicate effectively across distance and time zones, distributed teams need to speak comfortably the same “language”. It's not only the language such as English, German, or French, but also product terms, tools/technology features or processes, in which each team will have to be at similar level in these in order to speak and understand each other.
To be able to synchronize, you need to take extra steps to ask concise and valid questions, to clarify requirements or requests, to review the outputs before it's going out. With the equality of knowledge, each distributed team should be able to make decisions for their internal matters, in order to implement self-management principle. One team should not tell other teams what and how to do.
Secondly, applying the suitable communication tools and methods could also play and important role in the success of team communication. There are quite plenty of communication methods to select, from direct communication (Face-to-face or Video calls) to indirect ways (Email, Forum, or Text chat). Also, you can consider some popular and useful communication tools, including: Skype, Slack, Confluence, GoToMeeting, or Google Drive, which support easily to communicate between onshore and offshore team. Those methods and apps can help eliminate the distance in time zone and location.
Additionally, for better communication effectiveness, you need to arrange the scope of work reasonably and support clients properly, it’s will help to connect smoothly. To tighten the business, it is advised that we can visit the onshore/offshore regularly to build relationship with teams and instantly respond to the release/milestone/technology changes.
2. How would you define testable code? What are your criteria?
James: All code is testable. Some code is more testable than others. Testability in code just means how easily you can test it. Code is more testable when it is observable and controllable. Ask for function-level logging and scriptable interfaces. Also, code is more testable when it is simple and when it is decomposable. Decomposability is the ability to separate the components and test them in relative isolation.
To be more specific on James’ opinion, I think of some simple ways to define a testable code such as: code’s logic, code naming convention, project structure/architect. Testable code always includes the ability of extension, being easy to maintain, re-use, and upgrade. This article is a typical example for understanding readable code fifteen most important best practices for writing super readable code.
3. What type of skills should the tester pick up to move into DEVOPS world?
James: I don't know that much about the DEVOPS world. But that world doesn't welcome testers. It welcomes developers. So the first required skill is programming. Then you have to look for the tools to support your testing work.
There are some tactics that testers need to pick up in order to move into DEVOPS:
- Live site testing: Testers have to test the product in production, after it is released.
- Collect and analyze feedback from users in the field. React quickly to any emerging concerns among the users.
- Advocate for testability. It’s critical that the product be built with testing in mind.
I totally agree with James about the above points of views. Besides, we testers need to improve the ability to understand coding, scripting, build-production, tools, and operation system such as Linux, Windows.
4. How do you define what type of information should be included in a final report to the client? What type of information is useful and what is not?
James: There is no perfect report. There is only the report that gives values to clients.
Here is some advice:
+ Build credibility (by being credible).
+ Know the context of your tests (test framing).
+ Never use a number that is out of context (e.g. no test case counts)
+ Highlight general test activities (put test in the right context).
+ Highlight product risk (put bugs in the right context)
+ Build credibility (by being credible).
+ Know the context of your tests (test framing).
+ Never use a number that is out of context (e.g. no test case counts)
+ Highlight general test activities (put test in the right context).
+ Highlight product risk (put bugs in the right context)
We can build final report with three levels:
+ Level 1: Facts and truth about bugs and observations
+ Level 2: How do you get those facts? How to test those facts?
+ Level 3: How do you know if the test is good? Why is the test good enough or not?
+ Level 1: Facts and truth about bugs and observations
+ Level 2: How do you get those facts? How to test those facts?
+ Level 3: How do you know if the test is good? Why is the test good enough or not?
5. How do you estimate the effort of testing in a project?
James: There is no magic spreadsheet that tells you how long testing will take. But good estimation starts with visualization. Can you picture the testing process in your mind? Many testers have trouble doing that. But if they are not clear what testing will look like and feel like, they also won’t have any idea how long it will take.
Behind that question is a list of other questions that we can figure out and answers to give ourselves the ability to estimate the effort of testing in a project:
o How much time is really needed for testing?
o How long would it take to finish testing?
o What is the least amount of time we could allocate to testing?
o How much testing is needed to assure a high quality solution?
o How many test cases will be needed?
o How many testers are required?
o What testing skills are required?
o How much will the testing cost?
o Do we need to test them all?
Only five questions for James, but he has shared a lot of useful knowledge and experience including: defining problem, questioning, and thinking about the object in the way of co-located Agile Project, testable code, skills of testers, creating a good report and estimating the effort of testing.
Thanks James very much!
Tuesday, March 28, 2017
Thursday, November 24, 2016
Những biện pháp giữ người tài cho công ty
Nhân viên giỏi thường
không tìm kiếm các công ty trả lương hậu hĩnh. Thay vào đó, họ thường tìm kiếm
công ty, nơi tạo ra việc làm ý nghĩa và thúc đẩy sự nghiệp thăng tiến. Một
trong những lợi thế cạnh tranh giữa các công ty ngày nay đó chính là nguồn nhân
lực sáng tạo, có tư duy phản biện, và dám nghĩ dám làm. Dưới đây là 6 chiến
lược công ty có thể áp dụng để xây dựng lợi thế này:
1. Dùng việc thu hút nhân tài như là
một cơ hội marketing
Quy trình tuyển dụng có thể là một công cụ xây dựng thương hiệu
quan trọng nếu được quản lí chặt chẽ và hợp lý. Trong bảng tin đăng tuyển, hãy
miêu tả chi tiết văn hóa công ty, sự kiện công ty, chính sách tiền thưởng. Cần
phát triển mục tuyển dụng chuyên nghiệp trên trang web công ty nhằm gây hứng
thú cho các ứng viên.
2. Tạo một văn hóa có sức hấp dẫn mạnh để giữ chân nhân tài
Không gì thu hút nhân tài đến với công ty bằng chính nhân tài
giỏi của công ty đó. Những ứng viên xuất sắc luôn bị thu hút bởi những nhà lành
đạo tài ba. Điều quan trọng là cần xây dựng đội ngũ nhân viên giỏi gắn liền với
thương hiệu công ty. Ứng viên có thể ấn tượng với thương hiệu công ty, nhưng
cuối cùng, họ cần được thu hút bởi những người tài giỏi mà họ sẽ làm việc
chung.
3. “Quảng cáo” ưu điểm của công ty – một công cụ xây dựng
thương hiệu
Công ty cần đưa ra những lí do để giúp nhân viên hiểu rõ tại sao
nhân viên nên làm việc tại công ty. Đó có thể là môi trường làm việc với những
cải tiến không ngừng, cơ hội đào tạo tốt, hoặc đơn giản là bầu không khí thân
thiện, tinh thần hợp tác cao. Ngoài ra, văn hóa doanh nghiệp cũng rất quan
trọng trong việc gìn giữ và phát huy nguồn nhân lực. Một môi trường làm việc
minh bạch, rõ ràng cho hiệu quả làm việc cao. Nhưng để giữ người, cần phải xây
dựng mối liên hệ đoàn kết, thân ái, vui vẻ phấn khởi trong Công ty, làm sao để
mỗi người đều cảm thấy mình có liên hệ rất mật thiết, có vai trò không thể
thiếu trong tập thể. Bên cạnh đó, tăng cường các hoạt động ngoại khóa, sinh
hoạt tập thể để giúp nhân viên rèn luyện kỹ năng sống, và giúp phát hiện những
yếu tố tài năng còn tiềm ẩn.
4. Cung cấp cơ hội phát triển – cách thức quản lí đầy hấp
dẫn
Giúp nhân viên thấy vui vẻ là điều quan trọng. Ví dụ như nhân
viên mong nhận được phản hồi và đánh giá kết quả đào tạo về khả năng làm việc
của họ trong công việc thường ngày, hoặc những nhân viên giỏi muốn được thử
thách và công nhận, hãy đảm bảo công ty có những thử thách dành cho các cấp
quản lý, cơ hội học tập đặc biệt để giúp nhân viên phát triển sự nghiệp và hoàn
thiện bản thân với những điểm như sau:
- Tạo cơ hội thăng tiến và thể hiện bản thân.
Việc đề bạt, thăng chức phải được công khai rộng rãi trong toàn
bộ doanh nghiệp. Các tiêu chí nên được mô tả một cách rõ ràng, chi tiết. Nhà
quản lý nên tăng cường phân quyền nhiều hơn, giúp cho nhân viên được độc lập
suy nghĩ và độc lập ra quyết định. Đây chính là nhu cầu tự khẳng định và được
tôn trọng trong thuyết nhu cầu của Maslow.
- Đào tạo
Điểm mạnh của những nhân viên giỏi là khả năng học hỏi không
ngừng. Hiểu được điều này, các doanh nghiệp Việt Nam cần tổ chức các khóa đào
tạo hàng năm, giúp nhân viên nâng cao kỹ năng, khả năng của mình. Với điều kiện
tài chính còn hạn hẹp thì các doanh nghiệp vừa và nhỏ nên đào tạo tập trung, tổ
chức các khóa đào tạo chuyên nghiệp, chất lượng, chứ không nên dàn trải.
- Tăng thêm tính hấp dẫn cho công việc.
Chúng ta biết rằng khả năng lớn nhất của một nhân viên giỏi đó
là sự sáng tạo.Tình trạng “ không có đất dụng võ”, không thể hiện hết kỹ năng,
khả năng sẽ sớm giết chết những điểm mạnh của họ. Tất yếu họ phải ra đi. Do đó,
các nhà quản lý nên giao cho những nhân viên giỏi các công việc mang tính mới
mẻ, gia tăng tính thử thách trong công việc, giúp nhân viên vượt qua bản thân
họ, giúp nhân viên tự tin hơn, yêu công việc hơn.
- Khen thưởng.
Hiện nay, hầu hết các doạnh nghiệp đều thưởng vào các đợt lễ
hội, đặc biệt là vào dịp cuối năm. Nhưng họ cần nhận thức được rằng, thưởng kịp
thời là một hành động tích cực góp phần nâng cao thành tích nhân viên. Điều đó
có nghĩa là các doanh nghiệp Việt Nam nên gắn liền phần thưởng với thành tích.
Mỗi khi nhân viên nào có một đóng góp lớn cho tổ chức thì phải thưởng và tuyên
dương ngay sau đó chứ không phải là chờ đến các dịp cuối năm, thưởng một cách
đồng loạt ( như họ đang làm)
5. Đẩy mạnh cân bằng công việc – cuộc sống
Cho phép nhân viên làm việc tại nhà, dẫn con đến cơ quan vào một
ngày làm việc, hoặc tổ chức những sự kiện giữa tuần sẽ tạo được sự cân bằng
cuộc sống. Hỗ trợ nhân viên giữ được cân bằng cuộc sống và công việc sẽ giúp
công ty giữ chân người tài.
6. Linh hoạt và gắn bó như gia đình
Vậy các công ty nên làm gì để nhân viên trẻ không nhảy sang công
ty đối thủ? Chính sách gắn bó như gia đình như nghỉ thai sản, lịch làm việc
linh động, nghỉ phép rất cần thiết. Ví dụ như công ty có thể cho phép làm việc
tại nhà trong thời gian ngắn nếu nhân viên có việc gấp cần giải quyết, tổ chức
khóa thiền, Yoga trong công ty để rèn luyện sức khỏe thân và tâm.
Nói tóm lại, để giữ được người tài cho công ty, không chỉ từ 6
yếu tố trên mà còn rất nhiều yếu tố khác cấu thành. Bên cạnh đó người CEO cần có
những tư duy chiến lược hoàn toàn đúng đắn và chính xác về cơ chế nhân tài,
nhạy cảm linh hoạt trong mọi hoàn cảnh để có thể giữ được người tài cho công
ty.
Sunday, July 31, 2016
The Importance of Building Teamwork
These days, our work moves at a quick pace and organizations are continuously expanding, we’re quickly bringing on new clients, and team members come and go. This provides a unique opportunity to create relationships, but the importance of building them often gets ignored. As a technical resource, we are often so focused on getting the next build or test run that we don’t invest the time to build teamwork. But if we do, it can help us improve productivity, create friendships, and even benefit our lives outside of work. But why is it so important?
1. Synergy is the combination of individual strengths, skills and expertise, and the ability for those to make up another team member’s weakness. Synergy is the spirit of teamwork. When you work alone, you may develop your independence, but you also risk overload, burnout, and not having the best skillset for the job.
1. Synergy is the combination of individual strengths, skills and expertise, and the ability for those to make up another team member’s weakness. Synergy is the spirit of teamwork. When you work alone, you may develop your independence, but you also risk overload, burnout, and not having the best skillset for the job.
2. Creating a good support network is also important in a team due to the varied working ability of each team member. Some people are known for cranking work, undistracted, while others are good for listening, understanding, or supporting others. A strong team needs to create an environment promotes a positive working environment and cooperative attitude for all staff members. It’s important for group members help each other, reply on each other and build trust within the group.
3. Sharing workload helps members in a team complete more, together. And working together with the same goal helps member improve quality of work. The more easily people on a team work together, the better the results are. Moreover, working with others to coordinate schedules, meet deadlines and make decisions will strengthen the team’s interactions.
4. Enhancing communication is also key to success of the team. We need to share what we feel and what we need, in order to communicate it clearly and effectively. During the course of a project, discussing ideas and collaborating developer your own skillset as well as those of team members. Not only that facilitate an open discussion but each member of the team will also be adequately informed.
A successful team depends on not only mental attitude of the whole team but also the leadership skills of the team leader. Dwight D. Eisenhower said that “Leadership is the art of getting someone else to do something you want to done because he wants to do it”.
Leaders help themselves and others do the right things by building a vision that solves complex problems, generates new ideas, coordinates individual activities towards a bigger goal, provide support to team members, gives people a sense of belonging, and helps people learn from each other. Leadership is also about mapping out where you need to go as a team; it makes working in a team more dynamic, exciting and inspiring.
When we combine a good leader with good teamwork, everyone benefits from a better working environment. Understanding the values of teamwork is critical to keep employees engaged, happy, and productive.
HoaLe
Refer: http://b4usolution.com/
Saturday, July 9, 2016
Different opinions of James Bach in software testing
On the occasion of STC Conference in July 2016 in which James Bach is a keynote speaker, the STC club has posted several introductions of James’ thoughts and teachings ideas in software testing. I am posting here additional James’ additional opinions and ideas on software testing that depart from the conventional thinking. read more
HoaLe
HoaLe
Wednesday, January 20, 2016
Celebrities have an important influence on young people’s characters
In today’s society, the development of technology such as television
sets, magazine covers, internet blogs, facebook, linkedin, youtube, tabloids
news makes us more connected to people. The devices also make young people plastered
with images of these tacky celebrities which are scientifically proven to have
influence their characters.
For me, a young person, I always find some celebrities
having some interesting things to learn such as Jack Ma, DaiLai LaMa, Thich Nhat Hanh, Steve Jobs, Bill Gates who brings many things such as “Only the development of
compassion and understanding for others can bring us the tranquility and
happiness we all seek” Dalai LaMa. I think almost all young people are also
finding a celebrity to be their idols to learn and motivate some aspects of
their life such as actions, living philosophy, work, family, relationship with
people, friendship, between people together of their.
However, I want to talk about spirit and ability of
Dr.Richard who has given me a big motivation to compose the articles “7 keytraits to Master Novice Testers”. His enthusiasm has encouraged and inspired to
me and many other people to feel the passion and willpower to learn and strive
constantly all the time. Although he passed away, all his spirits are living
forever.
Young people are more likely to listen and have action following
celebrities than their parents. And it is important for parent to quell the
negative influence that a celebrity can have on their children. Some of the
influences come from media sources which trends to thrive on negative behavior
of celebrities like some people who spiral out of control such as drugs,
alcohol and all other actions will affect habits of young people who are always
rapid learning and imitating, which does harm their mind which are making a
negative difference in other lives.
HoaLe
Subscribe to:
Posts (Atom)







