Blog winter cleaning

I started this blog somewhere between 2005 and 2006, when the blogosphere movement spread in Italy. It was a space to wrote about my unfiltered thoughts in random order, to remember my vacation places, to share my discoveries as developer and GNU/Linux lover, to narrate the story of the first Italian conference about mobile development (the unforgettable WhyMCA), to sparkle what has been born as CLSxItaly and now is the Italian Community Manager Summit, the only Italian event for community managers, builders and professionals; to calm down from everyday rants, to talk about community management and much, much, more.
I’ve started with Joomla, then moved to WordPress. I used Italian, and then switched to English.

In short, over 12+ years, this blog has became a wonderful example of creative chaos, reflecting pretty much accurately these 12 years of my life. And I’m proud of it!

Today, I decided to clean-up things. I moved the majority of the old content on a separate archive, rainbowbreezearchive.wordpress.com, leaving here only English content and redirecting to the archive the top visited Italian posts of 2018 (thanks to Redirection plugin).
I’ll also talk more about community management and team management, as these two topics are the ones feeding my passions (and my job) nowadays.

Continue reading “Blog winter cleaning”

FullContact to sync LinkedIn connections into Google Contacts

Meeting and talking with people is part of my job, and I’m generally good in remembering faces, but when it comes to names and some facts to help me reconnect and discuss, my memory is a huge, black and empty hole. And it’s embarrassing. I solved the problem using a mix of Google Contacts and LinkedIn, glued together by FullContact, with offline support and smallest effort my side to keep everything running.

First, I identified my core needs: a way, well-integrated with my Android phone as the only device I can quickly check in similar situations, to see faces, names and notes of people for a given category, working offline and with the possibility to change information on the go, so I can update them just after a chat.

At the beginning, it seemed the perfect scenario for a CRM. After some investigation, I changed my mind because all the software I checked, even the ones with a personal CRM attitude, were overkill, not always well-integrated with the rest of the Android system, and often required connectivity to do even the simples query or edit.

So, I tried to leverage tools I were already using, and Google Contacts, after all, met all my requisites. But how boring is to create a contact and fill details for every person I want to remember? Considering I used LinkedIn to map all my work-related relationships, I thought the native integration between the two could have been the solution, but I was wrong: I discovered then contacts sync between LinkedIn service and Google did not add new LinkedIn connections into Google Contacts. On the other side, the connections sync feature offered by the LinkedIn Android app creates a read-only address book in Android, where I cannot add more details to these contacts and categorise them. Finally, I didn’t want to see all my LinkedIn connection in my address book.

Luckily, LinkedIn allows to export all of your connections (plus other info) on a CSV file. And then a touch of magic happened: I discovered FullContact, a service to manage and enrich contact information, said in a very reductive way. Among the many, many features, it is able to sync with Google Contacts and import LinkedIn connections. All the pieces were finally in place. Here what I’ve done.

First, I created a FullContact account and synced it with my Google account from “Sync Settings – Add New Email Account”: once done, the two services shared the same contact lists, and changes made in one were reflected into the other. Just after, the FullContact magic started: the existing contacts were enriched with tons of useful information, starting from the profile picture (one of mine main needs), company data, social profiles and much more. It’s also possible to add Twitter info once connected an account. In addition, I consider FullContact contact editor slightly better than Google Contacts one. Special mention the many integrations with other services and Enrich API they have.

Then, from LinkedIn, I exported my connections, downloaded the resulting CSV file and imported into FullContact, from “Sync Settings – Add LinkedIn Connections”, and selected the “Update Existing Contacts” option to import all the LinkedIn connections in the special LinkedIn FullContact address book, without adding them to Google Contacts yet.

Add to Synced Contacts option in FullContactAfter that, the very unique boring part: I had a very long list (900+ items) of contacts in my brand new LinkedIn FullContact address book, and I wanted to sync only some of them also in Google Contacts. So, I went thru this list selecting “LinkedIn” in the FullContact “Tags” menu and, for each one, selected the “Add to Synced Contacts” option if I wanted to have that contact always at my fingertips during events. Contextually, I added it also under the desired category, in my case “Community Managers and DevRel”.
FullContact enriched also these new contacts with additional information, and synced everything back to Google Contacts. Magic, as I said! To be 100% sure everything was aligned, I also opened the Google Contacts app and checked in the “Duplicates” section if there were duplicates FullContact wasn’t able to spot.

Now, when I’m at a “Community Manager and DevRel” conference, where I meet people I see once every year if I’m lucky, a quick glance to that label under my Google Contacts app on the phone and I have names, faces and other info back to memory. Plus the edit field ready to register some interesting information.

Every month or so, I import again LinkedIn connections into FullContact, select the “LinkedIn” tag in the Tags list and select “Sorted by Date Created”: a quick look only at the new ones on top of the list is enough, if I want to add some of my new connections into my Google Contacts.

During the journey, I discovered also Hubspot, that seems to be a very good CRM, and Pipl API, a service to enrich a contact using via an API.

Learnings after five years in Google

Recently, I had my fifth Googleversary, meaning 5 years have been passed since I joined Google. In retrospective, it was a flash. An intense, extremely challenging, always learning, positively stressing and joyful flash. A lot has happened and I want to write down some notes on the most important learnings I’ve had.

Disclaimer: this is not a post on Google culture, there are several and more authoritative voices than mine, and the complexity of a company made by tens of thousands people all over the world doesn’t allow to have a “common culture and experience to fit them all”. This is, simply, a wrap-up of my very own peculiar journey.

I spent these 5 years in Developer Relations team we call “DevRel Ecosystem” with the mission of nurturing influencers and their communities all over the world to boost Google technology advocacy, adoption, quality, and perception. So, interacting with tech communities, startups, third-party tech conferences, universities, organising Google-own events etc. Partially a manager of community managers, partially a lot more. I often sign emails for my Italian colleagues with “Your friendly neighbourhood dev-sitter“.

Learning day by day

In DevRel-focused conferences I attended, we often define us a “community of practitioners” because we’re literally crafting our own job day after day, and very few companies have the DevRel org structure and needs Google has: definitively a job with no repetitive tasks and where personal initiative is a key element. For me in particular. I left my job as Android dev in Funambol on Friday afternoon after a mojito party with colleagues, flew to San Francisco 14 hours later, on Monday moved to Mountain View for my first day in Google for the welcome training to collect my badge and laptop. Then the second day back in San Francisco attending Google I/O, thrown into the nonsense madness of such big events, with no idea about my role there, who my team and my colleagues were, even where my manager was and how to reach him. With 5000 attendees asking me any sort of things because I was a Googler. The week later, back in Italy, during my first one-to-one call with my manager, I asked him “Now that I/O is over, what’s the next step for me?” and he replied: “Well, we hired you because you know the Italian dev ecosystem better than me, so it should be you telling me”. When the meeting ended, I banged my head on the table multiple times, thinking about my life just 12 days before, when I was an happy Android dev, shielded from the external complexity of the world by the comfortable shell where every dev “code, breath, repeat”.
So, from that second day in San Francisco onward, I’ve been exposed to a continuous and unique learning experience with lot of autonomy. Everything has been a great playground where exercise my Kaizen approach to life, to learn and improve. But it hasn’t been easy, kind of an endless and restless run, where I was alone and on the wild for the first three years, until I had the first team-mate sitting my side, sometimes a marathon but often a sprint, always with a potential stress factor behind the angle. I still enjoy it because the way I am, but I recognise is not for everyone.

Relevancy, focus and happiness

Easy to imagine, this generated struggle in my work-life harmony, especially at the beginning. Because I’m more toward the perfectionist side, I believe there is always room for improvement: in crafting the idea, organising a project around, execute it and sharing back the experience. And the cost of this perfectionism is my time. During some stressful moments, my whole day time. Luckily, two epiphany moments helped me to find an initial harmony.
First one happened when a colleague said “This company is a machine that produces more tasks than you can manage“: I understood I have to accept the fact I cannot do everything I would love to do within the full and huge spectrum of potential activities available. So, being good in the prioritise only the very relevant balls you want to juggle with and understand what is that relevant in the company context were crucial steps to grow. In DevRel org, and in Google in general, we have so many projects, opportunities, stimulus and extremely unique challenges not yet solved that, added with the positive anarchic culture of the team, it’s easy to lost the north if there is a lack of focus.
The second moment was when my first son was born. In choosing how to spend the non-working part of the day, I’ve always been driven by the approach “use your time to find happiness pursuing your passions and embracing new learning occasions outside your comfort zone“, and being a father added duties that changed the entire time balance of my day. After some try-and-make-mistakes cycles, and thanks to meditation, I understood differentiating among family, personal, work, relax etc time had no sense, that my day is a continuum and finding what’s really relevant in different contexts, over a period, and stay sharp-focused on these things only, and literally nothing else, creates the harmony I need, allowing me to don’t feel overwhelmed, but happily busy and alive. It’s impossible to catch up with everything, quality over quantity and whatever makes people around me happy is time well spent: my family first, then all the rest in no particular order, including my team members, my users, my friends, my manager, myself etc. I haven’t found the perfect harmony yet and it still happens I need to sacrifice some extra hours of sleep but, if I look back, overall life now is better than before.

Servant leadership and team culture

I started to lead a team of 6 people, more or less two years ago, and I discovered that is not an easy task, it’s time consuming and it’s also one of the most empowering experiences I’ve ever had. Leading the team, for me and probably also because of company culture, has something in common with the role of a community manager: you are there for the development of the community with no room for your personal ego; you’re successful only if the community is successful and community members are happy to be in your community; you cannot change or control community members, only guide and help them evolving with your influence and support; a sense of community (team culture) is necessary for the community to survive in the medium-long term.
Because the way I am, my team management style resonates very well with the concept of servant leadership, and the team culture is the glue that keeps us connected together. A culture where it’s OK to make mistakes, but always new ones, where we all have a clear vision, concrete goals and we run all together toward them activity after activity, where we retrospective what’s happened and plan the future all together regardless our roles or seniority, reserve a little bit of our own time to experiment with new things, disagree and commit, provide gentle feedback to others, focus on our own sweet spots and try to connect them together in order to cover as much as we can as a team, know the reasons, the core whys, we are doing what they’re doing, in order to match personal passions with team duties, lead by example.
A team where we share and discuss the ideas we have to improve and solve the projects we’re working on, because when ideas circulate, everyone can enrich them and an open and sharing culture allow to achieve more, both from results and personal growth side. It’s not easy to achieve that while we’re spread across 4 countries and 2 different time-zones, but it’s one of my main responsibilities as manager to allow circulation of these things, and the chats I have with everyone, at least one hour every week, a weekly meeting to share and plan together the next days and a 2-days in person summit three times a year, all together, have been making the job, at least until now.
Merits are assigned on the ownership and the execution of the projects and I would consider a personal failure if a person joins the team and later leaves it with no new ideas, new tools, new experiences, new perspective in its pockets. Does it means we’re all good friends? No, but we like to spend time together, to solve and work on professional needs and, sometimes, also for personal pleasure.
Among the many resources on the topics, I suggest the podcast “The Andy Stanley Leadership Podcast“, a monthly source of invaluable resources on leadership topics, and the book “The 4 Disciplines of Execution“, that helped me to align the team toward unique goals and improve ways to pursue them, quarter after quarter.

Forgiveness, charisma and data

Moving inside a corporate environment isn’t always easy, and I’ve experienced moments where I felt like chained to the ground due to other colleagues behaviours and decisions, luckily very few times during these five years. Once one of my managers told me “When you have such energy and you know what you’re doing, you should ask for forgiveness and not for permission“. It was an important lesson of humility, trust and maturity together, even if I don’t think it can work in all the companies, but Google culture may tolerate that, sometimes and if you choose carefully.
Nowadays I prefer the “influence with charisma” approach, even if it’s slower and more difficult to exercise, but allows a broader impact and when politics start getting into the environment, it’s the only way of achieving what I hope to be able to achieve.
On top of both approaches, I’ve learnt availability of data to support my opinions really can make the difference. Quoting Barksdale, “If we have data, let’s look at data. If all we have are opinions, let’s go with mine“, so having good data to use can put everyone in an advantage position. Of course collecting meaningful data is another art to master, requires discipline, it’s an ongoing process to improve every day and often not easy to keep focused on the non-vanity metrics or researches. And have a good narrative to tell others that data is equally important.

Remote working

Another element I now consider a crucial asset of my job is the possibility to remote working. I have two hours commute time daily and, even if I’m able to work the majority of this time, even if I value the fact I arrive at the office already focused on the next steps and I can dedicate extra time to cool down or finish some tasks on the way back home, even if offices in Google are, generally, among the best I’ve seen in companies, working remotely has way more value than money and time saved. Context matters, and be where I want to be, in a park breathing the blooming spring smell, relaxed at home, next to a person I care, provides an incredible flexibility everyone should be able to experience.
It doesn’t come for free, of course. First, and foremost, a proper remote working culture is required. It starts from a personal responsibility to commit your duties, be easily reachable for the people that need you (hardware equipment, bandwidth quality and reliability, time availability etc), soft skills to interact with the others over a remote conversation, team processes calibrated around this scenario and more. Google offers rooms where I enter, press a button on a display on the table / monitor and I’m connected with the other sides of the meetings: it’s fantastic to have this no-entry level barrier to interact.
Finally, a good balance between remote and office work is necessary, as remote cannot totally substitute in-person presence: the chance others can enrich what I do is simply not available when I’m far from them, coffee machine chats are really a thing, the importance of bonds with colleagues outside working topics, how quickly some questions could be solved simply going and speaking with someone.

Value diversity and have an open mind

Google has immersed me in a hugely diverse environment that can really boost everyone’s personal growth, because of a real multicultural, time-zones and countries spread workforce, where is possible to still make new discoveries after years. I don’t mean only gender diversity, but the whole set of diversities. As for remote working, simply putting together diverse people doesn’t make the magic, and there are several prerequisites needed: among the many, the perception of an open environment, in term or reciprocal respect and trust, freedom to be themselves, possibility to make mistakes, availability to receive feedback and suggestions, understanding of implicit biases we all have and how to deal with them, a personal availability to put additional care to what’s happening around us, that our opinion is simply one of the many and not always the best one, the ability to say a sincere sorry when mistakes are made.
Travelling is another great possibility I have, and inside my team is relatively easy to go everywhere in the world if there is a reasonable working reason. Of course I try to avoid serial travelling (mostly because of I have a family), but meeting colleagues where they live and, thanks to my job of manager of community managers, I can breath the local environment and meet local people, listen to them, go where they go, be a guest, not a tourist, in the local ecosystem.
Nothing more than a semi-empty mind, ready to be filled by the context and able to adapt to it, helped me growing. Because what’s around me is the mirror reflecting, so shaping, who I am.

Put on user’s shoes

Every DevRel role depends on the external users and their (hopefully) happy relation with your products: I value this continuous exposition to the external world as an incommensurable treasure. It fosters diversity, keeps my mind open, allow a flow of new ideas. Even if one of Google’s mantra is “User first”, I’ve sometimes interacted with people maybe too closed in their own bubbles. And this is one of the biggest differences between a well-established company mindset and a successful startup mindset I’ve discovered: startup is forced to always have users and their needs in mind, and the rent to pay the roof covering employee’s heads depends on this ability to understand the customer and speed in execution thanks to a razor-sharp focus. In a well-established company, instead, generally that hurry is less perceived because there is a fix salary, and sometimes a manager / the team / the org / internal complexity / processes could become “the ultimate customer”. After all, putting on user’s shoes is not trivial and exit from the comfort zone requires effort, so making assumptions or serve a different master than the user is the quickest and less painful way. In short, be lean.
Luckily, interacting with “influencers” of the tech ecosystem, like community members, conference organisers, experts in their own tech field etc, remembers me where my attention should focus, my last goal in everything I decide to do, how bad is to expose them internal company complexity, to assume nothing, the many learning occasions this “exercise” can provide me. I’ve found this attention to put myself in someone else’s shoes extremely useful also when dealing with colleagues, friends, family, random people: everywhere there is human interaction.

The one big fight I had. And it was with myself

I want to close this long introspective journey with the most traumatic experience I had in these 5 years: it was about the switch I did from being a developer to cover a Developer Relations role, dealing with communities, project management and manage a team. After the initial period, where the lack of time to code was well surrogated by all the unicorns and rainbows of a new job in Google, I started to realize weeks could pass without me writing a single line of code. I was warned about that, nevertheless was a huge internal conflict to deal with. I wrote my first program when I was 13, I started my first full time job as developer at 19 and I moved to Google when I was 33: nothing less than 20 years dedicated to the art of coding. If you’re passionate about development, you know it’s not a 9to5 job. It is, instead, a passion, maybe even a curse, a delicious curse to deal with, because we’re all happy to pay such high time and commitment tribute in exchange of the positive emotions derived from the happiness of creation, the satisfaction of bringing order and logic where chaotic and unmanaged information was, the pleasure to discover new stuffs and challenge ourselves using them to improve, the pride in teaching others about our craftsmanship. And after 20 years of days and nights immersed in this world, shaping and measuring my professionality and myself through the lens provided by it, switch and reinvent who and what I am was deadly hard.
How I solved it? First, it was something I wanted, it wasn’t an unexpected shift. Then, I’ve applied introspection, a development plan and discipline: I first understood coding wasn’t the only thing able to keep me happy, but I’ve found sweet spots in other areas of my job with positive and impactful effects on me, in particular dealing with communities and supporting them. Then I posed myself the question: “How do I see me in 5 to 10 years from now, both personal and working life, maybe still in Google, maybe not?“. Again, lot of introspection through meditation, and I was finally able to figure-out a satisfying and actionable reply. Now, it’s just a matter of discipline to keep connecting the dots between what I’m now and that picture of myself in the future. And, in the meantime, smile, breath, live and help others to smile too. Let’s see in five year from now ;)

If you’re curious about my life in Google, there are other posts to read.

Earn Alitalia Millemiglia miles – Bennet card

Bennet Alitalia Millemiglia(This post is part of the Alitalia Millemiglia travel hacking series)

Among the partners that allow to convert their loyalty points to Alitalia Millemiglia miles, there is Bennet, an Italian hypermarket chain with more that 6o points across northern Italy. It is possible to convert 1 Bennet point to 1 mile, till end of January 2017 (at least).

Taken alone, it already seems an interesting possibility to me, considering  Carta Bennet Club is activated for free and immediately upon requests, and gives 1 Bennet point for each 0.50 euros spent, after the fist 5 euros. Plus, there are several product that grant additional Bennet points.

Paying the bill using a Carta Alitalia Oro adds up more additional miles. For example, let’s consider a total expense cost of 50 euros: Bennet will credit 90 points (50 euros – 5 initial euros) * 2 points each euro, and the Carta Oro will entitle for additional 62 miles, 50 * 1,25 miles multiplier. A grand total of 152 miles, with 50 euros of shopping. Not so bad.

In addition, Bennet customer care told me that in the past they were special days when 1 Bennet points gave 2 or event 3 miles. Fingers crossed for a next occasion, but in the meantime I keep earning points.

Earn Alitalia Millemiglia miles – choose a credit card

(This post is part of the Alitalia Millemiglia travel hacking series)

It’s not a secret one of the first tools in the travel hacker toolbox is a credit card to earn loyalty points for each purchase made with it. Alitalia has a partnership with American Express to exchange Alitalia miles using AMEX Membership Reward Points. But if you’re not an AMEX customer yet, there are three interesting special cards to consider: Carta Alitalia Verde, Carta Alitalia Oro, Carta Alitalia Platino.

The main, common, advantages are earning bonus miles for card activation, plus miles for each purchase made with the card. Amount of the bonus miles and miles multiplier for purchases change with the level of the card. In additions, they offer access to exclusive Alitalia clubs (Ulisse and Freccia Alata), travel assurances, free class upgrades, bonus tickets and more. Conditions and offers change over time, so it’s important to check the current ones.

But I’ve discovered an interesting difference when requiring the card online, compared to requiring it offline at the dedicated American Express booths at airports: offline activation enables a way bigger welcome bonus. In fact, requiring a Carta Alitalia Oro at the airport entitles to 25000 miles bonus, instead of the 3000 miles for online activation: 3000 contextual to card activation (as for online), plus additional 22000 miles if at least 500 euros are spent during the first 3 months after card activation.

There are two drawbacks, compared to the current online offer (valid till Dec 18th 2016): 60 euros for the card first year fee, while online activation has 0 euros fee for the first year, and no 100 euros Amazon gift card, offered with online activation.

All considered, I’ve decided to activate a Carta Alitalia Oro at the airport (Milano Linate, in my case), spending 60 euros to receive those 25000 miles, rather than activating the card online spending 0 euros and receiving a 100 euros Amazon gift card. It seems a loss, but earning these additional 22000 miles would have been more difficult, and expensive, than that. And with 25000 miles is already possible to request a return ticket for a lot of European destinations.

To summarize, thanks the card I’ve now: 3000 welcome bonus miles, potential additional 22000 miles if I spent 500 euros during the next 3 months (easy, with my current expenses), free travel assurance, a companion ticket if I spend 15000 euros within the year (but this is too much for me), 3x qualifying miles for Exclusive Clubs access, direct access to Alitalia Club Ulisse, that enables 25% extra miles earning on flights booking, priority boarding, extra baggage free of charge, 2 Economic to Business class updates for European and Mediterranean, paid access to SkyTeam lounges and more, extended to all Skyteam partners. Card is connected to my bank account, no need to open a new one.

TripIt, Worldmate, Tripcase, Kayak Trips: my review of travel planner apps

I travel quite a lot, so having a service to track all my reservations, flights, hotels etc is very important for me. Luckly, there are several “travel companion” apps, so I’ve taken a look to some of them. I don’t consider myself a uber-user (yet), so this post tries to review them thru the lens of the features I consider useful for me now:

  • Must-have: the mobile app works offline
  • Must-have: import travel plans painlessly, just forwarding the confirmation email I receive
  • Must-have: generate a calendar feed that could be integrated in my Google Calendar
  • Must-have: edit, delete and add trip segments, even offline
  • Important: a great UX for the basic and most recurrent tasks, a pleasant UI in general
  • Nice-to-have: receive no my mobile device updates on flights gates, delays, luggage exitsm, etc
  • Nice-to-have: sharing travel plans with others not subscribed to the service

TL;DR: After a while with TripIt, I’m now using Kayak Trips, and I’m happy with it.

TripitTripIt

TripIt is an historical player in this field, I’ve used it for a couple of years, but I left the service after several failed imports of travel plans (Trenitalia, Easyjet) and wrong timezones for the imported ones. Recently the mobile app has been revamped, but the issues with importing data persists and the majority of the webapp has the same very old UI. On the other side, thanks to the Pro account, I’ve received punctual notification on flight schedules changes, gates etc even before the displays at the airport showed them, and I’m part of a team with all of my colleagues, so we’re alerted each other if we’re nearby and I can check their travel calendar. Full list of features can be found here.

WorldmateWorldmate

Worldmate was one of the first alternatives I tested. It has rarely failed to import my emails and it was the only service able to parse coach and seat number of train reservations. It met all my requirements in the free version, except the calendar option, available only for premium accounts. It also offers a connection feature with LinkedIn, alerting when crossing paths with your contacts. I was not impressed by the web and mobile UI and it’s impossible to split / merge trips. Another cool feature offered is an API for parsing travel itinerary information from confirmation emails. They were acquired by Carlson Wagonlit family in 2012 and full features list is here.

TripcaseTripcase

Tripcase uses Worldmate API to parse travel itinerary, but from tests I’ve done sending the same confirmation emails to both services, Tripcase adds less detail to the final trip itineraries: for example, train coach and seat are missing. I don’t know if the API returns less info or Tripcase discards some of them. From a UX / UI point of view, it is much better that Worldmate. The only issues I’ve found so far is the creation of separate trips for confirmation emails that refers to same dates and destinations, for example a flight and an hotel, even if a specific option should prevent that. They could be merged later on web app, but it’s annoying. Calendar appointments are created, but only for the trip elements, while I generally prefer to also have an all-day event for the whole length of the trip. One cool feature app offers is reminders for missing hotel reservations in the itinerary, while full list is here.

Kayak TripsKayak Trips

Kayak Trips: Kayak has always succeeded to import confirmation emails for hotel, flights or train I’ve booked in Europe and USA, and it mets all my requirements with satisfaction. Another unique factor to consider is the Kayak business model: Kayak is a travel search company and the app is a commodity to drive more bookings, so there is no premium version and the app could be maintained even if it’s not profitable by itself. Flip side is the total lack of integration with the additional travel services the other reviews apps offer, like LoungeBuddy, Mozio and many more.

Google TripsGoogle Trips

Google Trips: latest comer to the party, the UX/UI of the app is great, everything is create automagically from inbox emails and there is a strong support for offline features, well integrated with other Google properties. Unfortunately, a Gmail account is required and there is no way to manually add/modify a segment of a trip, or choose a different splitting for them.

 

Disclaimer: there are lot of more features these apps have (booking hotels / flights / cars, integration with third party services, tracking of loyalty program points and much more), and the presence or lack of some of them could greatly influence personal choices.