Recently, Agile methodology
of software development becomes more and more popular. Not only does a small
group of software engineers found it useful for rapid software development but
also the big companies tried to apply instances of this methodology for their
projects. Why do big companies take these tries? What is happening to their QC
Specialists? And what should a fresher QC engineer prepare for their start-up?
I am writing to share with you my view point on this circumstance.
Market changes, product changes, company changes
Trend of software market is decreasing in time
of distribution. The faster working product is delivered to end-user, the
higher chance company takes bigger market share to success. Therefore, software
engineers and engineer managers have less and less time to develop their
product. First, to concentrate on building product with codes, they make
significant shifts on level of detail in requirements, then designs, and
testing. Together, all of these shifts resulted in a great change of software
development process. The team size is reduced to ensure better direct
communication and save time. Meeting is shortened and only focus on problem
awareness and r (not solution in details). Referential and controlling
documents are reduced not only in volume but detail levels as well…. Fast or
gradually, companies change their organizational structure and operational
method. So that, engineers face undetailed requirements, high level design, and
challenges in quality controls.
Cross functional team: “QC” versus “BA”, “DEV”
Since development,
coding in tactical view is more and more concentrated, developer is expected to
ensure their work quality in details; product owner, who involved in the team,
ensures the acceptance of product releases, it would seem that we do not need a
QC Specialist in the team. Let’s have a look on traditional QC role’s task. QC
is expected to carry out static and dynamic testing activities. These
activities are reviewing code, documents, define test plan, decide test case,
develop and execute test scripts. One by one, we can see that some task is
eliminated, not required high detail level or could be covered by other team
member, for example:
A high level test plan can be created by collaboration of
team leader, product owner, and may be a developer. They are expected to “play”
with the software.
High level
test case could be derived fast from use cases at high level by team leader
collaborating with developers and product owner.
Low level test code could be developed by developer
role.
Every member can execute test!
Is there any room for QC Specialist in this kind of team?
Luckily, the answer is yes, but it’s not absolutely like the past.
Experience, mindset, viewpoint and advanced testing technique
of QC Specialists are so valuable in the team to ensure the product quality.
However, “QC Specialist” title may be just a nick name of a team member. Low
testing technical required tasks of traditional QC Specialist are share among
the teams, while this team member is expected to be proactive in remaining QC
related task in volunteering time. Not only does this member aim to take these
tasks but also he/she required to have a number of built-in skills from
traditional Business Analyst, Software Developer role, such as understanding
and clarifying requirements, develop software interface, create stubs and
drivers in a mindset of testing driven software, and so on.
Software engineers who balance both coding and testing skill
are rare and highly cost. It is more practical for current traditional QC
Specialists, especially in Vietnamese, to develop themselves to become a hybrid
engineer of QC plus BA and/or Dev. under new configuration of required
skills. And in details, what are these
skills?
Next generation of Quality Controllers in practical Agile:
The new never means to absolute negating the
old. Most of the new that work well inherit many valuable properties from the
ever good old one. So does new type of QCs. New QCs who is expected to play
quality control role in Agile, of courses, are as good as traditional QCs at
testing techniques. These mandatory techniques are: form a test plan, design
test cases, design test script, implement and carry out the test. The better
these skills are, the more value new QCs contribute to Agile team. Traditional
or even new developer rarely satisfied these requirements. This is the first
value of test specialized Agile team member. However, this team member does not
carry out only test related task as in traditional team.
Agile aims at smarter working style, not harder working
style. This implies that traditional skills, first, must be sharpened at an
appropriate level, then be used in a scientific ways which eliminate all
unnecessary efforts at live time. The remaining efforts of new QCs is expected
to use for other valued activities, eg. analyzing user stories/features ....
They may not create and work with formal complex documents, but their documents
are also ensure just detailed enough to be useful and traceable. So we can see
very clearly that there are things that increase and decrease related to QCs in
Agile. Task ability and performance effectiveness of QCs are required to
increase. Formal & detail level of task, documents are expected to
decrease. Very easy for us to understand why a good worker do not need to be
surrounded by heavy aids. What they need are lighter and more effective tools.
Again, to become new, there are many of new skills for QC
him/herself to plus to their skills box. These should be:
•
Critical thinking skill to see whether what they
are doing is valuable.
•
Higher effective direct communication skill to
see the issues and help the whole team as fast as possible (required foreign
language, body language, emotional intelligent ...).
•
Technology ability, especially system designing.
Test driven product could not be well-designed without help from experienced
QCs in Agile.
•
Coding (need
to be further discussed about level requirements and type).
Finally, all of the improvement or transition from traditional
QC Specialist into test specialized Agile team member required a changed in
mindset of the man in that shoes. Mindset, combining awareness and attitudes,
maybe:
•
Open to changes, dare to take challenges
•
Enough -> add new useful, not more useless self-motivate, non-stop work
optimization thinking be friendly, understandable,
responsible.
So, how to prepare for this? I cannot answer this question thoroughly. I
am thinking of teamwork enhancement workshops/events/trainings, personal
development programs, appropriate technical courses, career road-maps, career
road-map based mindset, and personal dedication for career.<Hong Quan To>
No comments:
Post a Comment