JCommerce IT software services have reached Norway

At the end of 2015 JCommerce established yet another long-term partnership in Northern Europe. For the first time, we will have an opportunity to deliver our consulting and IT software services in Norway.

We have started to operate in the Java domain (based on the Scrum approach) with a client who has been responsible for building software services and solutions for nearly 15 years now, both in Norway and internationally. Our partner’s main focus is to create an improved flow of information between broadcasting TV and video production companies. More importantly, our partner crew has experience working with the largest broadcasters in Norway.

Both IT teams (from the Norwegian and Polish sides) met in mid-November 2015 at the JCommerce HQ in Katowice to discuss the essence of the project. The main goal of the implementation phase was to provide proper architecture and domain design, and well-defined goals before the start of the real development phase.
In December, a team of JCommerce representatives met our Norwegian client at their HQ (close to the capital of Norway – Oslo). We evaluated the first month of work as well as planed deployment and upcoming deliveries.

Everything looks good! We are really pleased with how our cooperation has gone so far and are highly optimistic about the success and quality of our partnership going forward.

Agile Process & Team Setup

How to build an expert nearshore mobile app development team, part 2

Agile development

The Agile process of development is the preferred way of developing mobile apps. With Agile, we use the so-called sprint – it’s a set period of time during which specific work has to be completed and made ready for review. The length of the sprint is fixed and chosen at the start of the project – for example 2 weeks. Then, at the beginning of each sprint, we set goals – what we want to implement and function – and, after the sprint, that part is ready. After the sprint we can evaluate the current state of our product, and can redefine priorities or even the design of the application. Each sprint is designed to have relatively small, but fully working functionality added or modified. Thus we make use of Agile methodology to maintain the flexibility to make changes after each sprint. There is freedom for the client to make changes during the development to react to the market, user opinions or changing business priorities. Changes can be made at the beginning of the sprint (planning phase), but not during the sprint itself (development phase).

agile-software-development-jcommerce

The above description is true for all software development, but is particularly important in the mobile world. Current distribution platforms (App Store, Google Play, and Windows Marketplace) make it very easy to publish an early version of the product, and even easier to update it often without any effort from the end user. This, along with the agile development flow, allows clients to publish the app early, see user reviews and reactions, and iterate functionality with each sprint, publish new versions and get feedback from the real market. Feedback from real usage makes it possible to set priorities that benefit users the most, and to alter the original vision so as to make the most attractive product. Agile, along with the frequent publish model, makes it faster to iterate toward a polished, functional product.

Product owner in the Agile development model

The product owner represents requirements in terms of software development. The client should select a single person for this role, who will be the main contact responsible for providing a vision of the product from the client’s side, for cooperating with the team which will transform this vision into the product design process, and then for implementing this design. The product owner is not responsible for the technical details of implementation (unless the client so desires), but is responsible for understanding target audiences and desired functionalities, answering questions about projects, and the ongoing process of selecting the priorities for the next sprint. The product owner doesn’t need to have programming experience, but it’s good if he has some understanding of the market, knowledge of similar solutions and possibilities, as well as a basic level of technical knowledge. The product owner should have enough time to be available for communication with the development team throughout the process.

agile-product-owner-scrum-jcommerce

Scrum development team

The Scrum team is responsible for executing the product owner’s vision and requirements. This team creates the technical architecture for the application, implements it, and tests it. The Scrum team is in constant communication with the product owner during development. At the beginning of the sprint, the product owner is responsible for selecting the most important tasks to implement, and the team is responsible for estimating how many of those tasks they are able to do within the confines of this sprint. They consult on the details of requirements with the team owner throughout the sprint process, and the results of their work is tested, then submitted for review at the end of each sprint.

Depending on the cooperation model, the entire team (except the product owner) can be from the service provider, or composed from among both the client’s and service provider’s specialists.

Team setup

Setting up the team can be done after defining the requirements and scope of the project, as well as defining the expected deadlines for project development. The typical composition of such a team is as follows:

              -> Native development

Team leader/Scrum master – responsible for managing the team, tasks, and overseeing development
iOS/Android/Windows Phone developer(s) – at least one developer for each platform, responsible for the implementation of mobile apps
Server developer(s) – responsible for integrating existing data sources or creating new ones
Testers – responsible for testing the app, finding and reporting quality issues

             -> Cross-platform development

Team leader/Scrum master – responsible for managing the team, tasks, and overseeing development
Front-End HTML/JS developer(s) – responsible for the implementation of the mobile app for all platforms
Server developer(s) – responsible for integrating existing data sources or creating new ones
Testers – responsible for testing the app, finding and reporting quality issues

The exact size of the team depends on the scope and complexity of the application, as well as deadlines, and should be determined after consultation with the service provider.

Setting the requirements and the final team are important when starting a project. After that, the next step is to set the testing strategy, which we will dive into in the next article.