1 month ago
From A to Z: All about Being a Delivery Manager at Scalefocus
We are talking to Atanas Hristov – Delivery Manager at Scalefocus. Nasko, introduce yourself.
I have been with the company almost since its inception – more than 11 years now. I started my career at Scalefocus as a Senior Integration Developer with Java and Java-based proprietary solutions such as IBM Websphere ESB, webMethods, TIBCO, as well as open-source solutions. Over the years, I have moved through various roles and taken on a variety of responsibilities that have greatly contributed to my professional development. What I have learned at each step so far has been extremely useful in my current role as Delivery Manager.
Tell us about your role and responsibilities as a DM at Scalefocus?
The Delivery Manager role at Scalefocus is primarily customer oriented. The DM is the person directly responsible for ensuring that the customer is satisfied with the work done by the team and the delivered software solution to a particular business problem. Of course, the position also includes responsibilities related to the construction, organization and control of the work of the development team, as well as, last but not least, with its cohesion, building trust and promoting collaboration within it. These are precisely the things that directly affect the delivery results.
What are the challenges that you face in this role and how do you overcome them?
Managing multiple projects involves a fairly frequent shift in focus and context, and one of the things that helps me the most is structuring teams properly and assigning responsibilities within them. A well-built structure of people with the right knowledge, skills, and motivation goes a long way in ensuring that the DM always has up-to-date context and information about the status of each project, as well as the specific obstacles that exist at any given time. As for the tools we use, these are mostly well-known methods for communication (Teams, Zoom, Mail), as well as those for managing projects and source code such as Jira, Azure DevOps, GitHub and others.
How do you monitor and ensure quality and timely execution in the delivery process?
Quality and timely execution is directly related to the quality of the people in the team, their dedication to achieving success and their passion for solving business problems using modern software solutions. Of course, this alone is not enough, and this is where following good methodologies, practices, processes and their automation come to the rescue. Some of them, which are important to mention and help precisely with quality and timely implementation, are Agile, SAFe, automated CI/CD processes, Code Review, Static Code analysis and others.
How do you collaborate effectively with other stakeholders involved in the delivery process?
Cooperation with other interested parties or so-called stakeholders is multi-layered and is mainly expressed in communication, setting goals, sharing progress and results achieved and resolving specific obstacles that could block or delay delivery.
One of the main things that enable the effective collaboration of the DM with all interested parties is his ability to “speak the language” of each of the parties – the development team, business users, management, finance and so on. A good understanding of the client’s business domain and the delivery process in its entirety allows the Delivery Manager to consider each important decision with the interests of each of the parties and ultimately find a balanced approach to resolve the specific situation, but always with the ultimate goal in mind to fulfill the client’s requirements in a timely and qualitative manner.
How do you deal with potential delays or obstacles that may arise during project implementation? Can you give an example of a challenging situation that you faced and how you managed to resolve it?
Typically, the problems a DM solves on a daily basis are centered around one or a few of the core aspects of any project—team, budget, scope, schedule, technical challenges, and risks. The best way to deal with delays or other technical or non-technical obstacles is to anticipate them in advance and account for them as dependencies and risks. This makes it possible to predict at an early stage the likelihood of these problems occurring and to draw up a plan on how to resolve them in case they can’t be avoided.
The most common challenging situations we face are changes in the scope of the project during development or a change in the priorities of the different functionalities that need to be implemented. However, the specific example I would like to give is about a different type of challenge that we faced in one of the projects recently and the resolution of which brought great job satisfaction – both from the client’s side and from the team.
The client asked us and several other technology partners to come up with ideas for improvements to their application using any of the modern technology concepts of Data Science, Machine Learning and AI.
Thanks to the team’s excellent knowledge of the business domain and their interest in new trends in the software industry, as well as by bringing in a Data Science expert with the necessary experience to the team, we were able to deliver and demonstrate a working prototype in just a month, which was accepted by the client as the best suggestion for improvement and was approved for further development.
What metrics or key performance indicators (KPIs) do you track to measure success? How do you use these metrics to drive improvements?
There are many indicators, but some of the main ones we track are customer satisfaction, productivity (volume of delivered story points), code review metrics (number of reviews, average time per review), coverage of unit tests, defect density – average number of defects for every 50 or 100 story points of delivered functionalities.
Each of these metrics helps to accurately track the efficiency, quality of work or productivity of the team and allows actions to be taken to improve results in any of these aspects if lagging is noticed.
Let’s talk about optimizing the work process and streamlining delivery services. Have you implemented automation or workflow management tools?
Yes of course. Without such tools, the work would be significantly more labor-intensive and, accordingly, the productivity and efficiency of the Delivery Manager would be much lower. At Scalefocus, we use a specialized solution for Professional Services Automation, which greatly facilitates the management of delivery services and processes.
How do you handle feedback and revisions during the delivery process? Can you describe the Scalefocus approach to effective change and iteration management?
I can’t possibly say whether our approach to handling feedback and managing changes and iterations is exclusive to Scalefocus, but I dare say it’s effective and fosters a culture of continuous improvement throughout the entire project lifecycle.
The approach basically consists of the following few steps:
- Establishing clear communication channels to receive feedback from the client, end users as well as internally from all team members. These channels could be of any type – email, project management tools (Jira, ADO etc.), various collaboration platforms, regular meetings or even chat channels.
- Documenting and prioritizing feedback.
- Engaging and involving all stakeholders in the feedback collection process by regularly seeking their opinion related to proposed changes or solutions.
- The use of a version control system and marking of code changes.
- Following an Agile approach that involves regular iterations or sprints. This allows the team to regularly and relatively quickly address the feedback received and iteratively deliver improvements to the software product or service throughout the development process.
- Implementation of CI/CD (Continuous Delivery and Continuous Integration) pipelines to automate the build, test and deployment process. This greatly facilitates the rapid completion of each iteration and the seamless integration of changes into the delivered software solution.
- Automated testing and quality control – the former provides confidence when making changes and reduces the risk of unintended consequences.
- UAT (User Acceptance Testing) – this is a very important step that is carried out with the participation of the interested parties and especially with the client. Ensures that the delivered software solution meets its expectations and ensures that feedback has been adequately addressed.
- Management of the Release and Deployment processes – controlling the releases, by following a pre-established release process, helps to avoid confusion and ensures that the correct version of the software solution is deployed to the respective environments.
- Post-Release monitoring – proactive continuous monitoring after release allows the team to quickly respond to potential problems and address them in a timely manner.
- Retrospective and reporting of lessons learned – conducting regular retrospectives after each iteration or project allows for improvement and transfer of lessons learned to future projects.