Better code structure: working with pods

Usually we organize our javascript apps either by what they are or by what they do. The first is like rails: separate directories like componentscontainersreducers, etc. And the second more or less like feature/DDD: usercart, and so on. Tho both of these options are very mainstream and solid they contain some constraints.

When you structure the code files tree by what they are you tend to keep every component of the same feature so distant that it’s very difficult to connect the pieces. Therefore you dive into some troubles like the path hell; a lot of require('../../../etc') in your code. And everything is extremely coupled to the directory structure.

In the other hand, when you are driven by what they do everything is more isolated and maintainable. But there’s a lot of duplication. And the communication between the features either is based on a weak contract or depends upon some infrastructure. Both of these options are prone to raise some bugs.

Pods it’s an evolution of the last one. You can think about pods like the microservices of the front applications. A pod is an isolated and completely independent microapp which can communicate 100% with other pods. Therefore, you get code base which is composable, extendable, reusableand extremely easy to test. Tho, the main benefit is that you completely erase the inter components side effects. Once a pod is failing you are totally sure that it’s because itself has something wrong; not an external piece.

A pod is an isolated and completely independent microapp which can communicate 100% with other pods

The unique requirement of the pods is to driven all the pods intercommunication through an event bus. If you’re already using any Flux pattern, lib or framework it’s gonna be very easy to lead this communication to the dispatcher; which is actually a single point for the events.

For a pod is not mandatory to have the logic, presentational and communication layers. Can have all of just one of them. Imagine a router pod. It has the logic and communication layer but doesn’t expose any view. Or the opposite, a form pod which only exposes a presentational layer and depends 100% on the arguments received (see React props).

Because every pod acts like and independent application we place the tests inside them. This means two things: stop duplicating the files tree, and making code coverage meaningful. When you have 100% coverage with a pod you know that it won’t fail. No side effects.

In a nutshell, by working with pods you get a secure and very flexible structure. Very easy to test and without side effects. It scales from 0 to millions without worrying about big refactors due to the fact that every pod is isolated but available to communicate with all the other pods.

In case you want to see some code here’s a Github repository with a simple pod architecture. Give it a look and check the benefits the pods can offer. If you have some doubts or proposals don’t hesitate to open an issue or comment here. This is a living pattern. We’re using the pods at Ulabox and they’re proving to be the solution to a lot of structural codebase problems. Tho, we’re willing to listen about your thoughts and concerns.

The journey is long, take some pods.

User Research on the Human Body for New Users

Hi! Thanks for agreeing to chat with me now that you’ve had your human body for a couple weeks. I’m excited to hear about how things have been going. Here’s how I’d like to spend our time: we will have an open conversation and explore your experiences. Later on, I have some specific questions that I would like you to answer, to get more specific feedback. At last, I’ll be sure to leave enough time at the end for any questions I might be able to help you with.

Does that sound good?
— Sure, sounds good.

Awesome. So is there anything you’ve noticed that you particularly like about your new body?
— Well, I like these sausagy things, but there’s one that is too short and out of the way, I wish they were all the same length and pointing in the same direction.

I’m going to assume you’re talking about your fingers. The little one is called “thumb”. Has it been useful in any way?
— Not really.

What if you want to grab something?
— I don’t see a problem. I have more sausagy things.

That’s true. Anything else about the fingers that you’d like to share?
— Let me think. Five sounds like too much, no? Maybe two or three would be enough.

Were there any particular situations where those extra couple of fingers were in the way?
— Yeah I was in bed with a friend…

That’s enough. Thank you. Any other aspects of your body you’ve particularly enjoyed or liked over the past couple of weeks?
— As I was saying, I was in bed…

GOT IT. Let’s move on. Have there been any events or situations where you’ve found your new body limiting?
— Yes I tried to fly from a tree branch and realized quickly that I couldn’t fly.

How did you reach that realization?
— I fell. Straight to the ground, landed on my arm. Which also made me realize these arm things aren’t very good at taking impact, the bones are pretty weak. I had to see someone called a “doc” and now I have this cast thing on. Are you going to fix that?

Oh my! I’m sorry to hear that happened. I’ll take a note to make sure we cover that type of bug in the design for later versions. How does the cast change things for you as you evaluate your body?
— I can decorate it with doodles. I really like that. If I do it on the outer layer of the body it wears off. Are you going to make cases for the body? Like with flowers and stuff. I saw some people wearing them.

You mean clothes? Sir, are you walking around naked?
— What are clothes?

Never mind. Let me ask you something. How has the temperature regulation been in the new body?
— Hmmm… what’s that word…? Cold! Yeah, that’s it! This body doesn’t have enough fur. Except in some funny parts, where it shouldn’t. You should definitely review the fur.

Interesting… I’d like to switch gears a little to focus on keeping the body up and running. In your orientation, we went over things like eating and grooming. Is there anything noteworthy you’d like to share about those kinds of processes?
— Eating is good. I like that. But I felt it was a bit random. There were no clear instructions on what I should or shouldn’t eat. I enjoyed the sweet things. I don’t really know why you offer green stuff with no taste.

Vegetables?
— Whatever you call it. The red stuff was good, like tomatoes sometimes, when they came with cheese, in a bun, with bacon, and meat.

Burgers?
— YES! Those were really good. I basically just ate those.

Welcome to America.
— What?

Nothing. Thank you so much! That’s all for regarding that subject. I just have a few more questions. On a scale from 1–5, where 1 is “I wish I had my old self back” and 5 is “I can’t believe I didn’t get this body sooner”:
— Not having a body is very different, you can do a lot of stuff if you have a nice working body I guess. I’ll say 4.

How would you rate your satisfaction level with your new body so far?
— 2. Maybe 3 on a good day.

Is there anything in particular that lead you to answer that way?
— It’s kind of slow and fragile. I wish it was faster. And bigger too.

How likely are you to recommend this experience to a friend?
— 3.

Is there anything in particular that lead you to answer that way?
— It’s fun to use for a while. But I guess you might get tired of it after a while, and would like to change it for a newer, faster, better-looking model.

Right on the spot. And finally, what’s one thing you really hope will be added to your body in the future?
— Wings. Or wheels. Whatever makes it faster. And fur. I said fur before, didn’t I?

You did. What value would that addition provide to you?
— I want to be faster. And warmer.

Thanks again for all your feedback — you’ll receive the gift certificate to the new body maintenance shop shortly. I’ll talk to you again in a few weeks. Take care!

What I’ve learned from organising 25 tech/startup events in 4 months

At itnig we do all kinds of events related to tech: dev events, marketing, big data, bitcoin etc.

When I started working at itnig this fall I knew I would arrange events, but I couldn’t imagine that I would host 25 tech events in 4 short months .

I’ve learned a couple of things along the way, that makes me certain the next 6 months of tech events at itnig will be even better!

At itnig we do events for several reasons:

  1. We like having smart (speakers & attendants) people at our place.
  2. We care about the Barcelona tech community, and want to contribute to its growth and quality.
  3. We want to show off itnig and our startups .

Speakers

The topic of your event can be super relevant, trendy or interesting, but if the speaker doesn’t have a “name” known in the community or work in a known company, you’re screwed. It’s the cold, harsh truth. I personally thought that if you have a topic that’s interesting, presented by someone with experience and merit, it would be enough, but it usually isn’t.

Having great speakers, that doesn’t really want to present will hurt the event (unless it’s Zuckerberg)

So if your goal is to attract a decent number of people to your event, you need to find a great topic AND a great (+known/semi famous) speaker.

However, don’t invite speakers that aren’t eager to share! You can always manage to convince someone really great to come present her/his experience, but if you have to struggle to convince them, or if you notice the speaker only attends because of having a hidden agenda (usually hiring) it could be reflected through the presentation. Make sure the speaker actually is looking forward to the event.

Also, if possible, try to book a speaker that hasn’t recently been around talking at other events in your city. You want the name to sound a bit exclusive. If you find it hard to find good speakers, don’t be afraid to find speakers internally, especially if you work in a well known startup or company, sometimes the best speaker sits just under your nose.

It’s not vital, but if you can, ask the speaker to stay behind after the event to chat and have a few drinks with the attendants, that’s always a huge plus, and makes the whole event experience much better.

Topics

How you choose your topic relates a lot to what your motivation is, what kind of community you have, and how big the startup ecosystem around you are.

One of the keys for me who’s hosting the events, has been to actively talk to our developers, marketers and product managers on what kind of topics they find interesting, or what new things they want to learn. This only works if your team actually follows trends and stays up-to-date with what’s happening in their field of expertise.

One of our best events last year was a Javascript Framework debate, which we did after talking to a lot of our developers about what they wanted to see.

Apart from this I try to get feedback from our community and of course follow thought leaders through social media and newsletters.

Make sure the topic has not been done by anyone else in the community, and if someone’s covered it, make sure you’re bringing something to the table. Tech is moving fast, nobody cares for hearing something twice.

No matter how interesting your topic is, try to always stay under 45 minutes. It’s just as important to open up to questions from the audience, than to lecture from the stage.

Attendants

So I’ve covered topics and speakers – two essential parts of every event, now over to the last ingredient — the people.

Refreshments (beer) is key. Or to put it more accurately, beer is the oxygen people breath at events, i.e an event without beer is like holding an event in space. Only very weird people that are super interested will show up.

You can never underestimate how important beer is for your event.

And even though these super interested weird people are great assets in all communities, you really need to appeal to the broader mass as well, if you want to build a diverse community.

To get people inside your events you’ll have to use an event-platform for announcing, informing and sign-ups. If you don’t have a big social media following, make sure your friends in the community help you spread the word.

We use Meetup which is great for certain things, but in some ways it’s a bit broken. With that I mean that most people that cares about tech (at least in Barcelona) are using Meetup and you can build a big community on the platform, but many people have little or no will to commit to events they press attend to.

This is an issue I’ve been talking with a lot of people about, and it seems like people are using meetup more like a calendar of events they are thinking about attending, and not something they’re definitely doing.

The best way to ensure that people are showing up, and not only pushing attend is to take a small symbolic fee (1–2 euros).

So, there you have it, hope to see you at the next itnig event! If you have a topic you think we should cover in 2017, let me know!

Customers Go First — How To Improve Your Customer Satisfaction Score and Net Promoter Score

Many entrepreneurs, technologists and product managers will nod upon hearing this universal business truth: customers go first. In the end customers are the reason businesses exist, by adopting and paying for a company’s product or service.

The term “customer success” is a hot topic these days, and can mean various things, but below I’ll explain the term with the meaning — how your company interacts with customers to guarantee success for it after the interaction.

These five words and different topics are what we’ll try to identify in the text below (or the video above).

  1. Ask — Who, what and when to ask questions to improve your product.
  2. Listen — Summarize and organize the information and share it with the team.
  3. Measure — Connect trends with business objectives.
  4. Understand — Get insights from the information you’re receiving.
  5. Act — Make decisions to improve your product, service and customer experience.

CSAT

If you have a SaaS company or any kind of software company, you need to make sure the customers have a way to communicate with you.

In this communication, you need to think about what kind of user you want to open your lines of communication with, what kind of questions they should be answering and when they should do this.

The developers at itnig are trying to figure out what kind of features to focus on next to keep CSAT and NPS high.

To make sure your customers are happy, you should measure customer satisfaction rates (CSAT). You can rate it however you want, a normal way is by numbers, stars or faces with different expressions.

In SaaS products a good CSAT is 98 and above, and an acceptable score is 90. Everything else is bad. Because the customer usually is telling you what you’re doing wrong, it’s (usually) fairly easy to get a good score, just make sure you have a great customer service team, that’s key.

NPS

The juiciest part of the acronyms mentioned is Net Promoter Score (NPS).

It measures what kind of attitude your customer has towards your product. Only the 9th and the 10th best customers are promoters, which are the best customers you can hope for. These people will promote your product to people they meet. The neutrals in the middle, the 8th and the 7th, don’t do anything for you. And last, but not least, the detractors that represent the bottom 6 of your customer base. These people have a negative influence on your product or service.

To measure NPS you can use platforms such as Wootric, Delighted or Zendesk.

You don’t need to be a Mensa member to understand that getting a good score can be pretty hard, when 60 percent of the bar is detractors.

The formula is: NPS = % of promoters – % of detractors.

So if you have 20 percent promoters, 50 percent neutral, and 30 percent detractors, you’ll have -10 in NPS score, which is really bad.

Some NPS problems are simple to fix, you need to segment the customer base and try to solve as many of the recurring customer-issues as possible. Other NPS related challenges take longer time and need bigger and more drastic changes to fix. After segmenting the customers, you need to group the feedback into components of your product and service, and put your team to work on item after the other.

Companies that takes NPS scores seriously, aim at scores between 60 and 80.

https://upscri.be/285782-2

Listen, intensely and honestly

If you didn’t pick up that listening closely to your customer is extremely important, it’s time to note that done.

But listening and organizing the data isn’t enough alone. A customer that actually contacts you to give you feedback on your product or your service is valuable so make sure the people they speak to are understanding and empathic.

Don’t try to push other or cheaper products on a customer that contacts you about an issue. You have a valuable shot at solving important problems for your company, don’t ruin it by trying to sell them more stuff they don’t want.

To get any value from these processes, you need to share all the customer feedback with the team, not only to implement changes. You never know who might sit on solutions or ideas for improvement.

To get real life examples see the video above, where Jordi explains how Redbooth tackled some of their challenges with CSAT and NPS.


This post was transcribed by Sindre Hopland, media manager at itnig.

Should We Leave Spanish Behind In The Tech Community?

World Economic Forum recently published an article that Lisbon was aimingat becoming the next unexpected tech hub in Europe, just like Ireland has become the last decade.

Lisbon is a great city with an increasing number of tech startups, now hosting the Web Summit, and the government recently made an investment fund of 200 million for early growth companies. All of this is great, but they’re missing something Ireland had all along. English.

Barcelona is way ahead of Lisbon in becoming the leading European tech hub along the Mediterranean. We’re talking in amount of VC’s, accumulated investment, amount of startups, accelerators, incubators, I could go on for a while.

But like up and coming Lisbon, Barcelona is also missing one vital element.

  • English.

Boosting the expat community

It’s not that people in Barcelona in general are lacking English skills. As a person that’s learning Spanish, I think people’s skills generally are too good, it makes me learn the local language much slower.

It’s more about the willingness to adopt all the great activity in the tech ecosystem from Spanish to English.

There’s too many interesting events and meetups around Barcelona that are done in Spanish. And there’s too many expats, digital nomads and visitors that aren’t able to attend.

The more active people, the stronger an ecosystem is, and if we want Spain and Barcelona to grow one of the strongest communities in Europe, we need everyone we can get our hands on.

Barcelona is already attracting a lot of talent from abroad, but I’m sure more people would set up shop if they knew they could survive with only English, everything to make the transition easier.

An old man’s problem

Before writing this article I talked with many local entrepreneurs and developers in Barcelona. I was a bit hesitant to ask them the question, I don’t want to come as a guest, asking them to abandon their language.

But everybody I talked to agreed. Spanish is great, but the tech community would benefit from being solely in English.

The people I spoke to were young people, and I think I would get another answer from some of the older generations of entrepreneurs, which unfortunately is where the power often lies as well.

At itnig we’re many Spanish people, and the lunch chat is usually conducted in Spanish. But all of our events, media and content are in English, and all of our employees can at any time switch over to English.

That’s why many of our recent hires has been people from outside Spain: Lithuania, England, Germany, Italy, Norway, etc.

Far from a Spanish thing

Before writing this post, I was aware that this is a topic you either agree or disagree with. You hate it or like it.

Either way, I think it’s important to know that this is not a Spanish challenge (if it is a challenge at all), it’s a concern all entrepreneurs living outside an english speaking country should address, at least consider.

Both Berlin and Paris are thriving startup hubs in Europe, and their tech communities are growing rapidly, despite German and French being the main language. But Barcelona (and many other cities) doesn’t have the privilege of being financial and economic centers in Europe, and to speed up the development of the current ecosystem, a common language might be helpful.

According to EDCi (European Digital City Index) Stockholm and Copenhagen ranks as the 2nd & 7th best cities on the continent.

If you research some of their biggest startup communities like #CPHFTW in Copenhagen, or SUP46 in Stockholm, they’re all communicating in English, making it super easy for all kinds of people to join in.

Amsterdam and Helsinki are the 3rd and 4th countries on ranking. All of these countries are known for good english skills, the EDCi even lists it as a criteria for ranking so high.

Small, but necessary step

Many would probably argue that there’s other more important things to change or improve to boost Spain and Barcelona as a tech friendly environment, than increasing English as a working language.

  • Friendlier tax regulations would certainly help.
  • More access to venture capital would be fantastic.
  • And for more established tech companies relocating to the city could also be great.

My idle theory is that a broader use of English could make all of the above happen faster.

Huge tech companies would be more likely to relocate if they knew they could operate in English.

This again would stimulate the ecosystem, and more VC’s would open their eyes to Spain, and know that they could operate deep in the community without worrying about language.

And in the end, if key tech players together with an increasing amount of VC’s establish themselves in the country, the authorities would eventually follow and adapt.

A Spanish ecosystem where English is the main community language wouldn’t fix everything, it’s always a work in progress, but it’s about putting up the right domino so all the others follow.

Do you have NO national pride??

Please, I understand that you’re proud of the Spanish and Catalan languages, they are beautiful, complex and huge – bigger than English.

If Spanish was the spoken language by Silicon Valley companies, and most tech hubs around the world, my argument would be different, but right now all are more or less done in English.

I would never want anyone to stop speaking Spanish to their friends and family. Like I’ll never stop speaking Norwegian with my friends.

But it’s about breaking down barriers for business, including people in the ecosystem and making it easier for both tech giants and small startups to relocate to beautiful Spain.

I think it’s a matter of time, but why not speed it up?