Tag Archives: Best Practices
The future is diverse
Build a diverse team
Culture of empathy, not sympathy
Tell relatable stories
Hold yourself accountable
Source: AdWords Agency Blog
Staged releases allow you to bring new features to your users quickly, safely and regularly.
Posted by Peter Armitage, Software Engineer, Google Play
Releasing a new version of your app is an exciting moment when your team's hard work finally gets into the hands of your users. However, releasing can also be challenging - you want to keep your existing users happy without introducing performance regressions or bugs. At Google I/O this year, we talked about staged releases as an essential part of how Google does app releases, allowing you to manage the inherent risks of a new release by making a new version of your app available to just a fraction of your users. You can then increase this fraction as you gain confidence that your new version works as expected. We are excited that starting today staged releases will be possible on testing tracks, as well as the production track.
We will take a closer look at how staged releases work, and how you can use them as part of your release process.
Advantages of a staged release
The first benefit of a staged release is that it only exposes a fraction of your users to the new version. If the new version contains a bug, only a small number of people will be inconvenienced by it. This is much safer than releasing a new version to all of your users at once.
Another benefit is that if you discover a bug, you can halt the rollout, preventing any new users from downloading that version. Instead, they will receive the previous version.
These capabilities should relieve a lot of the uncertainty of rolling out a new version. And that will allow you to do it more often. We encourage releasing versions of a server more often because it reduces the number of changes between each release, allowing you to more easily test and troubleshoot. The same principle applies to apps, though there will be a delay before most of your users upgrade to the latest version.
Staged releases as part of your normal release process
Let's look at a typical release process for an app with 100,000 users.
- Every Monday the developer builds a new version of the app from the latest version of the code that passes the automatic tests. They push the new release to Google Play's internal test track, and their QA team immediately starts testing it manually. Any bugs they find can be fixed and a new version can be built and pushed for them to re-check.
- On Tuesday, if the QA team have approved the latest release, it can be promoted to the app's alpha track. All the employees at the company have opted in to testing. Once the new release is pushed to the alpha track, the employees can download the new version. They can do this manually, or they may have auto-updates enabled, in which case they will probably update within a few hours.
- On Wednesday, if there are no reported issues with the release, they can promote the release to the production track and start a rollout at 10%. This means 10,000 users will have the opportunity to upgrade. Some will upgrade immediately, others will wait. The 10% of users that receive the app first are randomly selected, and the users will be randomly chosen each week.
- On Thursday, the developer checks the Play Console to see their crash reports, Android vitals, and feedback. If these all look good they can increase the rollout to 100%. All users will be able to upgrade to the new version.
- On Friday, the developer doesn't change anything, to ensure a stress-free weekend!
For big apps and small apps
Some apps are just starting out, and although there's no QA team, it's still worth testing the app on a few different devices before releasing it. Instead of having a track for employees, the developer has added their friends and family, who can contact them if they see an issue.
When an app gets larger and uses the open testing track, it may have 5,000 testers. These testers won't give public feedback on the Play store, but will be able to give feedback to the developer directly. If this app has 1 million users, they may first release to 1%, before going to 10%, then 100%.
Once an app becomes very popular, it could have over 100,000 testers. In that case the developer is now able to do a staged release on their testing track.
How to bounce back from issues
Bugs happen, and if you discover a problem with your new version you may want to halt the release. This will stop users from getting the new version, either by upgrading or installing for the first time. However, those who have already got the new version will not downgrade.
If the issue was not in the app itself, but on a server that the app communicates with, it may be best to fix the issue in the server, then resume the release. Resuming it allows some fraction of your users to access the new version again. This is the same set of users that were able to download the release before it was halted.
If the issue was in the app, you will have to fix it and release a new version. Or alternatively, you may choose to rebuild the previous version with a higher version code. Then you can start a staged release to the same set of users that the previous release went to.
API support
Staged releases are supported in v3 of the Play Console API on all tracks. Mark a release as "inProgress" and set a fraction of the population to target. For instance, to start a staged release to 5%:
{ "releases": [{ "versionCodes": ["99"], "userFraction": 0.05, "status": "inProgress" }] }
Alternatively, if you release using the UI, it will suggest a fraction.
What next?
We hope you find these features useful and take advantage of them for successful updates with Google Play. If you're interested in some of the other great tools for distributing your apps, check out the I/O 2018 sessions, and learn more about test tracks and staged updates.
How useful did you find this blogpost?
Source: Android Developers Blog
Building better client relationships
Strong client relationships can’t be built overnight; it takes time, effort, and dedication to develop them. But they’re also the cornerstone of any great agency.
Happy clients help you to:
- Reduce churn - it’s far cheaper and easier to retain existing customers than it is to find new ones.
- Improve loyalty - attract new clients organically through positive testimonials.
- Reduce negative sentiment - unhappy clients are perfectly willing to share their poor experiences, and bad news travels fast.
In short, the more you put into your relationships, the more you’ll get out of them. But every client has their own unique needs, so one size never fits all. Luckily, there’s a few universal truths when it comes to strong communication. So follow these five steps to give yourself a solid foundation to build upon.Be engagedWhen you first meet with a prospective client, take the time to hear and understand what they’re hoping to achieve. Painting a complete picture of their goals and KPIs will help you offer a curated service that’s fully geared towards their needs.Be responsiveCommunicate openly, honestly, and quickly. Set an agency-wide target response time for all queries, to make sure each of your clients feels respected and valued. Avoid radio silence at all costs - even if you can’t give a detailed response immediately, get in touch to let them know you’re working on it. Seek to understandIt’s difficult to juggle multiple clients, especially when you’re dealing with conflict. But in stressful situations, it pays to put yourself in their shoes to better understand their point of view. Ask questions about their business, and when you’re sending on reports make sure they have a strong emphasis on metrics they’ve identified as important. Follow upAfter every email exchange, phone call, or face-to-face meeting, make sure you follow up with a list of actionable points that you’ll be implementing going forward. This helps to set realistic and achievable results within an agreed-upon timeframe, and reduces the risk of crossed wires affecting your relationship. After every project, you should also follow up with a discussion on what went well, and what didn’t. These insights can then be applied to future projects to make sure you’re always delivering what your client wants. Follow throughA missed deadline can have a severe impact on an agency / client relationship, so never make a promise you can’t keep. Push back on unrealistic asks, with valid reasons for why it can’t be done and an alternative solution. You always want to be accommodating, but work suffers when you’re in a race against the clock, and it’s important you always retain your client’s trust.
This honesty and openness can sometimes lead to short-term conflict, but the best agencies realize that conflict is forgotten quicker than disappointment. We even have stats to back it up! In a recent poll on Twitter, 39% of Google Partner agencies said that the key to strong customer relationships is to be engaged and follow up, while 32% highlighted delivering on commitments as their main priority. We all have multiple clients, and it’s easy to forget sometimes that, very often, you’re their only agency. In giving you control of their online advertising, they’re trusting you with the keys to their business growth and development. If they’re confident in your ability to perform, that job gets an awful lot easier.
Take a look at the video below for more advice on building thriving relationships with your clients:
Source: AdWords Agency Blog
How to grow a small business
The spark that starts the journey
Believe in yourself and don't overthink
Be flexible to go with the times
Quick tips that linger
Get your business online with Google My Business
Source: AdWords Agency Blog
Turning conversations into sales
Do your homework about potential clients
Always be closing
It's not us, it's you
Want to learn more? Download this handy infographic
Source: AdWords Agency Blog
Moving on from conflict
Sometimes personalities clash
Communication can break down
How's morale?
Source: AdWords Agency Blog
Recruiting talent is a talent
Before the interview
Screen with phone interviews: This is a great time-saver for you and your applicants. It gives you the chance early on to narrow down your selects and save them some disappointment as well.
On the day
Follow up
Source: AdWords Agency Blog
Stay sharp, stay competitive
You might have heard the adage “there are no friends in business”. It’s a very old saying, and an even older philosophy. Times change, and in an increasingly competitive landscape one of the most powerful tools at your disposal is the ability to acknowledge your competitors’ strengths. Once you’ve done this, you can learn from them and grow.
With this in mind, competitive research helps you to make informed market decisions, discover new products, and learn from others’ successes and mistakes. It’s a straightforward process, and sometimes it really pays off to be introspective. Here’s how to do it.
Categorize your competitors
Make a list of your competitors, both direct and indirect. Track this in a Google sheet so your whole team can create live updates. Note their name, industry, website, customer base, and their position within the marketplace. What are their Unique Selling Points (USPs) for example price, unique services etc.?
- How does their brand/service make you feel?
- Are you drawn to their USPs?
- Are they easy to find?
- Are their services easy to access?
Source: AdWords Agency Blog
Inspiration, preparation, perspiration – Your roadmap to excellence
Organization is the starting block of excellence. While it’s tempting to jump head-first into a new project, it’s important to make time to plan it out. Use Google Docs to create shared timelines and assign tasks so everyone involved can access and update accordingly.