<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Coding Friends UG</title>
    <description>The latest articles on DEV Community by Coding Friends UG (@coding-friends).</description>
    <link>https://dev.to/coding-friends</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Forganization%2Fprofile_image%2F4352%2F060a8623-000d-4916-8057-4acae321e60f.png</url>
      <title>DEV Community: Coding Friends UG</title>
      <link>https://dev.to/coding-friends</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/coding-friends"/>
    <language>en</language>
    <item>
      <title>Macarons — Building a chat roulette app for Slack</title>
      <dc:creator>Gabriel Reimers</dc:creator>
      <pubDate>Fri, 13 May 2022 14:29:28 +0000</pubDate>
      <link>https://dev.to/coding-friends/macarons-building-a-chat-roulette-app-for-slack-115</link>
      <guid>https://dev.to/coding-friends/macarons-building-a-chat-roulette-app-for-slack-115</guid>
      <description>&lt;p&gt;Last year we tapped into building Slack apps. &lt;br&gt;
Our first project was our decision record app &lt;a href="https://loqbooq.app"&gt;Loqbooq&lt;/a&gt;. And while building a Slack app looks simple on first glimpse, it turned out to be very challenging. Especially user management and shared channels caused a lot of headache for us.&lt;/p&gt;

&lt;p&gt;When we had finally achieved building and releasing our first Slack app, we thought it would be much easier to build another one based on that.&lt;/p&gt;

&lt;p&gt;And so we did.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Within just a few weeks we build &lt;a href="https://macarons-roulette.app"&gt;Macarons&lt;/a&gt;, a chat roulette app to connect teams.&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
We know there are already quite a few chat roulette apps for Slack like Donut, Snack or Hallway.&lt;br&gt;&lt;br&gt;
But we found those either too complicated, too expensive, or missing important features.&lt;/p&gt;

&lt;p&gt;Macarons is simple to setup but at the same time comes with some neat features that make chat roulettes more fun for everybody:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🧁 Quick and Easy&lt;/strong&gt;&lt;br&gt;
Just add the Macarons app to a Slack channel and it will automatically pair off random members for (virtual) coffees.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🎰 Control the Odds&lt;/strong&gt;&lt;br&gt;
For each channel you can control how often and when chat lotteries happen, as well as how many people should be matched together.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🧊 Ice Breakers&lt;/strong&gt;&lt;br&gt;
Let Macarons get conversations started with predefined ice breakers or set your own custom topics for each round.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🏖 Take a skip day&lt;/strong&gt;&lt;br&gt;
Independent of a channels meeting interval, each user can always individually pause their participation or decide to only take part every other time.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;You can try Macarons for free and we really appreciate any feedback:&lt;br&gt;&lt;br&gt;
&lt;a href="https://macarons-roulette.app"&gt;macarons-roulette.app&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>showdev</category>
      <category>slack</category>
      <category>laravel</category>
    </item>
    <item>
      <title>Eating our own dog food – a year of decision logs (with Loqbooq)</title>
      <dc:creator>Julius Peinelt</dc:creator>
      <pubDate>Wed, 29 Sep 2021 15:09:44 +0000</pubDate>
      <link>https://dev.to/coding-friends/eating-our-own-dog-food-a-year-of-decision-logs-with-loqbooq-3opg</link>
      <guid>https://dev.to/coding-friends/eating-our-own-dog-food-a-year-of-decision-logs-with-loqbooq-3opg</guid>
      <description>&lt;p&gt;&lt;a href="https://loqbooq.app"&gt;Loqbooq&lt;/a&gt;, our tool to document decisions in teams, is not our first rodeo. Frankly, rodeos aren't a good metaphor either. We have created and still maintain several app projects like &lt;a href="https://codingfriends.github.io/Tincta/"&gt;Tincta&lt;/a&gt; – now in its 10th anniversary – and &lt;a href="https://wokabulary.com"&gt;Wokabulary&lt;/a&gt;. But we have also been working in other teams on a diverse portfolio of products. So, we are more used to running marathons in a software development kinda sense. You know, staying long enough to &lt;del&gt;become the villain&lt;/del&gt; see how your decisions worked out and hopefully learn from your mistakes.&lt;/p&gt;

&lt;h2&gt;
  
  
  Insufficient facts always invite danger (Spock)
&lt;/h2&gt;

&lt;p&gt;To illustrate why writing down decisions is important, let's start with a quote by &lt;a href="https://govleaders.org/rickover.htm"&gt;Admiral Hyman Rickover&lt;/a&gt; (who with his team designed the first nuclear submarine in just three years) from a speech he gave at Columbia University in 1982:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;When important decisions are not documented, one becomes dependent on individual memory, which is quickly lost as people leave or move to other jobs. In my work, it is important to be able to go back a number of years to determine the facts that were considered in arriving at a decision. This makes it easier to resolve new problems by putting them into proper perspective. It also minimizes the risk of repeating past mistakes. Moreover if important communications and actions are not documented clearly, one can never be sure they were understood or even executed.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Not sure what else needs to be said about this, but have you ever been in the situation where you would have liked to simplify a system but you didn't know if the current state was due to rapid prototyping experiments or because of real business requirements and the people who knew had long left the company?&lt;/p&gt;

&lt;p&gt;Anyway, of course people know of the importance of documentation, it's just not something that is overly fun. So indeed, in projects we’ve worked on over the years we did see some attempts at documentation. Sadly, &lt;strong&gt;most documentation emphasized the 'What' and left out the 'Why'&lt;/strong&gt;. Additionally, the documentation was not always accessible to all team members. Comments in code, for example, are pretty invisible to most designers and managers.&lt;/p&gt;

&lt;h2&gt;
  
  
  Storytime!
&lt;/h2&gt;

&lt;p&gt;Being aware of all those problems we set out to create a tool to lower the barriers to document all the 'Why' in projects while being approachable to all team members, too. &lt;br&gt;
Naturally we started to use Loqbooq ourselves as soon as possible. In fact, the main development and reasoning behind decisions taken on the way while developing and releasing Loqbooq is documented in Loqbooq. Here is a short retrospective about the process and how it worked out for us.&lt;/p&gt;

&lt;h3&gt;
  
  
  It’s a… decision
&lt;/h3&gt;

&lt;p&gt;Starting something new involves a lot of discussions, brainstorming and finally decision-making even before a line of code is written. For Loqbooq, we first spent a not insignificant time to narrow down the scope that left the final product usable but also would enable us to implement it in  reasonable time. While originally Loqbooq was meant to be a Slack-only app, hoping this would reduce implementation time, it became clear this would limit the scope of addressable users too much.&lt;br&gt;&lt;br&gt;
A decision was made for the broader audience and we wrote it down in Nuclino, the knowledge base we use. I'm glad we did, as you will see later.&lt;/p&gt;

&lt;p&gt;We also had to define our target user group, our assumptions about them and why we chose this group. Another very important decision for everything that comes afterwards.&lt;/p&gt;

&lt;p&gt;Next, we asked ourselves which programming language, web-framework, database and hosting solution would enable us to quickly develop something functional.&lt;br&gt;&lt;br&gt;
Developers, being only humans, tend to involve some of their own ego when considering solutions for their tech-stack. Personal interests not seldom overrule sensible decisions. We wrote down our reasoning and crossed out alternatives with good arguments against them. This was probably the first time in this particular project where &lt;strong&gt;writing down the decision really forced us to be rational&lt;/strong&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  We’re not tooling around
&lt;/h3&gt;

&lt;p&gt;Mind you, up to this point Loqbooq is far from usable. Instead, someone had to take notes or the main points from the discussion in Slack over to Nuclino, copy everything in a template and finally, if we weren't able to decide on the spot, remind everyone to add their agreement or proposals. &lt;strong&gt;How tedious to just document a little bit of 'What' and 'Why'&lt;/strong&gt;. The same held true for looking up decisions taken in the past. Definitely something to improve.&lt;/p&gt;

&lt;h3&gt;
  
  
  The rubber meets the road
&lt;/h3&gt;

&lt;p&gt;Fast-forward a few weeks and many decisions later, Loqbooq is finally usable and we decided on naming conventions for our domain model, colors for branding, and the fact that we support Slack's enterprise grid for the release. Reminders are sent out automatically and recording decisions happens right in Slack. This is directly reflected in the way we document the decisions: before, we only noted down big decisions with many considerations, like deciding on the whole tech-stack is all in just one decision. Now, even &lt;strong&gt;smaller things are documented or big decisions are split up&lt;/strong&gt;. Something like our pricing model stretches over six different decisions, e. g. what happens with accounts that are late for payments, how long should the trial phase be, etc.&lt;/p&gt;

&lt;p&gt;Around the same time it became clear that we would miss our aspired release date by at least a few weeks. The complicated (and frankly, insane) way Slack's enterprise grid is implemented from a data model perspective slowed us down and supporting all functionality with a web app suddenly felt like an additional burden.&lt;br&gt;
Thankfully, our documented agreement on our domain language helped greatly navigating through Slack's and our own data model and their interaction.&lt;/p&gt;

&lt;p&gt;But, what about all the work on the web app that was still waiting for us? We really wanted to release and time was ticking. So when I brought up the discussion in the team, questioning our direction, we quickly looked up the context and reasoning of the former decision about not just doing a Slack-only service. With that &lt;strong&gt;we were able to re-evaluate if we were still doing the right thing&lt;/strong&gt; (spoiler: we released Loqbooq with a proper web app).&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--chugOV8S--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/g80l2ciyhuphnpnln8bf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--chugOV8S--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/g80l2ciyhuphnpnln8bf.png" alt="Drawn Mushroom by Manal Rakfaoui (https://www.instagram.com/lart_dimagination_/)"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In hindsight, I'm glad we had the documentation of 'Why'. It enabled me to get rid of doubts and concentrate on taking the project forward, &lt;strong&gt;reducing the mental overhead&lt;/strong&gt; significantly.&lt;/p&gt;

&lt;p&gt;The same goes for our pricing model. Initially we went for a rather short trial phase and a one price fits all model. In the meantime we re-evaluated our decisions and since we documented the ‘Why’, we were even able to learn something. &lt;a href="https://loqbooq.app/blog/introducing-free-plan"&gt;See our blog post&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  One take-away to go, please
&lt;/h3&gt;

&lt;p&gt;So now, after more than one year of consistently using a decision log, I have made some observations. Not all of them I merely attribute to the decision log itself but also to our practice to take decisions together. Which definitely is fostered by maintaining a decision log.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Reduction of recurring discussions&lt;/strong&gt;. When we are unclear about why and what exactly we decided on a certain matter, we can now often just look up former decisions. And when we realized we are talking about the same topic twice, we create a new decision on it.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Increased feeling of ownership for the good but also the bad parts of the project&lt;/strong&gt;. We took decisions together, but that means we also agreed together on where to take shortcuts.&lt;br&gt;&lt;br&gt;
Imagine starting at a project and soon enough you discover parts that feel messy and slow down development of new features. How soothing it would be to know why they are there. Maybe the project's scope changed, maybe some deadlines were too tight, maybe it's just some mess that needs a good cleaning.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;So much learning&lt;/strong&gt;. To learn you need a feedback loop, the faster you get feedback, the better. Sadly not all consequences become clear right after the action, to learn in that case, you need to be able to go back and look up the context of your decisions.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Ease of mind&lt;/strong&gt;. Writing down and documenting decisions together with the considerations you and your team had frees up parts of your brain. Sometimes it just helps to be forced to really formulate a decision.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Improved communication&lt;/strong&gt;. Since we decided together, we also had to discuss problems and possible solutions together. We had to actively argue about moving forward. As a very nice by-product, we also got rid of the feeling of others deciding over your head while you have to deal with the damage.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Additional documentation&lt;/strong&gt;. Unlike with fast prototyping and other very short-lived projects, longer running projects need a certain documentation about intent, current available knowledge and context. Contrary to what is often seen, &lt;strong&gt;agile project management still involves having a plan&lt;/strong&gt; &lt;a href="https://www.youtube.com/watch?v=MCZ3YgeEUPg"&gt;(see: Rich Hickey)&lt;/a&gt;, only the plan can be adjusted and changed. So, in long-living agile projects, it's not trivial to comprehend the reasons for the state of the project. In this case, decision logs can support or even replace  requirements specification.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Not all glitter is gold
&lt;/h3&gt;

&lt;p&gt;“Wait a minute”, you say, “you developed a Saas for decision logs. Of course it's all flowers, milk, and honey in your story.” Sure, I’m slightly biased and while I’m convinced Loqbooq helps with adopting decision logs and maintaining healthy logs with finer grained decisions, maintaining a decision log is still work and needs practice and learning. Even for us, not everything worked right away.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Sometimes we forgot to log decisions. Ultimately this is not a big deal, the next time you have a discussion about the particular topic, you will remember.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;When in need of short-term approvals, outstanding decisions can block implementation. This happened mostly when we didn’t plan properly and needed some ad-hoc decisions and involved team-members weren’t available right away. In those cases, we went with some kind of majority but still leaving the decision open until the team members had a chance to review them.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Occasionally we had discussions about wording in decisions. While annoying at times, it also &lt;strong&gt;often pointed out different understandings that needed clarification&lt;/strong&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  It’s all about the seasoning
&lt;/h2&gt;

&lt;p&gt;Decision logs are a &lt;strong&gt;very helpful tool for a more sustainable software development&lt;/strong&gt;. Even if it's yet another thing to do, maybe even annoying at the moment, in the long run it helps to be able to go back and look at why things are as they are. But more than that, &lt;strong&gt;decision logs also foster communication&lt;/strong&gt; and &lt;strong&gt;speed up the decision process&lt;/strong&gt; by enforcing a written formulation. Last but not least, decision logs increase the &lt;strong&gt;sense of ownership&lt;/strong&gt; if they are maintained together in a team. &lt;/p&gt;

&lt;p&gt;Having a decision log is for project management a bit like having tests in your code base. It &lt;strong&gt;increases the sense of security&lt;/strong&gt; in ever-changing, agile projects. Going back, having a look at the context of a decision and its reasoning can reduce disgruntlement over the current situation, too.&lt;br&gt;
While technically you don’t need to use tools to maintain a decision log, they can help you lower the barrier of adoption and improve the quality of the log. As you can imagine, I can definitely recommend you to try out Loqbooq.&lt;/p&gt;

&lt;p&gt;We as a team have found decision logs very beneficial and &lt;strong&gt;adopted them in basically all areas&lt;/strong&gt; of our business. &lt;/p&gt;

</description>
      <category>productivity</category>
      <category>saas</category>
      <category>team</category>
      <category>management</category>
    </item>
    <item>
      <title>Why we added a Free Plan for our SaaS</title>
      <dc:creator>Gabriel Reimers</dc:creator>
      <pubDate>Sun, 29 Aug 2021 10:54:33 +0000</pubDate>
      <link>https://dev.to/coding-friends/why-we-added-a-free-plan-for-our-saas-4ip4</link>
      <guid>https://dev.to/coding-friends/why-we-added-a-free-plan-for-our-saas-4ip4</guid>
      <description>&lt;p&gt;Early on we had decided that our SaaS &lt;a href="https://loqbooq.app" rel="noopener noreferrer"&gt;Loqbooq&lt;/a&gt; should not have a free plan. After all, it is a service aimed at businesses not individuals.&lt;/p&gt;

&lt;p&gt;We thought &lt;strong&gt;business customers are willing to pay for a service&lt;/strong&gt; that saves them time and reduces friction. Now, two months have passed since we publicly releasing Loqbooq. And we found that assumption does hold true.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Still, this week, we introduced a free plan&lt;/strong&gt; for small teams, including all features. What made us change our minds? Here is what we learned from our early adopters.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F53szt4qvg669jm563ypi.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F53szt4qvg669jm563ypi.png" alt="Seagull living free"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  🤑 Our business model
&lt;/h2&gt;

&lt;p&gt;Loqbooq is an app to record your project decisions and commit to these decisions as a team. We have a web app and a Slack app.&lt;/p&gt;

&lt;p&gt;We are convinced that Loqbooq is a service that saves companies money. When you document your project decisions, your teams spend less time researching why things were done as they were done.&lt;br&gt;
New team members can be on-boarded quicker as you have a record of all decisions on design, architecture or strategy, as well as the reasoning behind them.&lt;br&gt;
And if your project involves multiple parties, it also reduces stress and discussions if stakeholders commit to decisions together.&lt;/p&gt;

&lt;p&gt;Our customers consider Loqbooq a valuable tool that is worth paying for it.&lt;br&gt;
And of course, we rely on paying customers as our business model. We do not sell our users’ data nor do we display advertisements — and never will.&lt;/p&gt;

&lt;h2&gt;
  
  
  💸 But then why add a Free Plan?
&lt;/h2&gt;

&lt;p&gt;For us, offering a free plan is about organically convincing teams that Loqbooq is a useful and easy to integrate tool.&lt;/p&gt;

&lt;p&gt;When we talked to our early adopters we learned that introducing new tools in a team can be a slow and complicated process. We often hear things like:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;I really love Loqbooq. But I also need to convince my team.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;We learned that it is often one or two individuals who see the need for a decision log in a project. The easy part for them is to find a tool for that (like Loqbooq). But &lt;strong&gt;the hard part is to convince their team&lt;/strong&gt; to make the step to actually use a decision log.&lt;/p&gt;

&lt;p&gt;We did already offer a trial period so interested teams could try out and experiment with Loqbooq before needing to enter a credit card number. Yet, this often was not sufficient.&lt;br&gt;
Having created some sample decisions is just not as convincing as using Loqbooq as part of your actual daily work. And that is where we see the &lt;a href="https://loqbooq.app/pricing" rel="noopener noreferrer"&gt;new Free Plan&lt;/a&gt; comes in.&lt;/p&gt;

&lt;h2&gt;
  
  
  🚀 Make it easy for early adopters
&lt;/h2&gt;

&lt;p&gt;Now, a small group of early adopters within an organization can use Loqbooq with all features in their real projects for as long as they need it — for free!&lt;/p&gt;

&lt;p&gt;The only limitations are that you cannot have more than three decision logs and can only have three reviewers on each decision. This should work out fine for small teams or startups.&lt;/p&gt;

&lt;p&gt;Now, early adopters can play with Loqbooq and experiment with decision logs in a small project. They can take their time to integrate it in their work culture, project structure and other tooling they already have.&lt;/p&gt;

&lt;p&gt;But most important: &lt;strong&gt;They don’t need to ask for budget to do a pilot project&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  🙌 Spread to larger teams
&lt;/h2&gt;

&lt;p&gt;Once a group of early adopters is convinced that Loqbooq actually suits their needs and improves their project management, they can start expanding the use to more or larger projects.&lt;/p&gt;

&lt;p&gt;When they now pitch it to their teams, they have real world experience with the tool, making it much easier to win over more hesitant colleagues. And only then they need to upgrade to the paid Pro Plan for an unlimited number of logs and reviewers.&lt;/p&gt;

&lt;h2&gt;
  
  
  🎯 How it worked out
&lt;/h2&gt;

&lt;p&gt;Well, we will only know in a couple of weeks or months. The downside of letting your users use your product for free up to some limits is obvious: it takes much longer for users to decide for a paid plan.&lt;/p&gt;

</description>
      <category>saas</category>
      <category>startup</category>
      <category>pricing</category>
    </item>
  </channel>
</rss>
