Category: Innovation

Build a Self-Managed Tech Team

You can build a technology and innovation self-managed team to boost your organization.

 

What is a high-performing team in software engineering?

 

There are different several ways to define performance.

One way that makes a big difference is how much the team is dependent on its leader. When the leader makes all the decisions, it limits the team’s potential.

You can measure the effectiveness of leaders when they leave either for a short time or permanently. If team performance declines, it’s a sign that the leader didn’t create the conditions for the team to manage themselves.

Why do self-managed teams need a leader?

You can see the top-performing teams in the world, like sports teams, for example.

  • What do they do?
  • What are the conditions?
  • What behaviors do they demonstrate?

Is the coach on the field during the game to make all the decisions? No, coaches do most of their work before and after the game. They give feedback, share insight, give advice, and prepare their players for the next game.

Inexperienced managers often have a desire to make all decisions, even those on the front lines. They get impatient, and take most of the decisions rather than see them learn from doing or coaching them to improve.

The role of leaders is to get the best performance out of the team.

And to make the vision and goals clear for all.

Build Tech Teams from Mexico
What is a self-managed team?

How a team makes decisions? Is the leader approving or making every decision? The role of the leader is to make employees think for themselves.

In a self-managed team, even the most junior employee is empowered to make a meaningful decision that affects the team’s performance.

When working with your team always ask these questions:

  • Is the company/project vision clear?
  • Are the company/project goals clear?
  • Do you understand what we’re trying to accomplish and objectives?

Everybody has to think of these answers to be a winning team.

Set the common ground and start coaching from there.

In software, teams are very common an engineer comes to you and asks, “What should I do? How should this work? Is this the correct way to do it?” You can respond by asking back, “What’s the goal we’re trying to accomplish? Which direction do you think would serve the vision and our goals better?”

Managers often decide for the person because it’s faster. Then the same engineer goes and does what the boss suggested without taking the time to think why?

It is a far better option to make the engineers think through the vision, the goals, and the trade-offs. Once they’ve done it, they can tell what options are better and why.

The coach has to point out potential flaws in their reasoning. Maybe they made an inaccurate assumption, other data, or a different approach.

Managers must teach engineers how to think about complex matters.

Engineers should consider the vision, the goals, and the data, so they can decide on doing some analysis.
When your engineers do this, you can coach them to solve complex problems, instead of solving for them. At that point, a team member can grow.

How to develop a self-managed team?

Every challenge is a learning opportunity; don’t take them away from the team. Ideally, they should be making most of the front-line decisions.

But even after deciding for your team, you can sit down with them and explain the reasoning behind the decision.

It’s worth investing time into because if everybody on the team thinks and analyzes by themselves, they all can move faster.

How do you measure the performance of management?

A manager being overloaded with work may be a warning sign. Managers should delegate more responsibility to their team and let them own it autonomously.

Strategies for leaders to build self-managed teams

 

1. How often do engineers ask the leader to make decisions

 

Watch for these types of questioning:

  • Can I do this?
  • Should I do this?
  • Am I allowed to do this?
  • Do you approve this?

2. Do more coaching

Don’t make decisions for them, unless you have to. Instead try, when they come with questions, ask back, “What would you do in my place?” make them think through the problem. Or try explaining, that you want them to think for themselves, analyze and take decisions, to become a more complete professional.

 

3. Encourage the team to make decisions

 

Growth happens when somebody gives you an opportunity and trusts you to make it happen. You need space and support to deliver a goal.

A good manager can get results. A great manager can get results and grow their people, so they can do the same for others. Most people are open to and grateful for these opportunities. They see this helps them to grow.

Build Tech Teams from Mexico
Communicate purpose to become a self-managed team

Set a clear expectation for them to think for themselves and to make decisions. Ask them to think about it and make a proposal.

Always clarify the vision and the goals first.

Leaders are not the right people to make frontline decisions. They must help the individual collaborators to make the right decisions.

Help them make decisions, and coach the thinking process and reasoning.

Requisites to become a self-managed team

 

Be patient, building technical self-managed teams takes time. Managers need to observe each team member’s thinking process and select if they are fit to be self-managed.

Some people are not comfortable making decisions. They might be slowing the performance of the overall team.

Take the time to evaluate your team and make sure they’re capable before you expect them to work autonomously. You may have to replace some people, but building a team of leaders empowered to make good decisions makes a lot of difference.

The mindset of critical thinking and growth is required.

Whether it’s possible to turn your team into a self-managed team, depends mostly on the team members.

What should I do now?

 

If you are interested in hiring a self-managed tech team from Mexico, contact us for a free consultation.

Our engineers have deep knowledge of web development and cloud, with many success stories building e-commerce, marketplaces, mobile apps, fintech, payments, banking, and retail.

 

Learn Why Towa Managed Teams is the right fit for your company, book a 15-min call with us now.

Onshore or Nearshore Tech Teams

So we all know about Offshore software development teams, they can be found abroad, usually foreign countries on the other side of the world.

 

Current technology enable collaboration of teams, everyone works remotely now so it is easier to outsource skills and engineers to help you build your product or service faster, at lesser cost than building a tech team locally.

Mexico, Colombia, Argentina, Chile all have cities with technology hubs where your company can find the right skills and engineering techniques for your project.

Many companies and startups find that outsourcing software development offers more benefits than hiring developers in-house or locally, mainly because today’s most demanded skills are related to computer sciences and there are certain IT skills that are hard to find, so the costs rise up, and there are no guarantees.

 

When researching a place to outsource, there are basically four types of IT outsourcing to consider: locally, onshore, nearshore or offshore?

 

So, which is the best option for outsourcing tech teams for your business?

Hiring locally, Onshore, Nearshore, etc?

There are pros and cons to all of them. So it’s important to define what are the main differences between them. To determine which options of IT outsourcing is the best for your company.

 

  • Onshore or nearshore means that outsourcing software development is located in the same countryor region and have similar and compatible timezones.
  • Offshore indicates that the company you hired is in another country with a different time zone, maybe 12 hours.
  • Hiring locally can be expensive, and some skills required are hard to find.

The awesome about today’s technology is that. There is no need for an in-house team. Instead, you can find the right partner to help you build and scale a tech team, both onshore or nearshore, outsource in a neighborhood country.

Onshore Tech Teams

 

Onshore is often known as local outsourcing. In this option of software development service, a company has the opportunity to focus on its core business capabilities.

 

While quality is ensured, the required work is still done in a connected manner, with regular or daily meetings.

 

Your dedicated team will speak the same language. Onshore and nearshore outsourcing offers some benefits:

 

  • No language barriers or many cultural similarities.
  • Timezones are the same, or have many compatible 9 am to 5 pm labor hours.
  • Constant communication, daily meetings and same day responses.
  • An onshore development team is easy to nail and scale.
  • Less expensive labor than locally
Top Mexican Engineers for Hire
Nearshore Tech Teams

Nearshore software development is consider to be between onshore and offshore.

 

Nearshoring is when the team is located close to your company headquarters, perhaps in a neighbor country (Canada or Mexico)

 

Nearshore outsourcing has similar benefits to onshore and is far better option than what offshore can offer.

 

Weather you choose a nearshore or onshore partner company to build your tech team, the pool of talent is exponentially larger and labor costs can be reduced.

 

In addition, there are other advantages for nearshore tech teams:

  • Time zone are mostly the same or lightly different.
  • Many Latam countries share cultural or lenguaje similairies.
  • Being more able to travel, if you really need to.

 

Most of the time. it would probably be a little higher cost than offshoring your tech team, but it is many times less riskier and more likely to success when you hire a manage tech team in a neighbor country like Mexico.

Onshore Tech Team: What you need to know?

 

Onshore tech teams are located in Mexico, in cities with the top talent coming from best Universities in the country.

An Onshore tech team can maximize a successful business with quality, engineering and technology at a lower cost.

From Onshoring a Tech Team, both parties benefit from the partnership.

 

Advantages of Onshoring a Tech Team

 

Some potential benefits of an offshore software development team:

 

  • The project accesses a larger pool of talent
  • Hiring a top talent for you team at lower costs
  • Dedicated Tech teams can handle your technology services
  • If you find the right partner to build your Tech Team for your company, they can assure to deliver and meet deadlines
Disadvantages of Onshore a Tech Team

 

There are some risks if you outsource your technology. While planning to hire a dedicated team, you need to consider the following:

 

  • Watch for similar time-zone , the less difference the better.
  • Transfering too much critical activity too fast.
  • Analyize the working culture of the neighbor country
  • Find partners that is located in a 3 to 4 hour flight to visit the production team, even that now almost everyone works remotely from homeoffice.
  • See for cultural values like accountability, hierarchy, scheduling, responsibility.

 

Talk to us to evaluate our company skills to help your business build a successful technology core competency.

As a leading software development in United States and Mexico, we have huge experiences in many fields including e-commerce, marketplace platform, fintech, payments, banking, retail and many more.

 

You can contact us at support@towasoftware.com or via +1 (210) 787 4525 for more information.

 

Don’t hesitate to contact us.

The right eCommerce solution

Which is the right eCommerce solution for my business?

 

Finding the right Partner for your E-commerce Business The new trend is to build a Marketplace using SaaS, and extend functionality with a plugins development.

Ecommerce in numbers

In 2019, retail e-commerce marketplace sales worldwide amounted to US$3.46 trillion, and e-retail revenues are projected to grow to a dizzying US$6.54 trillion in 2022 and will continue to drive the future of e-commerce forward. B2B (business-to-business) marketplace sales transactions are set to boom and will account for an estimated 30% of all worldwide online sales by 2024.

 

Combined, both B2B and B2C (business-to-consumer) marketplaces are expected to grow web sales worldwide to an estimated $7.1 trillion while peer-to-peer marketplaces including eBay and Airbnb will reach $240 billion in combined sales by 2024. However, the area with the fastest-growing global marketplaces will be in B2B.

 

Currently, only a small percentage of the annual worth of online B2B sales are made via marketplaces however, businesses are starting to realize the benefits of trading with partners via marketplace platforms. In this regard, as more businesses trade online, global sales will continue to grow which will include a wide range of industries and vertical markets.

Should I build around a SaaS?

SaaS, or otherwise known as Software-as-a-Service, is a software distribution model in which a service provider hosts applications via the internet for customers. SaaS falls under the form of cloud computing. Usage is subscription-based charging businesses either monthly, bi-annually, or annually to use the service. These online subscriptions come with their respective technical support and periodic upgrades, SaaS companies deliver usability without bogging down customers with details. You access content through a web browser interface and your content is hosted in either a cloud or shared server. There are a variety of businesses that provide this service for marketplace development such as Arcadier, CS-Cart, Dokan, and Sharetribe.

How can I customize the SaaS?

 

A plugin is a software add-on that is installed on a program, enhancing its capabilities. It is a form of integration of a separate application to the main platform, either by the platform owners themselves or by other third parties. For instance, you like to add an email marketing tool to your eCommerce business and you are using Shopify or Woocommerce to build your eCommerce, you can utilize the Quickbooks plugin that seamlessly works with your Shopify Store or your book-keeping or LiveChat plugin to create your customer support chat capability. A number of online store platforms offer a plugin that can turn your single merchant shopping cart into a multi-vendor shopping cart experience. Most of these were developed by third-party developers using their respective APIs and Webhooks, and these developers charge a fee for its use.

What option best suits my business model? 

This is the first question that goes through the minds of people who are trying to start their first eCommerce marketplace. Go with a SaaS provider such as Arcadier, CS-Cart, Dokan or Sharetribe, or via a plugin alternative that augments your platform to become a marketplace for online store platforms such as Shopify, Magento, or Woocommerce? It is key to understand the comparisons of their respective software delivery models.

 

The answer to this question will be dependent on three factors: User preference, costs involved, and feasibility associated with plugin systems.

 

Using standalone plugins is a great option, but it does have its limitations. For example, the plugin builder will still have to work within the confines of the eCommerce platform to change a user experience that is not natural to the main use case of the eCommerce platform. Dedicated Marketplace SaaS products have been built for the purpose of the marketplace experience in mind, so the user experience is designed from the ground up for a multi-vendor experience.

Build a team for your eCommerce business

 

Marketplace SaaS solutions are not significantly more expensive than what most plugin developers are charging for the download and use of their plugin. However, the risk of failure that the augmentation using a plug-in to a platform not developed to be a marketplace makes a dedicated marketplace SaaS solution a safer bet. The features provided by SaaS also enable businesses to efficiently create their own marketplace because a lot of the heavy lifting is already done for you, plug-and-play extensions, themes for your front-end, site optimization, dedicated support, analytics, and bug fixes are such examples.

 

The SaaS option is built-for-purpose but that does not necessarily mean the plugin alternative option should be ruled out, it is still a good option for building a marketplace, however, there lies the problem that all the plugin components on your platform of choice may not necessarily be able to properly shake hands with each other especially on more mature platforms.

Build fast and iterate 

 

SaaS vs Open-Source eCommerce solutions has their similarities, benefits, differences, and challenges. Both have their own niche market and success stories. A lot of people have built excellent marketplaces around both solutions.

 

The main factors to consider when choosing an eCommerce solution are budget, technical proficiency, and knowledge, and how serious are your plans to scale your business.

 

The more niche or more mature your marketplace is, the more customization will require.

Managing Remote Agile Teams: 7 Strategies

How can teams maintain effective communication when they are separated by location and time zones?

Principles like “software over documentation,” “responding to change over following a plan” and “quality interactions over tools” take on whole new meaning when managing remote teams.

Why Agile prioritizes communication

Agile methodology recognizes face-to-face communication as the most efficient and effective means to share ideas. The benefits of sketching on cards or a whiteboard are two-fold — improving the level of understanding and reducing the time it takes to deliver the core message.

 

Most credit the adoption of Agile thinking as the primary driver to create more open, collaborative office spaces no longer punctuated by rows of cubes and team members appearing every so often. Open spaces led to more drive-by conversations between team members and more feedback collected throughout the development process naturally.

 

Unlike smaller teams who do have the option to co-locate, enterprises managing remote teams often don’t have the luxury of sharing the same physical space each day.

 

Team structure options:

  • The stakeholders and the development team share the same physical space.
  • The business is physically separated from the development team with the stakeholders in one office and the development team in another, often offshore or nearshore.
  • The stakeholders and the development team are separated by distance and time. Additionally, the development team itself is distributed across cities or countries.

 

Distributed teams must actively work to avoid falling into communication traps that shift the project process away from Agile development to a decidedly waterfall one. But, the world is a small place even for distributed teams — made smaller by the available communication platforms from Microsoft Teams, Trello, Slack, Jira, or Skype. Promoting the same close communication expectations is the key to supporting the Agile process on distributed teams.

7 Communication strategies for managing remote agile teams

Foster a culture of continuous integration while builds are regularly reviewed and planned.

 

Creating a culture where continuous integration is the norm is especially valuable on projects with extended timelines or while managing remote teams. In this structure, it’s easy to opt for dividing work for teams along technical boundaries. These technical boundaries may be divided by frontend/backend work or even database and services layer/frontend. Team bandwidth or security might drive the boundaries. Additionally, some businesses may be cautious of releasing intellectual property into a cloud-based platform like GitHub.

 

This usually results in the maintenance of two source code repositories with a commitment to merge them later. Resist this. The technical debt that results from this fractured code is more time-consuming to overcome than if the teams had increased the communication necessary to manage just one code repository in the first place. Overcoming any communication barriers to work on the same code base is worth it in every way.

 

The team manages successfully at leading remote teams and achieving this culture will begin to see evidence manifest in the daily communication and behavior of team members:

  • All members actively strive not to break the build.
  • They will provide visibility to broken builds.
  • All will react with a sense of urgency to adjust build issues.
Commit to frequent builds, so you don’t prioritize upholding the plan over agility.

 

It’s easy to produce a giant spec instead of communicating daily with the remote development team or let distance become a reason to stay the course and avoid developing the solution when challenges or barriers arise.

 

Building on a weekly schedule is good, daily is even better. Hold your team accountable to submit a change set to the source code control each time. Then, take advantage of your compiler as a stand-in team member to ensure your source code has reached or exceeded quality expectations. Adding smoke tests can propel this even further.

 

Welcome the human process of developing custom software.

 

Most people assume custom software development is a purely technical process. While it’s true the process is highly technical requiring years of training and experience to run successfully, software development is a human process first and relies on trust between individuals.

 

Promote knowledge sharing on every team. This is less about documenting processes in a Wiki and more about nurturing this behavior in daily stand-ups or any time team members give updates.

 

Support your team to share beyond what concerns to that day’s work. If a team member expects something they are working on may impact another role the next day, call that out. Once team members master the habit of sharing important, forward-looking insights, that’s when true knowledge sharing has been reached.

 

Foster communication between UX designers and business analysts to accelerate throughput by a factor of two.

 

Fostering close collaboration between designers and business analysts, urging extra attention to the graphical interface. This mean additional time is spent creating visual artifacts for the technical team to complement related user stories. The prize? Less questions related to aesthetics and less iterations created as a result of the mismatched expectations.

 

Consider even non-functional requirements.

 

For teams who are co-located, it’s easy to address questions around performance and scalability as they arise. Imagining and documenting requirements with the appropriate level of detail serves as the link between the business and technical teams.

 

For distributed teams, understanding non-functional requirement feature plays an even bigger role. Without specific directions documented for the technical team, it might result in the production of an architecture that makes assumptions about the non-functional requirements resulting in increased rework, and time waste later.

 

Managing a distributed team may mean documenting more.

 

While all Agile teams strive to write “just enough” requirements, managing a distributed team means accepting “just enough” may still mean documenting more than would be created for a co-located team.

 

Distributed team members can’t quickly sketch on a whiteboard to work through a complex concept. Rather than leaving your development and testing teams left guessing on the nuances that would otherwise be delivered verbally, document them and “give the answers” before the test.

 

By augmenting user stories with test or acceptance criteria you can set the technical team up for success without drastically expanding the narrative.

 

Choose a set of communication tools for your team that allows for the usual escalation of communication needs.

 

When teams are co-located, the level of communication needed escalates naturally. It might begin with co-workers speaking one-to-one in the breakroom. If clarifying details are needed, additional subject matter experts may be pulled into the conversation. Then, the conversation shifts from many-to-one or many-to-many, depending on the context. Maintaining this escalation process is essential to create outlets for quick answers or more in-depth conversations despite any distance that may exist between team members.

 

Types of Communication

  • Chat 1–1
  • Chat many-to-1
  • Voice call
  • Visual call
  • Screen share
  • Collaborative Board

 

The ability to ask quick clarifying questions is inherent in how most teams work. In the past, this could be accomplished with face-to-face drive-bys in the office. But, increasingly even teams who are co-located are relying on instant messenger or video calls to accomplish this.

 

Instant messaging is a powerful tool for managing remote teams that include non-native English speakers. The tool allows them the space to craft replies without the pressure of discussing directly (and quickly) with a native English speaker. That said, tools like Microsoft Teams or Slack allow for escalation from messaging to voice and video calls and even screen sharing if needed.

 

While the importance of instant messaging cannot be over-emphasized for distributed teams, watching body language and physical reactions to comments or questions are also critically important, especially when discussing challenges or questions to estimate feasibility or understanding.

What does it take to win with distributed Agile software teams?

No digital tool or communication strategy can replace the determination of the leaders needed to achieve the Team highest potential.

 

Co-Innovate with us.

 

Towa SoftwareBoosting Digital Transformation with best ROI – Remote Tech Teams. 300 strong.

 

Tips for distributed agile teams

“Agile development isn’t any longer considered to work for collocated teams only. Also, teams, projects, and organizations that are distributed are asked to focus on delivering value. Yet, with Agile’s emphasis on -among other things- face-to-face communication, this seems like a contradiction. So the question arises, how to adhere to the Agile principles when applying them in a distributed environment.”

H

ere you will learn about the key success factors for distributed teams. Readers will understand that also distributed teams can benefit from a value system and from principles that are beneficial for small teams. In fact, the two trends – distribution in terms of globalization and Agility – can even complement each other.

Many organizations find themselves faced with the challenge of making distributed agile work. Mergers and market consolidation, geographic expansion, and offshoring have made multi-site development the norm rather than the exception. Companies with sites in competitive labor markets can find distributed team members as an alternative when they can’t recruit locally.

Agile can work in a distributed environment, but it requires work; more effort than you’d expect if you’ve never done it before. Here are eight hacks that can make it easier.

Why distributing the team might make sense

You might not be able to get all the people with the right skills in the same location, but the world is filled with talented, motivated people, and being open to working in a distributed way opens up your options.

Besides, today’s technical professionals have more choices about where they live and work. They may like where they live and not want to move. In short, the people you need may not all live in the same location.

Local culture matters. If you’re developing a product that needs to appeal to customers in different countries around the world, you’ll need people who know the local culture and language. There are also political or security reasons for distributing development—from tax advantages for doing work in certain countries, to restrictions on data crossing country borders, to the need for people on the team with particular security clearances.

As you can see, there are a lot of reasons a business would choose to have a distributed team, and whether we like it or not, the number of remote workers is only going to grow. With that in mind, here are eight simple distributed-agile hacks that can set the right tone for a successful remote team.

1. Recruit motivated individuals

It is possible to make distributed development work; open-source projects do it all the time. They have a couple of advantages that other initiatives often lack.

  1. Their team members are often exceptionally self-motivated, at least if they are committers.
  2. They often don’t have to deal with stakeholders or requirements, because they are often building a project for themselves, so they know the problem domain very well.

In more normal situations, having highly motivated team members is really important, and the remote team members are going to have to be exceptionally self-motivated. that’s because they are going to have to work harder to communicate, stay engaged, and stay focused and productive. They won’t have the informal network of co-located team members to fall back on.

The co-located team members are going to have to work harder, too. They are going to have to make a special effort to engage their remote team members.

2. Create self-organizing teams

The worst thing to do when forming any team is to assign people to work on it; it kills motivation and destroys initiative. Since distributed work is even harder than co-located work—because it requires even greater motivation—the distributed team needs to be strong, with members who are committed to the mission, to the way of working, and to each other. That level of commitment doesn’t happen by accident.

Letting people choose to be part of the team—to work with one another—is an important first step. They must want to work in an agile way, and they must want to work with one another. Let people volunteer to join the effort, and then bring them together to establish their norms and working agreements.

3. Co-locate, at the start, to let teams form, storm, and norm

Forming a team usually takes at least a couple of sprints, sometimes longer. You will make your life, and theirs, much harder if you don’t invest in helping them develop into a high-performing team. It takes time and experience working together as a team to develop the trust, commitment, and mutual accountability that they need to perform well together and to be transparent about the state of the work.

Artificial team-building exercises do little to help teams go through the forming-storming-norming-performing process. Bringing teams together for a couple of sprints is really the best way to develop the working relationships that are essential to future performance.

4. If the effort is large, have co-located teams at each site

Let’s say that an organization has sites in multiple locations, as well as multiple teams, each with team members at every location. In this situation, you’re going to end up maximizing the amount of extra work for everyone.

Instead, you should try to form co-located teams at each location and let them figure out how to share the work among themselves, extending Scrum with a scaled agile approach such as SAFe or Nexus. In this approach, multiple teams are working on the same product.

With a scaled Scrum approach such as Nexus, you help multiple Scrum teams simplify cross-team collaboration by resolving and preventing cross-team conflicts and ensuring that they deliver an integrated product increment with every sprint.

Regardless of which framework you use, you should make sure each team has a Scrum Master. Masters will not only help their own team perform better, but they will also help everyone else who needs to collaborate with that team.

5. Co-locate development teams with their product owner

This sounds obvious, but I’ve encountered plenty of strange situations where this is not the case. I’ve seen companies with the development team in one location and the product owner in another. This really hurts collaboration and communication, so don’t do it. Find a different team or a different product owner, move the product owner to the same time zone, or empower a local delegate for the remote product owner if the product owner is co-located with another team.

6. Invest in collaboration, but invest first in teams

Collaboration technology really helps teams be more effective—distributed source-code management, continuous integration, continuous delivery tools, wikis, video conferencing, and chat platforms such as Slack all help high-performance distributed teams be more effective. But they can’t make a low-performance team into a high-performance team. Lack of these tools can decrease the effectiveness of even a high-performance team, however.

7. Share the pain of time-zone separation

When a team has members at multiple sites, they demonstrate mutual respect by sharing the burden of working odd hours. Some teams make the mistake of having the team with the most members set the workday rules, but this sends the message to teams at other sites that their contributions are not valued as much. Making everyone share the burden is not only fairer, but it also creates a sense of empathy with what other team members have to endure.

8. Minimize wait times

Different time zones increase wait times. When a person at one site must wait for a team member at another to start the day to resolve a blocking issue, the rest of the day is lost. These delays add up. The daily stand-up can help uncover these problems, but the team will have to look not only at today’s work but potentially at tomorrow’s as well to know what issues might block them. It won’t be perfect, however, and some additional delay is inevitable.

Flattening roles and refining the product backlog to spot potential conflicts earlier can help. With dependencies reduced, and with teams having members who potentially can work on any product backlog item, blocking issues and slow hand-offs will be less frequent. But the issues can’t be eliminated.

No shortcuts to great teams

Distributed agile development is harder than co-located agile development. Time zone differences make collaboration more challenging. However, teams with members working at the same site but in different buildings will find collaboration more challenging as well. Being agile requires transparency, which doesn’t exist unless team members trust one another, and developing trust requires time spent working together.

Organizations make a big mistake when they think of teams as simply a group of individuals. A great team is far more than the sum of its members’ contributions. Being part of a great team is motivating—it challenges people to do their best, and it rewards them with a sense of shared accomplishment that individual accomplishment cannot. Great teams take time and investment to build, and they are worth preserving when they come together.

“When distributing work, for whatever reason, focus on forming great teams at the beginning. These teams can be formed with distributed individuals if they are motivated and supported, but it does take more practice on everyone’s part.”

Risk Management Banking Industry Trends

Fintechs and nonbanks now have a substantial influence in the banking industry. They are highly agile, innovative, and aim at exceeding the demands of modern customers in banking services and experiences. Established retail banks need to compete and often play catch-up. Still, they acknowledge the need to change, and change fast.

 

 

 

Agile culture for remote teams

Distributed teams or remote teams are more important now than ever, the new normal requires teams and individuals to work from home or in different locations to deliver products and services. How can we use it to thrive agile culture?

 

Agile development was originally conceived for clustered teams, or teams physically located together in the same room. In keeping with the idea that “the most efficient and effective method of communicating information to and within a development team is face-to-face conversation”, early agile teams were meant to work together in proximity.

 

But today most businesses have a few–or many–distributed teams. This isn’t just a trend; it makes good sense. Distributed teams can work on projects around the clock, and strong talent can be found in less competitive markets. (Not to mention, talent is easily retained by not requiring an undesired relocation.) But the benefits of distributed teams aren’t without some trade-offs. For many distributed teams, it’s difficult to adopt the agile practice of face-to-face interactions.

 

Other challenges that emerge for distributed software teams:

  • Coordinating across time zones
  • Building rapport when everyone is not in the same office
  • Collaborating among different development cultures
  • Scheduling meetings or informal conversations when both teams are online at the same time for only a few hours (or less)

These are real problems. But not impossible ones. Let’s walk through some strategies to help bridge the distance gap between local and remote teams, and ideas to help mitigate other potential issues as well.

 

How to structure cross-border teams

Good software architecture dictates modular design, so structure your teams the same way. Every team should be self-sufficient in developing a single piece of technology, which minimizes the amount of collaboration required with teams in other offices/locations and makes them generally autonomous. When a project does require teams in different locations to pitch in, they can focus on their integration points and APIs.

 

Code reviews also play an important role. Since people are online at different times, distributing knowledge of the code between teams makes support and maintenance much easier. If a production issue emerges when the team is not online, another team can easily step in to support and resolve the issue, thanks to the know-how they gained from cross-team or cross-location code reviews.

 

Building rapport and co-worker affinity

It’s important in any team, especially in agile projects to have solid rapport across the team. Personal connection builds trust, minimizes missed expectations, eases self-organization, and boosts morale. Within your office, take the time to get to know everyone on your team. And, as much as possible, do the same with the people you work within remote teams. Personal connections are important. The stronger they become, the greater the chance of seeing these colleagues as any other, rather than distant coworkers from unfamiliar places without good relationships.

 

TIP: At Towa, each new employee posts a “intro blog” on our internal Communication tool, Towa’s content collaboration platform. The blog introduces the new hire professionally as well as personally (hobbies, interests, family, etc.) which really helps bridge the gap between offices. The more we know each other as people, the stronger we are working together as teams.

 

Above all, nothing replaces meeting face to face. Team members in each office will benefit from regular face time, and that includes video conferencing as well as visits to remote offices.

Video conferencing tools like Zoom help bridge the gap between teams, especially for distributed agile teams. However, teams that rely on Zoom should be aware of certain limitations.

 

  • Video conferencing often allows for a very short window of communication, while working in the same office gives significant visibility into another’s world: challenges, successes, and opportunities.
  • Zoom has done well to address network hiccups. Still, there may be times when network issues occur between buildings that can make video and audio choppy or difficult to understand.
  • Most people still think of Zoom video conferencing as scheduled time. Create a culture of using video chat for spontaneous casual conversation. Also, use instant messaging tools like Slack, Whatsapp, or Teams for quick communication.

 

To help mitigate some video conferencing issues, encourage team members to have regular 1:1 video chat sessions. These can be less formal, and help facilitate knowledge sharing in a casual way. Teammates can use these moments to build rapport and work better together.

 

Remember, tone, voice, and posture play a significant part in communication. In-person time helps the team know their remote colleagues in higher fidelity, which, in turn, makes future video conferencing more effective.

 

 

Building a united culture

There are four simple ways teams can make working across offices easier and share a common culture:

  • Over communicate decisions across all teammates
  • Setting up the development environment for easy collaboration
  • Clearly define the definition of Done
  • Create guidelines for filing effective bug reports

 

Let’s talk more about it.

 

First, when moving from a co-located office to a distributed culture, communication becomes significantly harder. The first challenge is training the team to understand that, when decisions are made, they need to be communicated. This may sound obvious, but it’s easy to forget! Oftentimes important decisions are made in hallway conversations, informal local team meetings, or by individuals. Plus, it can be easy to dismiss small decisions as unimportant.

Communicate even minute details until both teams find a healthy groove.

When decisions are made, everyone in each office needs to understand the decision and ideally why it was made. Don’t use email. It’s too easy to lose important information. Use a content management system like a wiki where team members can easily browse for updates across the team (and get notified of updates via email or Slack group chat tool). You can also use Slack to create channels for individuals and teams to communicate and see updates. Delays caused by team members working on outdated information, hitting a roadblock, and then asking a question costs the team significantly more time than proactively sharing information.

Second, consistent development environments across the team make it easier to work together and track down issues. Spend time creating a simple “Getting Started” guide and overcome first-day friction by automating the setup as much as possible.

Third, when working between teams, clear standards around the definition of “complete” makes it easier to manage expectations and build agreement across teams. A firm definition of complete eliminates the ambiguity in the work. For instance, when shipping a release that involves multiple teams, make it clear what it means to be complete: code written, pull request created, code reviewed, tested, and merged into the appropriate branch.

And finally, when problems come up. Having clear guidelines for bug reports and troubleshooting how-tos makes it easier for anyone on the team to track down an issue. Code review and good automated tests also share knowledge about the code base and empower the affected team to make the fix and validate that the change doesn’t have any unexpected side effects. Thus, no team becomes a blocker.

 

Maximize the golden hours

Every photographer knows “the golden hours” – just before and after sunrise and sunset–is one of the most effective times to take great landscape photos. The golden hours for distributed software teams are when the local and remote teams are both in their respective posts at the same time. When all teams are online, this is a great time for stand-ups.

For teams that share work between time zones, stand-up is a great time to pass the baton so the team just coming online can pick up where the other team left off. And holding stand-up via video conference makes it easy to ask questions and get up to speed so everyone is off and running as soon as the meeting is done.

 

Sometimes teams are so far apart that meetings will cause some form of pain for one team. (Get up at 6 a.m. for stand-up with the other team? Umm… no thanks.) Rotate the meeting time so it’s a shared burden, rather than continually subjecting the foreign team to the odd hours–a sure-fire way to destroy morale. Closely monitor the entire team’s engagement at stand-up. If there is an undue tension, or the team is not getting a lot out of it, team members will begin to disengage and stop listening or sharing. And stand-up doesn’t absolutely have to be a daily meeting. Meet with the remote team a few times a week and use the other days for a local stand-up. Similarly, a stand-up doesn’t have to be a morning routine, either. Whatever time of day is most convenient for everyone involved is the best time of day.

 

Every team is remote

In a distributed organization, the reality is that every team is remote. All teams need to adapt and learn how to share work between locations, communicate effectively, and grow a consistent culture across geographies. The most effective teams don’t just make the remote team adapt to their own culture because they understand that every team can learn something from the others. They seek to find and share successful practices across all locations. They also embrace “we” rather than an “us vs. them” culture.

 

Because the new reality is that most will become distributed. Businesses are working at home, we all need to manage a work/life balance. Teams that embrace both structure and transparency scale more efficiently. When your project scales beyond your location, the culture will be set up to do the right thing.

 

 

 

Android or iOS for retail?

Develop apps for both platforms using cross-platform development tools, like React Native or Flutter 

Many retailers face a difficult decision: should their mobile retail shopping app support Android or iOS? They feel their limited resources cannot be stretched to build and support both platforms, so they often pick just one. Some retailers may have already committed to one platform, but are unsure if they made the right choice. Others have not yet developed on either platform and are exploring options for their first mobile shopping app. With our past experience working with large retailers, we believe that to maximize revenue from mobile, companies need a presence on both Android and iOS in order to avoid losing the opportunities that each platform provides.

This article will explore the options available for retailers with only one app or no native mobile app at all. We will show you why supporting both platforms is the only choice, and how using a cross-platform development tool like React Native or Flutter, provides the resources to support both platforms at 60% of the cost.

Should you have a mobile retail app at all?

Our research shows that any retailer interested in keeping up in the current, competitive omni-channel environment needs a mobile presence. The number of retailer mobile apps actively used by consumers has doubled in 2019, from an average of four apps per phone to eight. According to studies:

  • 72% of consumers use apps for browsing products
  • 60% for accessing discount coupons
  • 57% for making purchases
  • 86% are happy with the customer experience provided by retail mobile native apps.

What about relying on a mobile website instead of a native app? Let’s look at the data:

  • The average time a user spends on their mobile phone: 4 hours, 10 minutes
  • How long a user spends time browsing the mobile web: 32 minutes 
  • How long a user spends time using mobile apps: 3 hours 40 minutes 

Users no longer consider the mobile web as a viable alternative as 90% of mobile usage time is spent on apps. The mobile web does not seem as responsive to user inputs as a native app. For the user, a native app is a much more immersive experience. For the retailer, a native app offers a superior branding opportunity. Clearly, not having a mobile retail presence is a costly mistake for any retailer. Your customer expects the convenience of mobile shopping, and the responsive performance of a native app.

What each platform offers

Both platforms have plenty to offer. Internally, there may be discussions about whether marketers should target heavy spenders among iOS users, or whether they should cater to Android users, who continue to outnumber iOS users 6-1?

The decision will depend on many factors, such as your app category or your target audience. In some regions and demographics, Android dominates, while in other areas, iOS dominates. It is important to prioritize your targets and tactics based on the audience you want to engage.

A case for Android

According to IDC, Android phones have 85% of the global market share as of 2019, while Apple iOS has only 12%. The other 2% is split amongst all other mobile operating systems.

Statistics show that Android users spend slightly more time interacting in the app than iOS users do. In the case of retail shopping apps, Android users spend an average of 7.6 minutes vs. the 6.6 minutes iOS users spend.

So, given the high lead in market share, Android seems like the logical choice for your first app, right? Not so fast…

A case for iOS

It is generally accepted that iOS users are more profitable for retailers than Android users. Figures released by Google and compiled by Benedict Evans provide some hard data on just how big that gap is.

“Google Android users in total are spending around half as much on apps on more than twice the user base, and hence app ARPU (Average revenue per user) on Android is roughly a quarter of iOS.”

A study in 2014 shows that the median iPhone app user earns $85,000 per year, which is 40% more than the median Android phone user, with an annual income of $61,000. Even though Android has far more downloads than iOS, iPhone users spend twice as much on their phone than their Android counterparts. Another study of small retail purchases found that on average, Android users spent $11.54 per transaction. iPhone users, on the other hand, spent $32.94. Independent research indicates that the perception that iOS users are the “Big Spender” platform is more than a stereotype — It’s an observation supported by facts.

Impressive engagement rates suggest that iOS users offer better value for money than their Android counterparts. So obviously iOS development is more cost-effective than Android, right? Well, there is still more to consider…

Regional differences

The physical location of your target audience can make a large difference in the type of platform used. Note that iOS is favored in regions with large amounts of disposable income. Android sees high usage in lower-income areas of developed markets. In emerging markets, Android extends its lead even further.

The demographics and income profiles of the target region can also have a significant impact on the choice of the platform the retailer chooses to concentrate on. User age, gender, education, and other factors not covered here may also impact the platform choice. The decision process can become quite complex with no conclusive answer.

The cost of developing for both platforms

To maximize revenue from mobile, companies need a presence on both Android and iOS to avoid losing the opportunities that each platform provides. We have seen that Android downloads far exceed iOS downloads. We have also seen that the iOS purchase value exceeds that of Android. To further complicate matters, target regions, and other demographics matter. Even the type of purchase may favor one platform over the other, so the most ideal solution is to develop apps for both platforms.

Recall that the reason we were forced to choose between the two platforms in the first place was to control development and support costs. Two apps, one for each platform, will cost twice as much as developing one app, says conventional thinking. We are glad to report that this is no longer the case. Cross-platform development tools, like Facebook’s React Native or Google’s Flutter, have come to save us.

Buy one, get one free

Both React Native and Flutter are an excellent cross-platform development framework. The initial investment in app development using these frameworks will yield applications for both platforms with native app performance.

They offer strong support and backing of the biggest technology companies with a highly-attractive UI and excellent native performance. Once the developer is up-to-speed using the programming environment, development time is faster than any alternatives.

To learn more about React Native and its advantages over other cross-platform development tools like Iconic or Flutter, check out our blog post Why React Native should be your next mobile development framework.

If you do not have any app neither Android nor iOS

Developing in React Native or Flutter will yield an app for both platforms with the same resource cost as building for a single platform. We estimate that it is 60% cheaper to use React Native or Flutter as your development platform than using Swift and Kotlin. The code is only written once for both apps. Also, from our experience developing in native and cross-platform applications, we estimate developing with React Native or Flutter is about 15% more resource-efficient than the native languages.

If you already have an app on one platform

Already have one platform app developed? Using a cross-platform tool still makes sense. Using React Native or Flutter for developing your second app will incur the same development resources as developing using a native language, possibly slightly less. However, both applications will now use common code, saving future costs for maintenance and upgrades. Consistency of look and feel between the two apps will also have a positive effect on corporate branding.

Conclusion – You can afford to have mobile apps on both platforms

The days of choosing between Android or iOS have long past. It is now a requirement to support both platforms. Ignoring either platform has direct negative consequences on your revenue stream. Fortunately, the days of having to choose platforms based on development costs are behind us. Both React Native or Flutter development tools can build a cross-platform application for both Android and iOS with the same performance as development based on native application language for the same cost as a single platform. The cost savings extend to app maintenance as well. Contact Towa Software for further information or a quote for us to build out or update your mobile application portfolio.

 

 

Digital Transformation With Design Thinking

Digital transformation is reinventing business practices.

Now a days technological capabilities are continuously making upgrades and in order to stay ahead, businesses must be agile and innovative in creating new methods as they incorporate these digital technologies into their business practices. To stay competitive in any market, having a digital transformation strategy is fundamental.

The change from business to digital is not usually easy to start with, our digital environment changes quickly and variable. Staying up to date can be challenging and leave many in doubt in how to proceed. This is where design thinking comes in.

Design thinking is a five step, design methodology that does not present a solution at first but reviews both present and future details of a problem and searches for different solutions.

Digital transformation presents issues that are complicated and unspecified. So using design thinking to take in your organization’s digital transformation helps deal with these problems by interacting with consumers and come up with solutions.

Design thinking is made up of five steps: empathize, define, ideate, prototype and test.

 

Empathize

A fundamental element to digital transformation is making an excellent experience for the customer. In order to achieve this, it is important to relate with them, to comprehend their inspiration and needs.

The problems we are solving are not often our own, so we shouldn’t presume to know how the customer will act.

Instead take a look as they interact with you service. Take note of what they search in Google or on the site, study click-stream data to see how they are interacting with your site or app, review chat logs to see what they are asking customer service reps, or even make surveys with your customers to ask them questions of what they want the digital experience to be.

Also, very important is field trips to what how customers interact with current alternatives, how they solve their needs, from observation one can learn a lot.

To really understand where the customer’s friction points are along the digital journey will help you with the information you need to solve their issues.

 

Define

The define stage brings transparency to the problems you are trying to solve. What you have learned from the empathize stage will help you find where you need to focus your time and energy.

After exanimating this information, it’s time to create a problem statement. The problem statement should be focused on a specific issue and adjust toward the user. We are trying to help our customers because we want them to have a good experience.

This stage can be challenging because you will find many problems that need attention. However the point of this phase is not to overwhelm, but to help prioritize them into individual, and possible opportunities.

 

Ideate

Now that we have the definitive problem, It’s time to create some ideas in how to fix it. In this phase it is important to brainstorm by using a group of persons in order to develop a variety of creative ideas. You shouldn’t be overthinking or coming up with one solution. The Ideate phase is quick, creative and collaborative.

 

Prototype

In this step the team will experiment with diverse types of inexpensive and simple models to quickly target and validate your solution ideas. Prototypes should be tested in a small group.

Observe the way people interact with the prototype, then get feedback and use this information to change and improve the next model. This phase should be very quick with efficient improvements. Create a safe environment where it is Okay to fail and learn from those failures to continually progress.

At the end of this phase, you should know what works and what doesn’t and how the customers feel when interacting with your service.

 

Test

Constantly testing your prototypes is an opportunity to improve. Every interaction with a customer is an opportunity to learn and improve the customer service. In the testing phase, you recollect information from the previous stages in the design thinking process.

The quest for better customer experience is never ending. We should be constantly testing to come up with new ideas to improve and add value to our provided service.

I’ll explain more in depth in future post, what is Minimum Valuable Service, or MVS.  Lightly different from MVP or Minimum Viable Product

In the world we live today, using digital transformation for all business practices is a must, and design thinking methodology is a practical way to tackle the issues this transition presents.

Either you follow the stages above or discover your own design thinking processes; using these methods will help your company incorporate digital technologies and innovate.