Can an onshore/offshore model successfully deliver my Fiori implementation?

27 July 2016

Chris Choy

Chris Choy

Consultant

As the era of ‘Digital Transformation’ sweeps across all industries, the openness to embracing a hybrid delivery model, including both offshore and onshore, becomes an increasingly interesting option. Not only does it provide benefits in terms of costs but it can also enable quicker deployment times as we ‘follow the sun’. How can you ensure this delivery method is successful for your Fiori deployment? Taking inspiration from the Agile SCRUM framework, here’s how to make it work.

I’ve often experienced clients feeling nervous at the very mention of an offshore delivery offering. One of the main contributing factors to this reaction is the concern around the quality, return on investment (ROI) and meeting business deadlines. The fundamental goal is to produce an end product which meets the requirements and is delivered to a high standard on time and on budget.

The importance of the ‘Team’

Let’s start by looking at the team dynamics. When a team is dedicated to their project, setting their own goals and able to combine their cross functional skills, you are left with a strong unit capable of delivering the best product possible, whilst building trust.

This may sound obvious but in reality building and cultivating the dream team is a difficult task. Looking at the Agile SCRUM framework, teams are considered to be self-organising and cross functional. They should work as a unit, rather than individuals, who feed into a wider team.

Chris-Choy-can-and-offshore-onshore-delivery-Content-picture.jpgTake Leicester City FC as an example, despite the odds (5000:1) at the beginning of the Premiership Football season. They became the champions not because they were the most talented and highest paid footballers in the world (at the time) but because they performed as a team, working towards one goal. Their manager, Claudio Ranieri, has been described as a ‘Servant Leader’, listening and building his team capability around the characteristics of his players. An equivalent to a SCRUM master if you like, and for those who aren’t familiar with the SCRUM master role, they’re responsible for fuelling the team, the product owners and the organisation to help accomplish their goals.

Building collaborative teams

When collaborating with offshore teams, the ability to communicate on a daily basis can become a challenge. Fundamentally, the key to making this model work is to ensure that both onshore and offshore teams communicate as much as possible, be it via phone or video conferencing. A daily Stand-up (team meeting with the client) provides the opportunity to discuss and resolve any issues or impediments allowing the team to resolve them quickly, as they arise.

In the SCRUM framework, individuals within a team should be self-organising and collaborative. Occasionally, negative influences such as different work ethics and cultures, or the effects of different time zones, can leave offshore teams feeling inferior, with expectations that they’ll be told what to work on each day rather than being encouraged to be proactive. We need to ensure that teams are comfortable, empowered and open to building a strong synergy.  

Having a focal collaborative tool is a necessity when it comes to tracking progress, events and communication. Exclusive discussions over email is always a bad idea; teams will often become unsynchronised and divided in their knowledge. There are a range of collaboration tools available on the market such as Atlassian's Jira which can help maintain a single version of the truth providing a record of events, requirements (or user stories), test cases along with various other artefacts.

One of the biggest mistakes made is not including all teams, both onshore and offshore, early on in the project. Involving the whole team in Release Planning, Wire Framing, Technical Architecture and various other collaborative sessions provides an end-to-end vision for everyone.

How quality is controlled

With strong team dynamics in place, it’s vital to make sure the end product is of the highest standard. Firstly, let’s take a look at the technology, for example, SAP custom Fiori applications. When we start peeling away the magic you’ll find that Fiori applications are predominantly based around the user experience of the end user, achieved by adhering to the Fiori Design Guidelines.

Fiori apps are built using the SAPUI5 framework whose foundations are based on a combination of JavaScript, web-based mark-up languages (html and xml) and open source communication standards (OData or RESTful services). With this in mind, one can see that your resource pool, i.e. web developers to code in JavaScript, has suddenly grown exponentially opening up the potential offshore capability channels.

Ask any developer how they perceive their code to be and the usual answer will be "well my code is better than anyone else's". Even if this is the case, how can we really measure this, and ensure the standards are kept high throughout a project?

Let’s start by addressing the ‘nerves’ that I referred to earlier surrounding the quality of the project. Given the right recipe, offshore teams offer extremely competent developers. Of course, no matter where the delivery is coming from we always want to have safety nets in place to ensure our software is robust.

Training, mentoring and supporting offshore teams together with onshore teams is vital. In particular, when looking at Fiori and UI5, we want to make sure the best practices in design and technical build are followed using the most up to date version of the Software Development Kit (SDK) technology. Leveraging the experience and expertise of the in house UI5 developers will build trust and credibility in our offshore teams.

A comprehensive testing approach using Test Driven Development (TDD) techniques promotes confidence in code quality and reduces the number of software bugs. We can utilise a number of tools to ensure any small changes in one area of the solution doesn’t introduce a knock-on wave of bugs. Using Continuous Integration (CI) Servers which continually compile and scan for errors after each code commit is applied gives us the ability to isolate and monitor the robustness of our software prior to release.

The UX/UI designers who are continually involved within the development cycles (Sprint) provide consistency. During each Sprint, designers can ensure each release complies with the design blueprints whilst providing agreement to any amendments during the project lifecycle. Having a degree of role separation is an important factor. If you’d like to find out more about how to achieve a great user experience, take a look at Nathan Adams insight: Golden rules for achieving great user experience.

When executed well this blended delivery model delivers all the benefits to clients, both in terms of costs and quality, without the ‘traditional’ negatives associated with offshoring.

 

View comments

Comments

Blog post currently doesn't have any comments.

About the author

Chris Choy

Consultant

Whilst working at Apple, Chris developed a passion for streamlining business processes through the use of mobile technologies. This passion has remained with him throughout his career. Chris boasts a broad range of skillsets ranging from SAP Fiori and SAP Cloud Platform development to Agile SCRUM Practices. 

Chris is a Mobile, UX and Development (MUD) Practice Lead focusing on Methodologies & Tools. As a Certified SCRUM Master (CSM) and SCRUM Developer (CSD), he has worked across a multitude of projects, which have gone on to win awards such as the 2016 SAP Quality Awards within the UKI (Gold) and EMEA (Bronze) regions.

Having been working with Bluefin since 2014, Chris has predominantly worked across all industries enabling organisations to migrate their IT infrastructure onto the Cloud, transforming their IT landscapes to better serve their customers.

Outside of work Chris is a Martial Arts Practitioner who actively enjoys learning, teaching and sharing his knowledge and skills.