News

Project approach phase 5: Building the webshop

Now that the technical and functional analysis is complete, let's move on to phase 5: building your webshop. In this blog we will explain step by step how PHPro works during the construction of your webshop.

Development

Best of both: Mix of waterval and SCRUM

In this phase, we propose to work according to a mix between the classic waterfall method and Agile/SCRUM during development. Thus, every two weeks we work towards a new release: the so-called potentially shippable product, also called "Minimum Viable Product" (MVP).
This means that every two weeks we can deliver functionalities that are potentially ready to go to production. This way of working makes it possible to respond faster to change in Agile environments.

In the meantime, we deliver demos of the application so that you always have a picture of the project's progress. In this way, the testing phase is not pushed to the end of the project and thus we avoid unnecessary time pressure on the customer. After all, during that period we perform several tasks such as:

  • Content input
  • Content migration
  • Testing
  • Adjustment
  • ...

These biweekly releases, called "Sprints," are always found in the detailed project schedule and look schematically as follows:

sprint backlog

All functionalities, described in the analysis document are the basis for the product backlog. We write that down in user stories. At each sprint, we perform a selection from the backlog. At each start of a new sprint we make such a selection. At the end of the sprint, we deliver the new functionality so that we are always working towards the MVP/new release.

Development process

We start with the global analysis: this is the basis for developing the platform. Different parts of the process can run concurrently to increase efficiency. This way there is enough space to repeat ideas and partial results.

Graphically, we present the subsequent steps within the development trajectory as follows:

development traject

We start from the materials obtained in the previous phase:

  • Wireframes
  • Design- en styleguide
  • Input from the analysis document
  • The chosen theme

In the development phase, each developer works with a completely local (on their own workstation) set-up. This allows developers to efficiently work independently of each other on the same project. PHPro works with portable development environments so that the developer himself does not have to spend time to set up or adjust another one. That way, we easily involve people in the project. For that, we use Docker.

PHPro developed its own system on top of Vagrant which, in collaboration with AWS, ensures a very fast startup and familiarization of developers in the team. A central development server is set up and accessible only by PHPro itself. It serves to use and test the permanent version delivered by different developers.

Our developers perform thorough testing of each of the developed components on their own environment and on the development server. The version on the test environment is available to the project manager and the testers. The client has an acceptance server for functional testing and acceptance testing.

Version control

Version control, it is an integral part of our operation: The initial development setup is also the source for the version control system. PHPro uses the popular bitbucket system for this purpose.

First, the changes that developers do on their local system are checked into the version control system (e.g. upgrade to new version, add/upgrade module, modifications code, all elements concerning graphic layout). From there, other developers can then import these changes and continue working on a permanent/consolidated version.

GrumPHP checks the code for coding standards before developers add their code to the version control system. Does the code not meet the standards? Must the developer make corrections before adding his/her code.

The set-up of the test and acceptance version (later also production version) is also done from the code as stored in the version control system. Bitbucket also allows tagging: designating a particular version as a snapshot, with a structured major. minor. version number or a non-technical name . That way, PHPro has a clear history of intermediate versions of the software.

Anonimisation script

During development and testing, it is useful and necessary to regularly take a 'copy' of production data to develop and test on it. We provide automated 'database dump' scripts that take a copy of the production data and anonymize the GDPR sensitive information. No personal information now ends up on the test, acceptance and local development environments.

Testing, testing and more testing!

In a package, we combine the developed code at each stage that are technically and functionally tested. These are then deployed to the test environment to evaluate with the web analyst and available client representatives. Technical testing includes Unit and integration testing. Only working code is checked into Bitbucket.

For the client, PHPro does not currently provide automated testing. Do you have a more extensive project? Then we use automated Selenium tests. For various web and mobile browsers, we use BrowserStack Automate in combination with Jenkins. Automated tests we run on the project's DEV server. The analyst, project manager and/or a dedicated test profile test the development. After deployment, we evaluate each version together with the customer.

During and after the testing phase, the customer gets access to the project management and bug tracking system JIRA. After going live, that access expires. If the customer wishes to use this tool, we charge an annual fee of €150.00 ex. VAT. This cost is waived when the customer uses the support contract. In the support contract, licenses of JIRA are included in the cost price.

Among other things, JIRA registers bugs/problems/questions. Customers can easily consult the status of an issue and communicate via JIRA.

Projectmanagement

Follow-up and transparency

JIRA is also used for development tracking. More information: https://www.atlassian.com/software/jira​.
 
The customer gets an account of JIRA, so PHPro is transparent with respect to the progress of development. At any time, the customer can monitor the current state of each functionality (issue):

  • Workflow
  • Description
  • Release

Both the customer and PHPro can add comments to the issues. That means: away with multiple e-mail traffic. The user now always consults the latest communication.

Example of a JIRA workflow:

JIRA workflow

Release management

Within PHPro, we work with professional release management within each project. A "Version" in JIRA corresponds to a deploy. This means that for every deploy we find a "Version" in Jira. It is the job of the project manager and technical lead to monitor this.
 
Every deploy of the master code to a production environment should also be available in JIRA as a "version".
 
Example of versions in JIRA:

Versions JIRA

For numbering, we use Semantic versioning. This gives a clear picture of when something went to production and helps identify problems noticed on production.

Semantic versioning

Documentation and follow up

To follow up on documentation, clients will have access to the project page within Confluence (see: https://www.atlassian.com/software/confluence).

With this tool, you can access the latest version of documents and information at any time. Ideal for sharing progress and knowledge. By default the following structure with following (sub) categories is set up.

Documentatie in confluence

Web analytics

During the development phase, we also tune your web analytics so that your data is always correct and complete. What can you expect?
 
  • An organized Google Tag Manager account: We set up your Google Tag Manager account and create an orderly structure in your tags and containers. This always gives you a clear overview of your measured data.
  • A correct and ready-to-use Analytics account: We tune up your Google Analytics account (or other web data tools) so that your data comes through properly and is accurate. First, we set up the right filters, channel groupings and goals, and then we see if your sales and revenue numbers are reporting correctly.
  • (Optionally) a ready Google Looker Studio performance dashboard: If desired, PHPro can also create flexible performance reports in Google Looker Studio. These reports are easily customizable and centralize data from different sources in 1 dashboard. Ideal when you regularly need comprehensive performance reports.
By setting up analytics already during development, you don't have to make changes afterwards to get the right data.

Completion

Once all the functionalities required for going live are built and tested, the webshop can be completed. Finally you can reap the rewards of all the hard work! But it is not completely finished yet. In the first weeks after going live, the PHPro team is also ready to address any bugs or other less important functionalities.
 
After completion, you can get to work with your webshop and start your new online adventure!

Would you also like to build a web shop in cooperation with a professional and experienced team?