Highlights of interview with Alwin Chin – This Mobile Life (S01 E09)
Hey everyone, Matt here! I promised over at my episode 9 podcast that I will post highlights on “Agile Toolkit For Product Teams”.
I interviewed Alwin Chin, and he shared some background about Agile and how he uses it to work with his development teams. Alwin has many years of experience in web tech and eCommerce app development. He is the founder of Stampii (a universal rewards card program). He has also worked at Macquarie Bank, NBN and Transport NSW.
Alwin emphasises that we can choose whatever development management tools & practices we want as long as it helps ship the best product to customers as soon as possible, at the lowest cost possible. For him, Agile has been the most effective tool that has helped him and his teams, and maybe it will be for you too. Read on how he does it.
About the Agile Method
Agile is a method of managing the processes of product development. Agile is a tool kit that helps build and ship software faster. The method was founded when a bunch of people got together and expressed frustration over the prevailing procedure to develop software. The popular method then, Waterfall, made software development time consuming, expensive, and did not optimize the developers’ and users’ input to make the best product. Changing anything while making the product was also a costly mistake.
The Agile founders agreed on a manifesto that stated the priorities when developing software: to optimize resources, plus the developers’ and users’ inputs during production. This is the manifesto:
“We are uncovering better ways of developing software by doing it and helping others do it. Through this work, we have come to value:
- Individuals and interactions over processes and tools
- Working software over comprehensive documentation
- Customer collaboration over contract negotiation
- Responding to change over following a plan
That is, while there is value in the items on the right, we value the items on the left more.” – Agile Manifesto
You want to get software working as quickly as possible. Test it on customers, validate, give feedback, allow for changes in scope. Requirements change all the time. Developers have to have flexibility with scope, budget or timeline, and Agile addressed this flexibility to change.
The people who set up the Agile Manifesto brought with them a couple of key flavours to implement Agile. These include:
* Extreme Programming
* CI-CD (Continuous Integration-Continuous Deployment), but CI came out first
* 40-hour work week
The Lean approach is similar to Agile but comes from a different history. Both aim to produce the best products. But Lean was born from the needs of the manufacturing industry. The Lean approach focuses on: What are the things we really need to deliver? What are our priorities? What are the things we can cut out?
A product owner can manage the vision, the goal and clarify how the product should be. The Scrum Master helps the product owner clarify if the business requirements have been met. The scrum master provides the reports and documentation to the product owner. When Agile was new, Alwin became a scrum master after a week’s training with Agile founder Alistair Cockburn.
Scrum can be used in mobile apps development, but also just about any purpose (even personal matters, like holidays).
Preparing for Product Development
- Use scrum to figure out budgets, time frames, release. It helps measure / forecast better with relative sizing.
- After estimating, engineering team can tell the product owner, this is how much effort is required to implement this with the team. This needs to be compared with how much value is created by these new features.
Hire good people at the outset. The most successful team is where everyone works well cohesively, everyone is very competent, very good. No one has the hero complex that says, “I am the 10x developer.” Alwin recommends that a team with members no bigger than 5 is ideal.
- See the degree of technical competency. Give a small technical test to see the style of code, how they write, and other notable details that indicate competence.
- After determining technical competence, go through other aspects about person.
- See how the person learns. If the person is not as well-versed in the tech but passionate to learn, consider that many things can be looked up to learn.
- Assess how person will fit in culturally, according to Agile. Find someone the team can have fun with, and contributes to a friendly team environment.
- How does the person take instructions?
- How does the applicant handle conflict?
- Does the person share knowledge with peers?
- Would the team feel comfortable working with this person?
Don’t forget to minimize the cost of hiring.
Can non-tech hire developers well?
Alwin has not seen this happen yet. There are many things to consider besides delivering high quality code. There are also the proper management of resources, money, time, people that have to be optimised.
Working with your team using Agile
- Stand ups are short meetings and part of continuous improvement. Everyone meets frequently, where meeting are held standing up. This keeps meetings short. Teams can say what they did yesterday, what to do today, any issues blocking and how can they help each other out.
- Retros can help the team to reflect back on how a sprint has gone, or the length of time that you have executed some features that the team can dedicate itself to. Retros can address these questions:
- What did we achieve?
- Did we hit our goals?
- What can we do to make sprints better?
- What are the stories?
- What things did we miss?
- What stories were estimated well, executed well?
- What are the stories that happened that made us didn’t do that particularly well?
- What do we do to fix that?
- What do we do chase it up?
- How do we bring down that sprint to lower the points and improve? Learn from current and apply for the future sprints.
- Pick 3 things and focus on that on the next sprint.
- Agile showcase: You’re so focused on delivering quality code, but you want to present to stakeholders that you are holding on to your promises. It’s an opportunity to touch base and show the product is what you are hoping for.
Agile for working with remote teams
Alwin touches base frequently with his international developer teams with daily stand ups, and recommends these other practices:
- Make it a point that the team feels an almost-physical presence as you all work together, rather than just looking a screen.
- Meeting preparation is very important. Give time to organise what to discuss, what things to share screens about and sections of code to share. Notes on what needs to be changed, a feature, button, etc.
- Hear each individual’s issue, where they are getting stuck, so that appropriate assistance can be provided.
- Recording matters on video for discussions, changes needed to be done is recommend. Recorded video shows what happens during interaction, so this is handier than screenshots. The video can be uploaded to Youtube, and send link to teammates. Can use Jing, Screenflow and Camtasia for recording videos.
I hope this episode got you interested in using the Agile framework if you aren’t using it yet.
Post a shout out in the comment section below if want to share your experience how Agile helps your team, if you have an urban legend that certifies Waterfall works, or if this episode got you interested to learn more about Agile.
I’m out like ,
If this post interested you to listen to the podcast, here it is:
Please share to your friends. Thanks!
Agile for Humans Podcast
Thought Works Podcast
All Things Pivotal by Pivotal Software Podcast
Alwin Chin on LinkedIn and Twitter