Balancing between the roles of being a leader, developer, and an architect, Badia Daamash walks us through his work life and what a day at the office looks like for him and his team. He explains the nature of working in sprints and how engineers complement one another in the team while keeping up a consistent rate of momentum. We also gain insight into how he measures success considering the nature of his work environment as well as the world of software development outsourcing. Badia provides perspective about the tech industry and the factors involved in working at National Geographic.
1. Can you walk me through the daily tasks involved in being a Tech Lead at National Geographic?
I like to start the day with checking the status of the sprint, not just from a stand-up perspective, but truly from a technical perspective. I check in to make sure we don’t have any technical blockers or dependencies still unsolved. Connecting with my Technical Product manager, to align on product and technical roadmap. Address stakeholders technical request.
2. How many developers are there in your team, and how do their roles each complement one another?
I have three brilliant engineers on the team, two developers and one QA engineer. Having the QA engineer embedded helps as we start adopting Behavior Driven Development. Being involved in early staging of the grooming of the story, to estimation helps start writing test while development is going in parallel.
3. What are the methods you use to manage project communication while working on a designated project together?
Leveraging Slack as our communication tool to create private channel and rooms related to the designated project. We have the PMs and POs all in the room so we can communicate progress and impediments in one place and everyone gets the same update. If there is a solution decisions to be made, we get on a zoom call or grab a room with a whiteboard.
4. How do you measure success when it comes to assessing the work of your team?
Quality of the work that we put out. We measure the success based on the completion of the feature we put out. Not how many sprints it takes, though it helps to deliver what we committed to in the beginning of the spring, but to us quality trumps timing. If we need an extra week to wrap it up and not accrue tech debt, then we negotiate with the POs and PMs and communicate it out to the stakeholders.
5. Have you faced any challenges in trying to balance between your role as a leader, developer, and an architect?
I still challenge myself everyday to balance the roles. I try to lead by example when we are developing engineering standards, so I try to find time to do some development. Being on the services team, building APIs demands to do systems thinking and architecting based on the full solution end to end, and not just our piece of the system.
6. Are there any practices that you follow to ensure that you create momentum within your team?
I’m a big fan and advocate for design first approach. We try to design all features we are going to code, once we review the design as a team, implementing with code becomes very quick, and give our QA engineer head start for automation testing.
7. What do you believe are the benefits of outsourcing software development for businesses?
I believe in having the right tools for the right job. When we try to design new systems, sometimes we have to pick a set of tools/languages that we don’t have enough experienced resources in house to deliver the desired solution on time. We also know hiring process takes time, so we turn to outsourcing to work with companies who will have a pool of engineers with the desired skills for the project. Knowing that option is there, give us technology freedom, and who doesn’t like that.
8. What do you believe are some common misconceptions about software developers?
Software developers are not product owners, or project managers. It is not about if they can do it or not, but that usually leads to cutting corners and accruing technical debts just because we software developers might not have the big picture or the business goals are not clear for everyone.
9. Do you believe that the size of a business matters when deciding to outsource software development?
Not really, everyone can benefit from outsourcing.
10. Are there any groundbreaking trends within the development industry that you believe people should watch out for in the near future?
Blockchain, that’s the next big thing.
11. Is there any potential advice you would give to new hires to succeed?
I would always advise to be a student of the field. Always push the envelope on technology, even if the answer is always no. Speak up and ask questions, that’s how we build a team and excel further, because communication is key.