Quality Validation for Web Applications Developed Using Geographically Distributed Human Resources

Developing web applications using Geographically Distributed Team Members has seen an increased popularity during the last years mainly because the rise of Open Source technologies, fast penetration of the Internet in emerging economies, the continuous quest for reduced costs as well for the fast adoption of online platforms and services which successfully address project planning, coordination and other development tasks. This paper identifies general software process stages for both collocated and distributed development and analyses the impact the use of planning, management and testing online services has on the duration, cost and quality of each stage. Given that Quality Assurance is one of the most important concerns in Geographically Distributed Software Development (GDSD), the focus is on Software Quality Validation.


Introduction
Depending on both the complexity of the software product and the management model the Software Development Process may have multiple roles for its team members [1].A typical role hierarchy is described in Figure 1.The dashed lines illustrate informal interactions.For small software projects a team member may have multiple roles at the same time.For instance, it's rather usual for the Project Manager (PM) to perform testing operations as well.Also a developer could have the role of a Software Architect if the development hierarchy is not very complex.A Geographically Distributed Software Development (GDSD) process happens when the team members are not collocated and share different time-zones, languages, cultures and legislations.Mainly as a result of distance, communication, coordination and control are challenging in GDSD.Communication is reported to be one of the key processes in software devel-opment and is heavily linked to the effectiveness of coordination and control [2].From its current professional position, as the owner and manager of a software company since 2006, the author has frequently dealt with offshore development scenarios, mostly as a provider and occasionally as a customer.Based on the literature review and the author's extensive experience with GDSD scenarios, this study aims to answer the following three research questions: RQ1: Is there any set of software tools and online services that can address the communication, coordination and control inconveniences generated by the distributed approach in the GDSD?RQ2: How does the use of these software tools and online services influence the cost, duration and quality of each activity from the Software Development Process? RQ3: How is the Software Quality Validation achieved using the identified platforms for developing web applications?Fig. 1.A typical role hierarchy in a Software Development Process [1] 2 Web Applications that were analysed Between June 2014 and May 2015, the author has been involved, as part of his professional activity at the company referred in this study as "The Development Company" -TDC, in the process of planning, developing, releasing and maintenance for 9 web applications with various development team configurations -Table 1.  P1 is a product designed for residential associations in order to manage the dwelling expenses, utility bills, monthly consumptions and other reports.It has been built using the LAMP stack (Linux, Apache, MySQL, PHP) along with Zend Framework 2, Bootstrap and jQuery.This is an internal project of TDC which issued and validated the requirements, performed all the development operations from the beginning and is currently maintaining the application in production. P2 is a CSR project which broadcasts live video from the Zoo in Bucharest and features a custom built Content Management System (CMS).It has been built using LAMP stack along with CodeIgniter PHP framework.TDC has exclusively managed all the software development stages. P3 is a web meal planner for sportsmen.
It has been built using LAMP along Wordpress as CMS and custom PHP for the core business features.TDC has been involved in the development process after the product was on the market of functional updates and other improvements. P4 is a website for finding personal sports trainers near you.It has been built using LAMP along Wordpress as CMS and custom PHP for the core business features.TDC has been contracted after the project had been publicly available.However, the current state has been completely refactored by TDC. P5 is a group of 5 similar websites which have the same backend technologies (LAMP with Wordpress) but different editorial content and graphic layouts.They are built for high user trafficup to 20 million users / website / month.TDC has taken part of all the development stages. P6 is a pair of 2 websites with different targets (B2B and B2C) which offer the possibility for assessing job candidates by taking verbal, reasoning and diagrammatic tests.LAMP has been used along with Yii Framework, Bootstrap and jQuery.TDC has been contracted after the project had been publicly available.
The current state has been mostly refactored by TDC.  2).The dashed arrows suggest that the sequence of the operations can vary with the methodology.Coding is usually an individual activity so it shouldn't be different in GDSD from conventional in-house development.

Fig. 2. Typical Software Development activities
Knowledge Transfer (KT) is a crucial activity in GDSD, and it can span across the entire development process [3].Knowledge Transfer doesn't happen only between stakeholders and the development team but inside the team as well, for instance when a senior programmer mentors junior staff.
In the following subsections, software tools and online platforms that support the identified operations are showcased.Also using these services during the development process for the analysed projects is evaluated.

Requirements Management
Issuing requirements in a manner that can be handled to the hierarchy of development roles may vary from a brief document to an exhaustive set of specifications, use-case diagrams, test scenarios, performance and security restrictions.Conventional in-house development processes can benefit from direct communication among team members, internal meetings, documents and quick revisions.

Wireframes and Prototyping
The functional and layout requirements for web applications can be described using wireframes and live world-wide accessible prototypes.Both literature and crawling the web reveal numerous free and paid online services that transform static designs into clickable interactive prototypes which can be published and shared with the development team and stakeholders.
InVision [4] is an online prototyping service for websites and mobile apps that among others allows simultaneous work on the same project, enhances presentations with gestures, transitions and animation support, stores the project on its own cloud infrastructure or with other services such as Dropbox, supports versioning, comes with a collection of prototype templates.According to their website [4], IBM, Adobe, Twitter, HP, PayPal, Intel, Yahoo, Salesforce, Nike are among the companies that use the service.Basic features are free of charge, but the company features an enterprise plan as well for unlimited projects, team members and storage.Similar services (Justinmind, Axure, iRise, Microsoft Visio) are widely used in managing the requirements and distributing them across the team regardless of their location making them suitable for GDSD.Requirements errors are the largest contributor to change requests, and cost to mitigate these errors grows exponentially through the lifecycle [1][5].Therefore using specialized prototyping services can increase the efficiency of requirements management, reduces the duration of this activity and although it usually comes with a licensing or subscription cost, can reduce the overall cost of the development process.
Although the mentioned services do not need extensive experience nor a programming background, customers often consider using them a loss of time for small chunks of tasks, or content-driven web applications.
From the analysed projects, P3 -P9 had requirements brief documents sent via email and in best case scenarios graphic layouts with minimal explanations.It was a common practice to transmit the project specifications and goals through informal audio / video conference calls.However, due to the timezone difference, for P9, this rarely happened, emails being preferred.This led occasionally to poor understandings of the functional needs, causing double-work and delays in releasing the updates for the websites.P2 was the only analysed project which used a dedicated prototyping service (Justinmind.com).This generated fewer informal discussions and a better productivity in terms of development.
For P1, given that it was an internal project, the requirements were communicated to the developers in an informal or low structured manner by having face to face meetings, setting the milestones on the flipchart and breaking down the tasks on a pin board.Requirements changes during the development process, while TDC got better informed about the market needs or about technical challenges.Managing the requirements and change requests was done in agile manner.

Task Assignment
Assigning tasks to a geographically distributed development team, setting dependencies between tasks, monitoring progress and other development metrics is more difficult in a GDSD framework compared to an in-house development scenario [6].
In order to address this issue, a great number of integrated project management SaaS platforms has evolved.Basecamp, JIRA, Pivotal Tracker, Asana, Teamwork, Producteev are just a few products which the author has successfully worked with so far.Features like team management, collaborative reporting, issue tracking, time tracking, document management, software development metrics and reports, budget management, invoicing are fairly common.For less complex projects, usually basic features, limited number of projects, limited team members or trial use come free of charge.Monthly or annual subscriptions can be contracted with costs / month ranging from $15 to $750, for projects that have hundreds of team members.For an organization that large, the costs are insignificant while the benefits from a real-time world-wide ac-cessible project management framework are considerable.
For P1 and P2, tasks have generally been assigned without the use of a dedicated online project management service.Estimating the delivery of various milestones and product releases has proven challenging.Also, the ability to assess a programmer's productivity and development speed had to suffer by not using them.Projects P3 -P9, have all benefited by such services.This way, real-time status of certain tasks or even the overall progress on the web applications was easily to access by the stakeholders.Also, inherent communication issues that could have appeared in direct speaking due to poor knowledge of the customer's language were minimised.For instance, in case of P8, the customer had a strong Irish accent which made phone calls hard to manage by TDC's team members.However, receiving the tasks as text through the ticketing system has proven effective.Except from P9 where the development hierarchy was more complex and the use of JIRA was associated to source code repository updates, all the other projects which used such platforms found that the free plans were sufficient for the development needs.

Management of the Source Code
Assuring source code coherency when multiple programmers contribute to the same product has been an issue for a while.The Source Code Control System (SCCS), created in 1970 is the first Version Control System (VCS) to be mentioned [7].Since then, code complexity has dramatically increased.In a GDSD environment, for web applications that evolve from one day to another, there is the need to commit source code changes frequently, often simultaneously between different team members, without having the risk of unintentionally overwriting someone else's work.Managing the code changes manually is very inefficient and prone to errors, practically impossible even for medium complexity projects.Since SVN appeared in 2001 [7], developers can work on the same code file at the same time and the system can deal with conflicts and automatically merge the contribution into a single files.
Unlike SVN which has a centralized repository, Git is one of the distributed VCS that requires each contributor to have its own repository.This means, the developers can work even if they don't have a permanent Internet connection.Along with the use of acknowledged web frameworks (ASP.NET MVC, Zend for PHP, Spring for Java, or other similar), adoption of a mature VCS can address security concerns by restricting access for a certain group of developers to core functionality.For instance, access can be restricted for a Front End Developer to the application's controllers, while granting permissions to test his own work [9].The most popular modern VCS such as SVN, Git, Mercurial, Bazaar are free of charge.
Except for P2 all the other projects had a Version Control System in place.It would have been virtually impossible for programmers from different countries to simultaneously contribute to a project.The task breakdown on P2 was made into two distinct components: front-end and back-end tasks, thus making collaboration between the two developers from the same office manageable.

Quality Assurance for Web Applications
Due to their nature, web applications are accessible from virtually any place in the world as long as there is an Internet connection and a browser.However, testing web applications in order to make sure they meet the planned requirements is a vast field which can be divided in several domains.

Functional, UI and Usability Testing
In the GDSD configuration, Functional Testing and User Interface and Usability Testing can be addressed as a crowdsourcing operation in order to validate the product on as most computing devices, operating systems, browsers and human behaviours as possible.
In August 2014, there were 18.769 reported distinct Android powered devices [10].When discussing about mobile-friendly websites, the key to the success is having the proper User Interface (UI), and Android comes with two particular challenges to developers in this regard.Manufacturers have a tendency to produce their own variations on the system's UI (for instance Samsung's Touchwhizz and the HTC Sense) -which usually changes the layout of various interface components.Secondly, the operating system has little restrictions in regard to different screen sizes.
Designing and coding layouts that behave well across all these screens is challenging.
Although there are many iPod-touch, iPhones and iPads there are just 4 distinct physical screen sizesmost likely due to Apple's tendency to double pixel density while quadrupling resolution (e.g.iPad 2 to iPad 3) maintaining the same physical screen size.
Although modern web browsers such as Google Chrome feature advanced debugging consoles which emulate a wide variety of resolutions, even simulating different network bandwidths, rendering the layout is not as accurate as running the web application from a certain hand-held device.This is why, crowdsourcing these types of testing should be a more feasible option towards a correctly designed mobile friendly application.Compared to in-house development, the quality and speed of this activity will be increased.uTest.com is a service that supports crowdsource testing with more than 150.000 testers and Quality Assurance specialists [11].Automated emulators for various Operating Systems such as Browser Stack, are also other options to consider.Contracting services as this one, you run one or more Virtual Machines with the desired OS and you can automate screenshots in order to identify interface bugs.
Google has recently launched a mobile friendliness verification testing [12].Based on this validation, results for searches performed from mobile devices are affected.

Performance Testing
While validation of functional and usability requirements is crucial for each web application, load and performance issues that might occur when there is a high volume of user traffic is hit can affect the business and the reputation of the stakeholders.Studies show that users leave a site if it hasn't loaded in 4 seconds.More than that, Google has announced they are using page speed in their ranking algorithm [13].
The development process of P5 can showcase this.Despite the simplicity of the functional specifications -it's a CMS with news contentit was required to withstand up to 20 million visitors per month.Due to budget constraints, the server was initially a single Virtual Private Server (VPS), therefore quick scaling of resources wasn't available.The project has been migrated to a cloud based infrastructure Amazon Web Services (AWS).
However, AWS's pricing policy takes into consideration load factors and computational costs such as the number of HTTP requests, bandwidth traffic or storage.In order to achieve optimal costs versus performance, automated load and performance testing has been performed with online platforms such as http://gtmetrix.com/,http://tools.pingdom.com/fpt/or similar services.GTmetrix features a pair of performance scores based on Google Page Speed's and Yahoo!Slow's algorithms as well as an exhaustive report with technical recommendations to improve the overall performance -Figure 3. The service is free of charge.Improving loading speed, reducing the number of HTTP requests and the data that is retrieved from the web server has a great impact on the user experience while browsing from a handheld device which uses cellular data.
In a GDSD scenario, accessing an automated performance testing online platform which also tracks the improvements -as shown in Figure 4 -can be a valuable resource given the fact that communication between the development team and stakeholders needs to be as clear as possible.

Security Testing
A reasonable security level for a web application isn't only meant for banking applications or successful ecommerce businesses.An attacker might just be after a way to send emails from a different server or to collect valid email addresses.If the case, this might affect the reputation and overall business.
The cost of maintaining a decent level of security is in most cases much lower than the impact a single attack might have Correlated to a GDSD scenario, security audits can be performed remotely on demand, using SaaS dedicated platforms such as https://sitecheck.sucuri.net/,https://safeweb.norton.comor https://www.ssllabs.com/ssltest/.Regular operations run through these services include: scanning web servers and applications on the Internet or in a private network, detect vulnerabilities and review ways to fix them, find malware uploaded by malicious users, verify that SSL is properly configured and working.Usually no access has to be granted for the service to run the tests.Costs for services like these vary from free of charge for basic test scenarios to more than a couple of thousands of dollars for more in depth tests as well as manually assessments and reporting.

Source Code Conformity Testing
Efficient automated testing can be performed for source code compliance with http://validator.w3.org/ for HTML and CSS.Suggestions for correcting the source code are provided on the fly and the service is free of charge.

Knowledge Transfer
Notes on Knowledge Transfer (KT) for GDSD have been posted in section 3.1 in relation with Requirements Management.However, in conventional in-house development processes, KT is also an information exchange between various team members mostly through direct informal communication.In the GDSD environment, due to timezone, language and cultural barriers, informal communication is at a minimum level so KT is hard to achieve in a properly manner.

Non-Development Related Operations
Setting up a GDSD framework doesn't exclusively consist of dealing with technical and procedural challenges.The relation between the employee (provider) and the employer (the customer) needs to be supported as well.

Communication
Informal communication is usually done through instant messaging systems, conference calls and video calls.Platforms such as Skype, Apple iChat and Google+ Hangout are easy to use but require an increased bandwidth for multiple attendants [14].This can either have a negative impact on the quality of the transmissions or an increase of costs for updating the Internet connection.In projects where developers from TDC have been working with other distributed programmers and managers, the lack of informal communication has occasionally affected the coordination and therefore introduced delays in various releases.This kind of delays haven't been noticed for P1 and P2.

Effort Evaluation and Billing
Unlike in-house development, in GDSD configuration, concerns may arise regarding the amount of time spent by each team member in the project's benefit.Software products have been developed to monitor the activity of remote team members, create various reports and even automatically generate invoices.Elance's Work View, is a desktop software client that counts the time spent on a project and sends random screenshots to the client.Each week, automated billing for the tracked hour is performed [15].RescueTime is different time management products focused on increasing individual productivity by providing more detailed reports, blocking distracting websites.It records time based on keystrokes and mouse movements [16].Most of the analysed projects (P3, P4, P5, P6, P7 and P9) have been using Elance's Work View as a billing and invoicing method.The main advantages for a provider are a constant cashflowpayments are made automatically on a weekly basisand the fact that the risk of budgeting projects with hidden requirements is diminished.

Payments
Convenient international payments are not a novelty anymore.Various platforms have gained popularity and became trustful for many business as well for peer to peer payments.PayPal is reported as the most used in terms of users and transaction volumes.It is available in 203 countries and 26 currencies, it features invoicing and charges from 0.2% to 3.9% depending on the account type and payment [17].For premier accounts, withdrawals to credit card can be processed in less than 24 hours.Other less popular platforms such as Skrill or Payoneer feature lower fees.Payoneer supports a fast withdrawal which transfers the money on an international self-issued credit card within 2 hours since initiated [18].

Conclusions
A series of activities have been identified as requiring a different approach in a GDSD configuration against in-house software de-velopment.Online services and software tools that respond to specific needs of these activities have been evaluated.RQ1: The set of software products and online platforms which have been evaluated can address the inconveniences generated by the GDSD approach and in some cases can even perform better than conventional in-house development activities.Collocated develop-ment can also benefit from the use of these platforms mainly because of a more rigurous management model as well of cost efficiency.RQ2: The effects on activity cost, quality and duration due to the use of the proposed solutions is described in Table 2 and Table 3. + means an increase, -a decrease, 0 no significant impact, n/a not applicable.

Table 2 .
GDSD Software Development Activities and the impact of using Online Services and other tools compared to conventional collocated software development

Table 3 .
Non-Development activities in GDSD and the impact of using Online Services and other tools compared to conventional collocated software development In this paper, in regard to the Quality Assurance Validation, a series of online services that support the main fields of testing a web application have been showcased.Due to the recent changes in mobile traffic, a greater focus should be applied to usability, load performance and security.Although they are accessible through an Internet connection, this doesn't mean they are exclusively intended for the use in a Geographically Distributed Software Development context but they facilitate such a process as well by being highly available, cost effective and automated in most cases.AcknowledgmentThis paper was co-financed from the European Social Fund, through the Sectorial Operational Programme Human Resources Development 2007-2013, project number POS-DRU/159/1.5/S/138907 "Excellence in scientific interdisciplinary research, doctoral and postdoctoral, in the economic, social and medical fields -EXCELIS", coordinator The Bucharest University of Economic Studies.Preliminary results of the current study have been presented at The 14th International Conference on Informatics in Economy Education, Research & Business Technologies, 30 April -03 May, 2015, Bucharest of Economic Studies under the following title: "Software Tools and Online Services that Enable Geographically Distributed Software Development of Web Applications"