“ Focusing on bettering the process and not just the outcome has helped improve the quality of our deliverable's and customer satisfaction”
I thought ill share my perspectives on our learning's as a team on executing service based projects - and the key word I have chosen today is ‘process’. I have worked in firms which have excellent processes in place and tools to support the same, but these thoughts are from an early stage startup perspective.
Focusing on the process and by validating our learning's have helped us improve the quality of our deliverable's and client relationships. Asking the right set of questions at the right phase of execution to get more clarity on the bigger picture is something that we wish to continue. Our innate or compulsive reaction is to jump right into the execution phase which we can choose to be aware of and focus on following the process.
There are many stages involved in a project execution, right from requirement analysis, right through the final delivery and support, where we can apply a process to better the experience of implementation and delivery.
“ Clarity of the problem statement from a client's perspective” - What is the client trying to solve and why?”
Capturing notes, right from the initial discussions where we spend time to understand the clients requirements and the problem statement. We focus on the process of understanding the problem statement with clarity before we start thinking about the design phase or technical solutions. For this we have to ask the right set of questions to understand what the client is trying to solve and why.
“Deep diving and figuring out all the details of the technologies, dependencies, and time frame needed to solve the problem”
Once we get clarity on the requirements, we make it a point to pen our thoughts down and review the same with the client. This is to make sure that we are all on the same page and there are no assumptions that are not correct. After which we brainstorm the possibilities of using technology to solve problems.
What is the best way to solve the problem? So in some cases we have chosen not to implement / deploy technology to solve clients issues, but rather suggest something that would be readily available in the market because that was a more efficient, cost effective and faster solution.
“Capturing the important design elements and reviewing the same with experienced team members to identify the risks involved”
We stick to creating a design document and reviewing the same with the team. This is a crucial state where we need to get clarity on why we are doing this and how address the problem. We analyse the risks associated with the design / implementation and chart out the mitigation and contingency plans. Review is a key element in this stage and its part of our process.
Estimation & Timelines
“Coming up with the best possible estimation and timelines for our deliverable's”
This is a tricky part and we have not yet mastered the art of a perfect estimation, but I think that is also fine and it takes a lot of experience to get this one right. Now we divide the tasks into sub tasks and use the help of CI / CD tools such as Jira to break down the design to tasks and assign timelines to the same. We also assign the ownership of the task to each team member. Once this is completed and captured, we share this with the client and get the approvals.
“Sticking to a continuous integration and continuous deployment process during the development phase”
Jira has helped us stick to a CI/CD approach in the development phase. This way the customer always gets a feel of the deliverable and progress from our end and we keep the communication channel always open. We have weekly stand up meetings to analyse where we are with respect to our deliverable's and committed dates. Communication is a key when it comes to executing projects. Its important that we call out the risks (planned or unplanned) and let the customers know about the same and not wait till the last moment. I feel its important to take the client along the journey.
We need to keep up and address any review comments from the customers or the internal reviewers and stick to what has been committed in our stand up meetings.
“Automating the unit and feature testing before code review and commit process”
Having a small team doesn't mean that we can take this as an excuse to not test our deliverable's thoroughly, especially when we are working under stringent timelines. We need to work on a unit test and feature test plan depending on the complexity of the project. Having automated scripts to execute the unit test before sending the code for review is part of the process. Once we complete the delivery, its important we do a feature test before the final release. Also having a version control will always help for code and documentation.
Delivery & Documentation
“Capturing the all the details to provide clarity to the client on installation, execution and features”
Having detailed documentation as an installation / feature guide which will help clients get clarity on the working of the feature / product and maintaining the code base is a great value add.
Follow up & Support
“Analyzing constructive feedback to improve our process and execution”
Getting feedback from the client on how we flared on our execution and delivery will help us improve our process.
Post project analysis
“To improve our process of estimation, design, implementation and delivery”
I feel its important that we have an internal discussion on how the project was planned and how we had executed the same. This analysis will help us find out the flaws in our process, decisions, tools, assumptions and will help improve our execution skills.