Do I Understand the Agile?
If I work in a project which follows the Waterfall approach, I still can apply the Agile Manifesto and the 12 principles behind it.
But, am I adaptable to the change and uncertainty for better ways of developing software and helps others do it? This shows the mindset of me and others involved. Have you heard this line, "every project that claims Agile, it has [a small] waterfall in it?".
Agile Software Development is not wrong! It has values in what it says and for what it stands. I have no doubts in it! It describes how I perform a activity and respond to a situation in the software development.
Frameworks and Methodology
We have picked the frameworks which are under the Agile's umbrella. We pick the methodology that suits our work and have customized it to our contexts.
This is what Agile also say, the team will always need to adapt its use of a framework to fit properly in its context.
Dr. Alistair Cockburn, says, the Agile methodologies are the conventions that a team choses to follow in a way that follows Agile values and principles.
The Agile is Not a Problem!
We do not collaborate well in solving the problem and say Agile is not working and creating more problems.
In reality, how we respond to the uncertainties and what got prioritized, it will derail us. We derail from what we should be achieving as team [and as an individual] in a given time frame and context.
The Agile as I Understand
In a nutshell, the Agile is about
- Balancing effectively with collaboration in the context we are.
- Identifying, learning and solving the problem as a team no matter where we are in the project's timeline.
- Being ready to face the uncertainty and responding to the changes.
- See the progress and value in what we do as a team and bring the "continuous" in practice.
- Having the consistency in the excellence of our work and the value we deliver with it.
Testing and the Agile
Testing is a collaborative activity.
The Agile also talks about collaboration as an essence and necessity in the continuous delivery of the software we develop.
The Agile talks about short interval consistent deliveries.
- How should I fit myself as a Test Engineer here?
- How should I upskill myself to deliver in short intervals as part of continuous delivery?
I ask and say to my test teams,
- Think of delivering value consistently in the shorter intervals.
- Rather saying -- releases in short intervals, call it out as a value to a stakeholder in regular short intervals as a continuous delivery
- It sounds positive, affirmative and profound.
- Upskill and help your peers to build the skills. List the skills, let us discuss and start our practice on it.
- This mindset changes the perception in how you approach the testing.
- In these short intervals,
- Let us prevent bugs in the ways we can think of.
- Finding bugs also need resources.
- Let's start investing in building and improvising the resources to prevent bugs.
- How can we prevent and where to begin?
- For what should we test and automate other than functionality in these short intervals?
- What is the priority?
- If I do not test and automate for evaluating any particular quality criteria, does it impact the value to a customer in what we deliver?
- If I do not test and automate on a particular seam and system's boundary interface, does it impact the value to a customer in what we deliver?
- How am I collaborating with stakeholders?
- Who are my stakeholders?
In short, I see the Software Test Engineering practice in the Agile setup as this,
- We [team] exploring technically and analytically;
- Evaluating collaboratively in the software development and engineering, by having the effective staged feedback loops in place to improvise the delivery;
- By responding actively to the changes and uncertainties that comes anytime in the timeline of a delivery and practice;
- Thus, the consistent continuous delivery is delivered with value to the stakeholders.
Note: This is my observations so far having worked with 46+ startups in my software test engineering practice.
We're Pulled and Hidden From - Shift Right
I and you are said to Shift Left and start the testing from the inception of a feature's discussion. And, further we're said, we have to shift left from right.
Did the Agile manifesto and its 12 principles say explicitly to Shift Left from Right? Who said that?
What I see, How I see and understand the Right and Left here, matters a lot! If I see the Right within the delivery loop, I'm setting a trap to myself to be late and lag back. And, probably this trap gets set in the work, that is, to see the Right in the [continuous] delivery loop. At certain context in continuous delivery loop, starting from Right is a need and necessity.
I see the Right outside the [continuous] delivery loop, as well. In this Right, I see:
- What is coming up in the tech stack and technology?
- How this is a need?
- How this [is to be and] will be adapted by tech solutions we deliver?
- How should I upskill myself here so that I fit into the loop of continuous delivery?
- In short, the Right should be observing the trend and its analysis so that I'm aligned being agile.
- I will be skilled to test and automate in this change and uncertainties.
An interesting part of the word "Shift Left" is, it is coined by a tester named Larry Smith in 2001. Tru-64 UNIX security team wanted to implement a login and wanted the existing code with this change to be tested. The security team decided to involve the tester on day-1, and Larry Smith was assigned to it.
ReplyDeleteToday, the word "Shift Left" as become the more of marketing word in how things get are sold.
References:
1. https://www.drdobbs.com/shift-left-testing/184404768
2. https://web.archive.org/web/20140810171940/http://collaboration.cmc.ec.gc.ca/science/rpn/biblio/ddj/Website/articles/DDJ/2001/0109/0109e/0109e.htm
Here is the manual of Tru-64 Unix and the first section is about Login:
ReplyDeletehttps://manualzz.com/doc/9458586/tru64-unix-security