The 2020 pandemic has shifted a lot in business, but the IT industry has probably had it the easiest. After all, we’ve had many remote practices already in place for years. It’s enabled a lot of companies to optimize their operations and budgets, e.g. by using outsourcing to cut the costs. Hiring remote employees, contractors and service suppliers opens up a world of new opportunities, but it does have a few drawbacks as well. Keep on reading to find out how we fight them and how the recent workshops in Switzerland helped us tighten the cooperation with our BitcoinSV client.
Remote vs face-to-face
It makes a lot of sense to work with a software house remotely. First of all, there is the most obvious argument: price. Simply speaking, outsourcing allows you to save a lot of money while keeping the same level of quality. Not only that, but when you get to choose who you want to work with without any distance constraints, you can make a far better decision, e.g. going for a company that specializes in your niche (like we do in blockchain and bioinformatics).
While the distance proves troublesome in a lot of industries, that usually isn’t the case in IT. After all, if we have our computers and a good internet connection, we’re ready to rock, no matter if you're on the other side of the room or the globe. This model has been working for years now and it’s proven totally successful with tons of satisfied clients swearing by it. But, as with everything in life, even the best things need to have at least a tiny drawback. In case of outsourcing it must be the lack of face-to-face contact.
Chats, video calls, online workshops — these are all great and completely sufficient 99% of the time. Occasionally though, you do get the feeling that an in-person meeting would bring more to the table. There are some intangible benefits from bouncing ideas off a living human being that stands right in front of you that simply cannot be recreated using a camera, no matter how hard you try and how many online project management tools you use.
That’s exactly why we make an effort to fly out to see our Clients regularly. We’re lucky to be based in Wroclaw, Poland with a major airport at our disposal. This time, we got there to visit Zurich, Switzerland.
Workshops with Centi
We’ve been working with the fin-tech BitcoinSV startup Centi for over half a year now. It’s been a great adventure to create an MVP and work on the product’s vision together with the Client. Because the solution is so innovative, there is a lot of creativity needed in order to fuel it. That’s why as soon as it was possible to travel again (and the vacation season slowly came to a close) we’ve decided to meet in person. While you might think that it was just an excuse to see the beautiful city of Zurich, Switzerland, in reality we’ve had a lot of concepts to work through. And so… off we went.
It was a five-day long trip, including the weekend. Code Poets were represented by three strong players: two of the developers who work with Centi and my humble self. We’ve made sure to prepare a detailed agenda beforehand to make the most out of every hour. Thankfully (and we have mostly our Client to thank), it wasn’t overpacked, so we had the necessary time extra not only to amortize any possible delays, but also to simply rest and make sure our heads are in the right condition for some serious work.
We’ve left Wrocław, where most of us are based on Wednesday to get picked up in Zurich by Ben, our Client, at 9.30 AM. Immediately upon landing we knew that we were in a fin-tech-friendly country judging from all the Bitcoin Suisse ads at the airport.
After a short sight-seeing trip and some lunch, we’ve started our workshops with the Client’s presentation. It was meant to showcase the long-term vision of the project and what is meant to be achieved by implementing it. Obviously, this topic is extremely important for us and we’ve made sure to understand and analyze everything that was shared because we firmly believe in writing code that corresponds directly to the business vision and goals of the client. We’ve also had loads of questions to ask in order not to miss any essential information.
This topic was actually one of the most important reasons for us flying out and meeting the Client in person, since discussing high-level ideas and plans is something best done face-to-face. Perhaps that’s why it took us all afternoon, so in the evening, after an al-fresco dinner and some beer in the park we promptly got back to the hotel to analyze everything we’ve learned inside the team.
Thursday was the day we’ve moved on to some more detailed issues. We went through the typical use of the product we’re working on, what the end-consumers might expect from it and how to best address their needs and preferences. In order to find the right technical solutions we’ve prepared a brainstorming session with the Client: first, we’ve worked on our individual ideas, later presented to the rest of the group. Then the brainstorming has started.
Much of the discussion was dedicated to tokens. First, we’ve worked through one of the typical use cases for Centi: getting a hot dog at a music festival. Usually, once you get hungry after your favourite artist performs you need to first wait in line for a voucher, and only then are you eligible to… wait in line again, this time to get the actual food. With Centi, you can use cryptocurrencies to get a token and simply stand in the hot dog queue. The first big question was: what kind of a token should that be?
More use case examples followed and we started going over scenarios such as voting for your favourrite performer at said festival (polling tokens), getting the best seats at the cinema (ticket tokens) and much more. We were debating for quite a while whether we should go in the level 1 or level 2 token direction, which name and initials to settle on, if the tokens should be fungible or not and what external tools (such as Tokenized) would come in handy. We won’t throw too many details at you, but stay alert for an upcoming article that’ll discuss these issues in more detail.
This day ended very pleasantly — with a traditional dinner of homemade fondue prepared by all of us at the Client’s place. Thank you for the invitation Ben!
On Friday we were talking about the features that we’ll need to develop in order to make the vision discussed earlier a reality. Then came time for setting our priorities: what should we work on first (the must-haves) and what can easily wait for later, as well as what depends on some hard-to-control external factors. Add a timeline, deadlines and budget estimations to that and… boom, you have a detailed plan for future development — that’s exactly what we did. Sounds easy-breezy but in reality, it’s a very hard and important step. We’re glad we were able to wrestle with it while in a face-to-face meeting.
That’s how the official workshops have ended, but we’ve made sure to stay over the weekend for more fun stuff. It just so happened that our whole crew was made of brazilian jiu-jitsu practitioners and Ben was eager to learn some basics to shake off the mental strain of the week. You really don’t have to ask us twice: we’ve happily spent a lot of time on the mat, bonding in the most literal sense possible. :) Coincidentally, we’ve also run across our long-time fellow practitioner from Wrocław, who’s relocated to Switzerland — talk about how small the world is!
Good workshop practices
Flying out to meet the Client is a big time and energy investment for both sides. That’s why having a good agenda prepared upfront is essential — it’ll help you make the most of the in-person meetings you’ll have. As mentioned before, make sure you don’t overpack it, leaving room for some flexibility. Having the comfort of digging to the bottom of topics rather than just skimming over them is much better for your creativity juices.
Going over the client’s big-picture vision at the start of the workshops is a great idea. The developers, as much as they try, can’t just read the client's thoughts, which is why bringing the ultimate goals of the project upfront will be a great start to the following discussions and solution-seeking efforts.
Don’t treat the workshops as a chance for only one side to present their ideas and viewpoints. The value in a real-life meeting lies in the conversation. Discussions, brainstorming sessions or simply looking at an issue together will all help you access the creativity to solve the previously unsolvable issues.
Do consider creating a parking space... no, not for your cars. It’s a space (could be virtual, but we recommend having a manual one since it’s easier on the eyes) where any issue that comes up but isn’t the topic of the current discussion lands. Cleaning out the parking space by analyzing, addressing or redirecting the problems is a great practice for the end of the day or the workshop. Make sure to assign precise tasks to each person involved and have all the next steps planned out — only then is the issue ready to leave the parking space.
Make sure that each participant of the workshops is able to bring as much value as they can. Oftentimes, certain people don’t feel perfectly comfortable in a group setting all day and their best ideas hit them when they’re able to focus on the problem individually. That’s why dividing your time between brainstorming and some solitary focus time can help you find the ultimate solutions to your problems.
It’s also good to set aside some time for hacking. When you’re stuck going over the same problem in theory, sometimes the easiest way out is converting it into a POC (proof of concept) by live coding. Make sure to time box though — while it's perfectly acceptable to stay flexible during discussions, development needs to be kept under control. Otherwise it might stretch well into the night hours. :)
Finally, don’t disregard the relationship-building value of meeting face-to-face. When we’re busy delivering solutions to the Client we often put it off as the least important “task”, but the truth is, without a strong relationship it’s hard to work together longer than a few weeks. If you don’t actually like your colleagues or clients, your drive and ambition slowly deteriorates and the quality of your labor ultimately decreases. Take the workshops for what they are — a chance to finally meet the people in person, with whom you’ve already spent and plan to spend lots and lots of work hours. Getting to know them in a more laid-back setting will help you understand how they communicate and the time invested in building the relationship will surely pay off, even though we prefer not to look at it through this lens. We like our Clients too much to do so. :)
As you can see, there are loads of benefits of meeting your clients in person. If you’re interested in our other business practices or you’d simply like to chat about Switzerland (although we’ve also visited other parts of Europe and the US :)), feel free to hit us up. We make sure to get back to you within 24 hours.