How to succeed on volunteer projects

Mmelihcoskun
8 min readOct 8, 2022

3 years ago, I’ve initiated a volunteering project within the company. The project is about creating a custom dashboarding application library which was a must for surviving at IoT world. Currently the project has been used in 6 different applications and used for more than thousands devices. I’d like to explain how we achieved our goals with a very limited number of volunteers who can work for Dashy only 2 days in a week.

Intro

We have been developing digitalization products at Industrial Machine Tools domain for more than 5 years. Many of the customers who are willing to use our products require data driven flexible dashboards so that users can easily create their own dashboards and configure it by adding dynamic UI charts bound with real machine data. Although implementing such dashboards are a must for us, because of other higher priority items, we could not get any budget to develop it. Without having a budget, Dashy has been developing by our taskforce team and has been adapted to lots of live applications.

No Money But Need A Solution… HOW?
At the beginning of 2020, I was working as a Product Owner. That times, to understand the position of our products at global and provide better solutions to our customers, I did a SWOT analysis. My analysis showed me that although there was no other application that can support thousands of different types of machine data, users would prefer to use competitor’s product rather than us. Because we cannot visualize the data and raw data will not be sufficient. After that I immediately talked with my manager and business owner to prioritize custom dashboarding epic and I suggested starting development of this epic within next quarter. Business Owner agreed on importance of this epic but since we have higher priority epics that are requested by upper management, he could not spend any budget for the development. This decision was not a surprise for us, but it should not mean that we would give up right now. Then with my manager, we had increased our scope of investigation and have seen that custom dashboarding requirements have been requested by many different customers for different applications which are not prioritized and implemented before. We should think big and find a way to create a library that should support flexible custom dashboarding UI which can be used in different platforms and different applications. So, without a budget how would we develop such a library? Or even if we find a way to develop it, we always insist on highest standards, how should we keep our quality metrics while inventing such a library? Can we create a library that can be a comparable to Microsoft Dynamics UI or “machine metrics”?

As a first step, Dashy taskforce(volunteering team) team is created.

** Hackathons will help you to solve your general problems in a very creative way. You can find really good solutions which may be the baseline of your projects. Do not try to put your answers to the content of Hackathon instead write it as a problem. For example : instead of “we need custom dashboard applications “, write as “We have lots of data that can be visualized at UI but we cannot effort to visualize all off them at our current UIs. how can we help our customers to visualize them…” **

While we were organizing a hackathon, I added the application idea to the content of the hackathon. Colleagues who chose the custom dashboarding topic did an outstanding job. Together with our product comparison report, that project was presented to the Business Owner. We asked his permission for creating a taskforce team within Turkey. Business owner loved the idea and allowed us to work on this topic with volunteers from different teams in Turkey. Of course he would love, we were saying project will be implemented without requesting resources from him :) With that hackathon team, Dashy core team was set up. Every Thursday, we were free to develop Dashy voluntarily.

Base line is important. Create your baseline and how you will develop the project !!!
Dashy core team was awesome!! Together we started creating our infrastructure; Project was moved to git internal repository, for backlog management we used TFS, to handle the deployments and continuous integration we setup Jenkins, for Test Automation or in other words integration testing we created another project by using Cypress, Spring Boot and of course Java, we add planning meetings, grooming's and Retrospective meetings.

First Challenge but Most Critical One !!!
After 2–3 months later, our goal was crystal clear. We should integrate Dashy with one of the most selling dashboarding application in our company named XXX. To do that, we need to develop many features and we should take care about release quality rules. Reaching long term plans has always been difficult for task force projects. Volunteered colleagues must handle their projects firstly and during their project’s release times, they cannot support any taskforces. As a task force team, if we could not reach our goals, motivation would dramatically be reduced. Therefore, we must keep the motivation high, we need strong ownership and dedication to work. In that manner I took several actions:

I championed the idea “everybody in the team is the owner of the project”.

We decided together and we move together. We prioritize the epics together, we did motivation sessions, we believed ourselves and we created our team rule which is don’t say it is not our responsibility :)

Define MVP meetings, quick goals and short deadlines.

In parallel, I deep dived more into the project. I defined small goals together with team. Backlog was created, iterative MVP meetings, which would keep us fresh and live, were set.

Ensure and show our efforts are valuable. Increase visibility of your project.

I did an agreement with Business Owner. He has been participating in all our monthly MVP’s and helping us to find new requirements and enhancing our functionality by his comments. By the attention of the management, marketing activities of the Dashy increased and contribution to the project increased as well. I had a chance to transfer 1 product manager, 1 UX designer and 1 automation developer to the team and of course they are volunteered :)

Fast feature development is important but don't loose so much from quality. Otherwise you cant release your product.

As usual, the code base which was written at Hackathon was not clear enough. Our UIs required major changes. As a team, we have done incremental CSS & Code quality improvement workshops. We knew our goals and we did our best to reach them. At the end of six month, we succeeded to integrate Dashy with XXX. There was no major issue, %80 code coverage was reached, % 80 of all manual tests were automated.

Marketing and advertisement… Don't underestimate what you have been developing. Try to make them visible and visible more.

Third step was integrating Dashy with other applications. After Dashy was integrated with the product, we had observed that our analyses about flexible dashboarding were right a lot. Within 6 months, %30 of all customers who were using the XXX started using Dashy. 100 (out of 1000) machines were configured for Dashy usage. As a result, Product Managers would like to learn more about Dashy. We created introduction videos, we did presentations to different projects and that helps to find our new integration roadmap... We picked one of the projects who has a similar technology domain with us …

If your project is getting popular, you will have more customers. If you have more customers, you will have different problems. Prioritization of requirements are began. You should be very fast. Pressure over you is going to be increased day by day. Don't afraid of it, enjoy it :))) Your business is growing. Try to foresee the future, define your plans step by step.

Within 2 months integration had been completed. Integration duration was not sufficient for us, if we would like to integrate Dashy with many applications, that duration had to be reduced. Simplifying integration steps was became one of our goals as well. In the end, we can integrate Angular or React based applications within 3 weeks.

If top management pays attention to any project, they would like to help you. To do that, they provide you more resources but at the same time, they expect more and more.. Increasing the number of resources to 2x does not mean that number of features will be increased 2x as well…

After Dashy was integrated with 2 different applications, we have been getting more popular. We had a high traffic of requirements which were coming from different customers or product managers. Although we loved getting popular by the customers and having more support to our clients, we still lacked the required workforce to run such a project. As we had already earned the trust of the Business Owner, I thought it would be the correct time for asking budget finally. He approved the requested budget so that we could hire a colleague who can work for Dashy full time. I believe that we hired the best. We caught the wind together with our new hired colleague. He helped us a lot on many topics such as supporting multiple platforms, CSS improvements, web component-based deployment and so on. By his help and together with the team, everybody started to say that Dashy UIs were looking so professional that it could be a competitor to any dashboarding application in the world !!!

If you are working with smart, creative people, if your colleagues really owned the project, I believe you will have a chance to innovate and grow. New ideas should always be welcomed…

Final step new library SOUL was created. Since Dashy is a library and it could be adapted to any application very easily, instead of adding whole Dashy as library, Product managers started to ask for specific requirements like having some specific charts for their apps so that they would reduce their development efforts significantly. Our structure was well organized, and we thought some of our charts could be moved to an artifactory as a library which can easily be adapted to any application. As a result, we invented SOUL (Sharable Opensource UI Library). After SOUL was published, 3 different applications have been started using SOUL directly. Currently 5 different application is using SOUL in production.

In conclusion, we believed a lot in Dashy, we showed our start up soul, and we never gave up. Results have been very fascinating. We have changed many of the applications’ UI look and feel. For any project, implementing such a dashboarding application would take at least 1 year but with help of Dashy that duration reduced to 1 sprint (3 weeks). Currently number of applications that are using Dashy is 7 which means we reduced at least 6 years of cost totally. Dashy became more and more popular nowadays… It will be executed platform independence. We will integrate Dashy within another product family “edge box solutions”. We’ll be able to connect any datasource in the world. So Dashy will become a hub for many IoT applications. Until now, we have reached our goals, but it is not over. Our impact and responsibilities have been increased a lot. We will support more and we will develop more. At the end, I believe every application in our domain will be affected by Dashy and SOUL.

In long story short, if you have a lack of resources and one of the challenges was keeping your project alive :
1. Decide together with the team
2. Don’t forget to ask for feedback
3. Define MVPs
4. Celebrate your achievements
5. Trust your team
6. Always have a next plan

I hope my article inspires you and helps while managing your startups or any projects:)

Thanks for reading my article.

--

--

Mmelihcoskun

Heyyy !!! I’m Melih Coskun. I’m as a software development manager and technical product owner. I’d be really glad if you share feedbacks about my stories.