It’s high time for users to finally migrate, you cannot defer Magento 2 upgrade until the last minute. As it’s not a one-click-upgrade, Magento 1 users need to understand why this migration is crucial for their business.
Magento 2 is offering much more intuitive functionalities and benefits in comparison to Magento 1. But before the advantages, let’s understand where we’re coming from when we say ‘migrate now’.
Why sticking with Magento 1.x is not a good idea?
After June 2020 there will be no official support for Magento merchants or developers. This means there’ll be no more technical assistance, no more security patches, and ultimately, no more Magento 1.x as a viable platform.
Any technical issues with your website, as mentioned below, could have a huge impact on your revenue and brand image.
Security vulnerabilities
After the cut-off date, any sites that missed out on a migration would be vulnerable to security breaches and hacks. E-commerce sites that are still on unsupported versions of Magento will be exposed to hackers equipped with backdoor exploits.
This means you will be putting your customers’ data at risk. And without protection of their payment details and security updates, your checkout may no longer be secure.
Quality fixes
Magento will no longer be rolling out quality fixes for Magento Open Source (Community) or certain versions of Magento Commerce (Enterprise). Users with Magento 1.x will not get any further improvements to existing core features, and will find it difficult to make their site more user-friendly with broken features.
And with no more feature upgrades to Magento 1 means low customer retention, as it will be difficult for you to keep up with the services offered by your competitors.
3rd party extension
Magento’s security patches and quality fixes only cover the core platform and not any extensions, bespoke modifications or enhancements.
In this case, you’ll need maintenance support to improve extensions and prevent them from getting defunct as they won’t be compatible with any new patches released to the core platform.
Magento 2 has several advantages over its predecessor
You must think about migration if you are looking towards a smooth customer shopping experience with your existing ecommerce website. Here are our 5 reasons to migrate to Magento 2:
1. Improved Performance
Load speeds on the first version were slow. The possibilities of working with dynamic databases like PostgreSQL and MySQL has allowed better processing of caching, re-indexing and queries.
Magento 2 sites will run on average 20% faster than the sites based on the previous version. Pages will load in half the time as it has full-page caching. Whereas with an efficient indexing system, transactions become faster and easier to process.
Thus, faster site speed will encourage more sales and increase website search engine optimization.
2. Mobile Friendly
As we know that online shoppers perform more than 50% of online transactions on mobile devices, a responsive web shop is a must.
Magento 2 makes mobile commerce a priority as Magento 1 sites did not deliver optimum performance on mobile devices. Customers can take their mobile performance even further with the release of PWA (Progressive Web Application) Studio in Magento 2.3.
3. Smooth and Simple Checkout Process
Even though the Magento 1 checkout was a single page process, it was cumbersome.
Now Magento 2 offers a simple 2 step checkout process and the Instant Purchase feature. Existing customers can use their email address to check-out faster using their saved information like using previously-stored payment and shipping information to skip checkout steps altogether, taking them to a confirmation purchase page.
This increases conversions and reduces abandoned cart rates.
4. Better Admin Interface
This is a non-technical user’s dream! The admin user interface has been touted as the most problematic elements of Magento 1 for its confusing layouts and being intimidating to first timers. That problem was solved in Magento 2.
Magento 2 offers a user-friendly and clean experience where even the most non-technical users can add new product listings and find tools with ease. The admin dashboard enables you to find crucial business information about your e-store in one single place, leaving no room for confusing navigation.
The new version is easy to navigate and use which means that your customer will get to pages or products they desire faster.
5. Improved Security
A lot of attention has gone into the security of the online platform in the wake of increased data breaches.
Magento 2 also offers robust desktop protection due to major changes in the source folder structure. Ther number of root folders has been reduced to five by Magento 2 which in the previous version of the platform was containing nine root folders.
Moreover, the mask folder has also been deleted from the root folder. This new structure means that the code cannot be stolen or stolen directly from the root, making Magento 2 more secure than Magento 1.
The Next Big Step Towards Migration
Customers reported they benefited from Magento Commerce 2’s comprehensive security standards, native B2B functionality, multi-site capabilities, and easy-to-use content development functionality.
Their reasoning for choosing Magento was based on how it can be customized to meet their specific needs. You can certainly find your why in the above mentioned reasons to not delay the upgrade any further.
We recommend you to take a systematic migration approach or get a team of Magento experts onboard to help you with the migration with zero down time.
About Galaxy Weblinks
We have a team of Magento experts that will assess your eCommerce website and help you stay up-to-date when it comes to security, performance, and stability. Contact us for a free consultation!
The recently released WordPress 5.4 ‘Adderley’ update has got a lot to look forward to! Since this highly popular CMS ditched its classic editor for blocks, the updates that followed were more or less about the editor. This incremental update brings some changes in Gutenberg along with accessibility improvements, site health check mechanisms, and numerous other enhancements.
Before we dive deeper into the update’s details, here is a quick list of reasons for anyone who is deferring any updates for a later date.
Why should you upgrade to 5.4?
While incremental updates might not seem that urgent, here are some compelling reasons that will urge you to think otherwise:
A continuous upgrade helps address security loopholes and ensure that your website is protected against possible security breaches. Like other updates, WordPress updates are also focussed on continuous performance improvements of your website. Updates help your website become more user friendly and accessible, thereby creating a better user experience.
Let’s take a closer look at the new features and enhancements in this update.
Changes in the Gutenberg Editor
Social Icon buttons
You can now add more than 30+ social platform icons to all your posts and website pages. It includes Reddit, Medium, Facebook, Linkedin, and more. This will eventually help you increase engagement across all your social media platforms.
Gutenberg’s got a performance upgrade as well
There is a 14% reduction in the loading time of the editor as compared to 5.3 update.
More color options
There is now a gradient background option available for columns, cover, and buttons. This new color customization option goes a long way in making your website’s layout more engaging and visually appealing.
Additionally, you are no longer restricted to a single color of the text in paragraphs. You can add inline text color within your paragraphs.
Buttons block
You can now get multiple blocks on a single page. This means multiple CTA in a single block, thus letting your user decide which option to go for. Plus, you can play with button style, text font, and the background colors.
Full screen mode
Gutenberg editor now opens in full screen mode by default. You can switch the mode in the top right menu and go in, ‘editor settings’, and uncheck the ‘fullscreen mode’ option.
The community has a mixed reaction towards this addition, especially for beginners. A notable issue is that when the full screen mode is activated, the top bar and admin panels are removed. This makes the navigation a task for the new users.
TikTok embed block
This update now has embed blocks for TikTok videos, similar to adding Youtube videos.
Featured image
You now have the drag and drop option to add featured images to your blog instead of manually selecting the image. The size and alignments can also be adjusted in the gallery block.
Other notable changes
New welcome model
The new welcome model provides a tour of the Gutenberg editor. Tips are no longer present and in its place, there is a slideshow with necessary explanations of blocks and official documentation reference. And the good thing is that this welcome guide can be seen as and when needed via the top right corner menu.
Accessibility improvement
On the accessibility front, keyboard navigation in media modal and privacy policy’s readability is improved. You also have the option to change the image title in the image block itself.
Health checks enhancements
There is a new widget on your site’s admin dashboard. This displays your website’s overall health and gives you a warning on possible issues. In case you want detailed reports, there is a CTA button that will provide the required information and possible remedy for the issues.
Incremental updates are just as important as version upgrades because the exploits don’t stop unless you do the essential regular maintenance.
About Galaxy Weblinks
We have a team of WordPress experts that will assess your WordPress website and help you be at the top of your game when it comes to security, performance, and stability. Contact us for a free
Today, websites are more than just a ‘set-it-and-forget-it’ proposition. They are marketing machines that help you get new customers and leads. You might be planning to or already own one.
Regardless of what size and functions they inherit, this is true for all sites…for WordPress ones too. And complexity being the most ingrained quirk of websites nowadays, maintaining the website on a regular basis becomes a necessity.
As this will help you avoid being reactive, eschewing the risk of ending up with a chaotic, insecure and slow website that is hard to use for both admins and visitors.
The Blame Game
In a typical manufacturing facility, there are two primary groups: production (or operations) and maintenance. Likewise, a website entails two major phases – the development and maintenance (after going live).
If you have poorly trained operators then this will lead to reactive maintenance and destroy maintenance’s ability to efficiently maintain the factory. The opposite is also true.
Tension and blame games become a common scenario due to conflicts.
In the same way, installing the wrong versions of themes and plugins in the development phase can lead to a site break after going live.
Conversely, if you are not analyzing or worrying about achieving loading times under 1 second after getting the website live, you will probably never get a Mayday! signal from your code.
Both the phases are so intertwined and symbiotic in nature that they cannot be at opposite ends of the performance spectrum.
There are certain maintenance exercises that are needed to be assured in both the phases. The list of WP maintenance is endless.
But, we have sifted down some major practices to maintain good website health…
During Website Development
Set up your WP website with latest versions
It’s crucial that you always use the latest version of WordPress, themes and plugins.
Ensure that your plugin and theme developers coordinate their updates with major WP releases. Because with each new release, they enhance existing features, improve performance, add new features, and fix bugs to stay up to date with new industry standards.
So that you won’t miss out on new improvements/features, and risking your website to break.
Install plugins to plug website’s security holes
The security of your site is only as good as the backend and foundation it’s running on. Security plugins can save you from..
Hackers stealing your data belonging to your users
A compromised website that can malicious code to unsuspecting users
Sucuri, Wordfence and iThemes Security are some of the popular security plugins.
Use a Content Delivery Network (CDN)
There are chances that large images, CSS and JS files might have not been optimized taking a lot of time to arrive from the web server to the visitor. Whereas, your hosting server is hosting many websites together and response times are slow due to resource + bottlenecks.
A CDN is a network made up of servers all around the world that can help to speed up loading times for all of your visitors. And you can take a lot of load away from your server, because the heaviest resources are now hosted by the CDN.
Work on your code
There may be times you have to access the source code of your website. There are 3 main areas where you need to maintain a clean coding environment.
Commenting:
It cuts down time on edits and bug fixes which otherwise will be spent by the new developers or even by the same developer on figuring out what a particular code block does.
Linting:
It is another cool feature which enforces rules on the way we write code, and sometimes it corrects the code formatting itself.
Debugging:
Some popular examples of WP debugging plugins include Debug Bar, Kint Debugger and Query monitor.
Maintaining a live website
Back it Up!
The Rule-Of-Thumb dictates you must create a back-up of the data of your website. Sometimes it is also advisable to create more than one back-up and store it in different places to avoid any contingency.
Make sure to run backup plugins only during low traffic time on your website. You also need to adjust the frequency of backups and data that needs to be backed up.
Monitor website server uptime
There can be many occasions when your website is down and you’ll not even be aware of it. And this affects your business severely, website reputation, and user experience.
Use Jetpack, Down Notifier, and Pingdom plugins to monitor your website every specific minute via stats available on the dashboard. These plugins notify when your website goes down or is inaccessible.
SEO
The whole point to starting a business is to have clients. You get ranked on Google with most up-to-date and relevant information. They may even de-index your website entirely if it hasn’t been updated recently enough and if they suspect it has been infected by malware.
You must keep your website regularly updated via current content, news, keywords, permalinks, and rich snippets to rank well in search results.
The big dog in this picture – No..Not Speed!
Your website is a very important element of your business. It can cost you dearly, if it’s not in a good state or it can be a valuable asset if it is up-to-date and running smoothly. Once you are behind on your maintenance needs, it can be quite the process to bring the website back up to speed.
Do your business and yourself a favor by staying on top of your website. This will repay you with simple ease of mind. Devote your time what you’re best at: creating content and managing business.
Afterall you don’t want to wake up to alarm bells showing that something has gone south with your WordPress website.
Taking burden off you
It’s true that much of the work of maintaining your site can be automated.
But you still have to set it all up. You have to take the time to check any issues and you may have to fix them too. That will require you to learn about website security, error logs, or 404 pages.
Which is why it can be helpful to hire WordPress maintenance professionals. As a good WordPress maintenance expert not only fixes problems but also finds ways to keep them from happening again.
For over 35 years, NHLS has been a robust source for enterprise technology and software training solutions offering industry-leading learning content. They provide computer courses and certifications to more than 30 million students through in-person and online learning experiences.
Understanding the challenges
NHLS turned to Galaxy to check the load the platform can withstand under certain user scenarios over different web pages, and wanted the system to be able to entertain 10,000 concurrent users. They expressed concerns over the performance of their learning platform seen during user interaction.
They wanted us to go for performance testing to pull off higher volume load tests, and implement required measures to optimize website load times and ensure zero-downtime during the busiest days.
Test planning and implementation
We developed an in-depth understanding of the client’s system architecture and the platform. We used Jmeter to simulate heavy loads on virtual servers, networks to check strength, test the ability to handle heavy loads and determine system performance for a variety of loads.
We started with 1000 users. Reports of regression and stress tests made it pretty clear that the webapp is not optimized, since even after the FMP (first meaningful paint), the load times were far from what we expected. Servers were running out of capacity even on a few requests, which was not ideal for the server architecture NHLS already had.
Their application concurrency target was 10,000 users which was initially crashing at 100 users. In order to identify the point of bottlenecks due to which application started degrading performance, we defined few performance test objectives:
Response Time: To check the amount of time between a specific request and a corresponding response. User search should not take more than 2 seconds.
Throughput: To check how much bandwidth gets used during performance testing. Application servers should have the capacity of entertaining maximum requests per second.
Resource Utilization: All the resources like processor and memory utilization, network Input output, etc. should be at less than 70% of their maximum capacity.
Maximum User Load: System should be able to handle 10,000 concurrent user load without breaking database by fulfilling all of the above defined objectives.
Bottlenecks we encountered and the Solutions we provided
We used Jmeter to start testing with 100 users and then ramped up progressively with heavier loads. We performed real-time analysis and conducted more thorough analysis using a variety of tests like load test, smoke test, spike test and soak test.
In order to get to grips first with inaccurate page load and slow page speed, we decided to test per page load. We onboarded with our team of developers and network/server engineers to look into the bottlenecks and solve the issues to get expected results.
Bottleneck #1: Obsolete code
Adding new features to old coding architecture accumulated unnecessary JS and CSS files, code controllers and models on every page. This was acquiring cumbersome and resource-heavy elements or code throughout the website, and exacerbating the page load.
Solution:
We minified static assets (JavaScript, CSS, and images) i.e. optimized scripts and removed unnecessary characters, comments and white spaces from the code to shrink file sizes. To further improve the page speed, the server team performed static code caching that reduced the bandwidth usage from the website.
This resulted in a significant size reduction in requested assets and improved the page speed taking only 2 seconds to load the home page.
Bottleneck #2: Memory
A single query was processing more data than needed, mainly accessing too many rows and columns, from so many parts of the database. This in case of large tables means that a large number of rows were being read from disk and handled in memory causing more I/O workload.
Solution:
We used RDS Performance Insights to quickly assess the load on the database, and determine when and where to take action, and filter the load by waits, SQL statements, hosts, or users.
We performed indexing, removed redundant indexes and unnecessary data from the tables to quickly locate data without having to scan/search every row in a database table every time a database table is accessed. Server team used Innodb storage engine for MySql to organize the data on disk to optimize common queries based on primary keys to minimize I/O time (minimizing the number of reads required to retrieve the desired data).
Bottleneck #3: CPU
Use of nested loops to process large data sets made it difficult to trace the flow of the code, hitting so many requests (1-10k requests) on the database by a single user. This caused the code to execute multiple times in the same execution context hitting the CPU limit and driving up its usage.
Solution:
We performed query performance optimization to remove unnecessary code in loop (by making sub queries of queries) and removed multiple loops thus reducing time of rendering content from looped code that resulted in sending only 100 requests by a single user now. This reduced page size, response time, and marked down CPU resources and memory from 8GB to 4GB on the application server.
Ridding the code off of redundancies and optimizing the database helped us get to the 5000 user traffic mark. This lessened the extra work of the MySQL server, reducing server cost to 10-20%.
We launched a single server on AWS and configured all the required packages such as Apache, PHP and PHP-fpm, load balancer, and others to run our application.
Bottleneck #4: Network Utilization
The former HTTP/1 protocol was using more than 1 TCP connections to send and receive for every single request/response pair. It utilized many resources on the web page making different requests for each file. As the overload continued, the server began to process more and more concurrent requests, which further increased the latency.
Solution:
We used HTTP2 to reduce latency in processing browser requests via single TCP connection. Enabling Keep-Alive avoided the need to repeatedly open and close a new connection. It helped reduce server latency by minimizing the number of round trips from sender to receiver. And with parallelized transfers, letting more requests complete more quickly thus improving the load time.
To identify the slow log queries, and requests taking long execution time in the code, we established a proxy connection between Apache web server and PHP-FPM (communicating through modules earlier) to identify the bottlenecks of individual entities by letting them functioning individually. Then we configured PHP-FPM to identify RAM capacity by calculating how many max. parallel connections RAM can handle, leaving the system memory free to process at the same time.
We found inadequate server capacity, while inserting the data in the login and without login scenario to create real-life testing environment.
We proposed a distributed server system so that more than 1 server can be auto generated. We added auto scaling and added 4 servers, but was still burning at the load of 8k users and saw an increased server cost. With Round Robin load balancing, we distributed incoming network traffic or client requests across the group of backend servers. This helped us identify that the load is increasing due to inaccurate working processes of sessions stored in the database.
Bottleneck #5: Session queues
The server was getting overloaded due to accumulating too many sessions when performing load of 10k users login concurrently. And because the sessions were stored in a database, increase in the wait activities decreased the transaction throughput taking session time upto 100s, thus increasing the load on the system.
Solution:
We switched storing sessions from database to Memcache server. It stored sessions and queries in memory/cache instead of files, thus reducing the number of times that the database or API needs to be read while performing operations. It cached the data in the RAM of the different nodes in the cluster, reducing the load in the web server.
Making such scalable and cost-efficient server infrastructure helped the client application achieve the load of 10k users in less than 5 mins using only 2 servers capacity.
The testing process was able to ensure a smooth customer experience and save significant capital expense by maximizing server capacity already in place.
The appeal of WordPress is simplicity. The debate on Gutenberg and Page builders is much more than functionalities. It’s more about ease of use.
In the world of page builders, Gutenberg emerged as a complete paradigm shift for the users. The battle goes on whether the page builders will be replaced by Gutenberg and lose their influence? Or is Gutenberg alienating most of the current user base because of its workflow?
In this blog, we are going to compare WordPress page builder plugins with Gutenberg to help you select an ideal choice that suits your WordPress website requirement.
Live visual editing
If you want to figure out how things would appear without saving the page – through an actual live preview of a page as you edit it – then here is a big turn up you will find in the differences.
Page builder offers the level of visual editing that Gutenberg doesn’t. A page builder lets you design the entire page in a WYSIWYG interface. You can save the preview time by making direct changes in the layout and style of the web page.
Styles and themes compatibility
Page builders provide more style options in comparison to Gutenberg editor. Elementor and Divi Builders are among the perfect examples for it.
For a button, Page builder offers a lot of customizations like color, border radius, animations, filters etc. But Guntenberg will only have few choices in its bag like shape, background color, and text color.
Gutenberg relies on WordPress for themes and styles. With custom CSS, you can customize your blocks but the overall look of the page will be the same as your theme. On the other hand, Page builder lets you override themes and styles. Thus help in creating a unique experience for standalone landing pages.
Responsive design controls
Gutenberg does not have a responsive design control. But plugin like Kadence blocks adds custom blocks to extend Gutenberg’s editing capabilities. You will be able to better control columns for different screen sizes and will be responsive according to your theme.
But you can’t change how that responsive design will work in Gutenberg.
Whereas page builders provide responsive design control for each element. Therefore, if you want to have full control on the design, you must prefer page builders as an ideal option.
Layout functionality
You can’t customize margins and paddings for individual blocks in WordPress’ new default editor. It gives some basic options for alignment such as left, right, and centre. On the other hand, a page builder gives you the option to edit every single entity on the screen like margins and paddings.
Gutenberg has some third party extensions to let you use drag and drop options to adjust different layouts for different devices. One of the most popular extensions is Kadence blocks. It adds detailed layouts in a web page. But Gutenberg’s default column block is limited and cannot be compared to page builders.
It’s for this reason, you will always require a page builder to get full layout control.
Scope
Gutenberg comes with limited actions. Ease of use is the main goal of Gutenberg. It is intended to be used by writers, bloggers, and businesses.
Whereas, Page builders work well for people who rely on customizations for their development needs.
Page builders are commonly used by eCommerce stores, WordPress agencies, aspiring designers, small businesses, among others.
Takeaways
Gutenberg is for people who put reliability and ease-of-use over a buffet of customizations.
You can prefer Page builder when you have specific vision for site’s design. You can create unique designs according to your needs and preferences.
You can use Page builders when you want to add some specific features that are not present in Block editor. Some of these features include media carousels and subscription forms.
People who are used to the freedom of customizations in page builders will find the simplicity of gutenberg quite limiting.
Currently, Gutenberg is not powerful enough to replace highly flexible page builder plugins. It’s just a modern version of the classic editor. But there’s a good news Gutenberg enthusiasts…
Integrating page builder plugins within Gutenberg has the potential to bring out the best of both worlds. Maybe WordPress is heading that way only with custom fields integration.
As a result, you’ll be able to use different modules as separate blocks in Gutenberg editor itself. It would help you to create rich and more flexible web experience. At the same time a future with a win-win situation for all.
When you’re looking to outsource, you probably spend a lot of the project’s time in finding that “right partner”.
What if we tell you that even after choosing the right partner the performance rate for software outsourcing remains below 50%. It means that companies who outsource without considering the risks and operation costs, only get half the efficiency out of their outsourcing efforts.
Companies are so quick to handoff their work to off-shore agencies that outsourcing becomes purely transactional. Maybe we can rethink of outsourcing as a holistic approach and start with evaluating our processes and current performance instead of diving straight into a partner hunt and handing off the work to them.
The key is to have an extensive plan so that the risks are low and success rates are high. The rule of 5 P’s sums it up really good-
Proper Planning Prevents Poor Performance
With this guide you’ll be able to strategize for efficient outsourcing, choose the right vendor, optimize testing costs, and streamline your development process with QA.
Getting ready for outsourcing
Define Objectives and Goals
Clearly defined objectives and measurable goals makes for a good basis of an outsourcing strategy. Objectives will help you with decisions concerning a project’s business value, vendor, outsourcing models, projects to outsource, and related risks to assume. Down the line objectives will also help you evaluate the success/failure of your strategy.
Whereas, Goals are the events and functional metrics by which management can monitor progress, take corrective action, and project future performance.
Measure Performance Baseline
You’ll also need to define metrics with which you can represent a baseline performance for your outsourcing efforts. Use these metrics to get a baseline for your current performance which can be later referenced for future measurements. Baseline also clarifies which metrics are important in achieving specific goals and business objectives.
Set realistic expectations
After defining your goals and expectations, you need to check if they’re are just. Unrealistic expectations of large immediate savings is the reason behind most of the failed projects.
Practical expectations ensure stability for your offshore strategy. A careful analysis for ROIs and timing of the benefits will help you evaluate and set better expectations.
How to choose and manage an Outsourcing vendor?
Shortlist a vendor –
A quick Google search will land you on the pages of thousands of vendors with a fair amount of happy client testimonials. How do you see past a few deliberately filtered out success stories? The first thing in your course of action should be checking the review and references of your shortlisted vendors.
A vendor with a good track record should be able to provide you with sufficient references. References might give you just enough green flags to go ahead in your research. You can then continue your vendor evaluation based on the below mentioned factors.
Gauge their expertise
To showcase one’s expertise vendors should provide you with their test documentation, portfolio, and test cases. The depth of their reports should give you a good idea about their process and cases they cover.
See if they have sufficient resources and services
An ideal vendor should always have more resources than you need at the moment. Regardless of your immediate needs, your vendor should be able to do all types of testing be it automated and manual for web or functional, performance, usability, compatibility, API, and security testing for mobile/desktop. It enables your vendor to scale as you do.
Vendor management and assessment –
Understand your vendor
Vendor management starts from understanding their needs and where they are coming from. An outsourcing vendor has to deal with operational costs, talent acquisition challenges, and problems with other projects. Excessive price negotiations might push them to cut corners by allocating insufficient or junior resources.
Regularly assess the vendor
Regular assessment ensures quality. You need to have a systematic assessment in place, so that when you’re unable to get the expected quality of work, you can take action or look for other vendors.
Make sure that the frequency of these tests is not on the higher side, because it will shift their focus on showing rather than actually doing things. Assessing too frequently will keep them on the edge all the time.
This assessment criteria should get you started.
– Number of missed bug
– Quality of defect description
– Correlation between testing efforts and outcomes
– Quality of test documentation
– Capacity and availability of resources
– Efficiency of testing tools
Manage vendor performance
Assessment provides you with insight that you can use to improve the testing procedures in place and maybe introduce some measures to increase the efficiency.
You should review vendor’s testing documentation at least once a month. Based on the reviews, your QA lead should provide the test team with relevant feedback, detect hidden wasteful steps and cost drivers.
You should also be in constant touch with your vendor’s QA manager to communicate missed bugs or unclear reporting. Ensure that the test team properly understands business and software requirements.
In case a vendor fails to deliver on your expectations, you can consider a multi-vendor strategy. For big enough projects you can assign different part of projects to different vendors. Having options makes the replacement easier when and if your projects are at risk.
Dealing with cooperation issues –
Prioritize testing activities
Addressing urgent issues is a common practice in an agile environment but urgent requirements can often delay the important issues. Because, every time there is a change in requirement vendors need to adapt and reprioritize. While dealing with the changes they might leave business critical or problematic features out of the scope.
Your QA manager should be able to help the test team create a clear test plan and prioritize testing activities, so that nothing is swept under the rug.
Include several SLAs in your contract
Since it’s difficult to match a traditional contract with a flexible agile testing process, you can divide your contract into several service level agreements(SLA) to make collaboration more manageable. Each SLA should cover a part of the services to be rendered, the time required for execution, priority, and KPIs.
Which Outsourcing Model to choose?
An outsourcing model has many variables, such as scope, distribution of responsibility, contractual flexibility, and duration, but the main variables that define a model are the distribution of responsibility between you and offshore vendor, and the scope of the outsourcing effort.
Staff augmentation
This model has the same characteristics as a traditional onshore staff-augmentation model. You hire contractors to perform a particular task or role. The contractor receives work assignments directly from your company, the same as all other developers on the team, and performs the work remotely.
However, the staff-augmentation model has the advantage of having the lowest risk and being the easiest to implement as it can be executed with a single offshore resource for a fixed task and duration.
Offshore vendors tend to shy away from this model and many strongly discourage its use due to the shared overhead costs and limited upside for the vendor.
Project-outsourcing
This model is a self-contained engagement with fixed start and end milestones where a dedicated offshore team is responsible for delivering a complete project according to your specifications.
If you have a large project, you can start with a pilot project by assigning an isolated part of the project to see if the vendor’s processes are mature and what are the overhead costs and vendor also learns how your company functions.
If the project is small, the risk is relatively contained and both parties figure out the intricacies of an effective business relationship.
This model is more appealing to many offshore vendors and represents a more significant benefit for both your company and the vendor because the model can be scaled up to more and larger projects.
Dedicated development centre
In this model the vendor has a pool of resources, resources that are dedicated to your company’s use.
As your company matures in its relationship with an offshore vendor, this is a logical next step in growing from either a staff-augmentation model or a project-outsourcing model.
This model allows the same resources to be retained for multiple successive projects and reduces the loss of intellectual capital prevalent with the project-outsourcing model.
Functional outsourcing
This model outsources an entire business function, process, application, or department. This tends to be a high-risk, high-reward endeavor.
You must be confident in your vendor’s ability to deliver significant business value and minimize the risks of business disruption before entering into this kind of relationship.
However, offshore vendors that specialize in a certain business functional area can often provide a higher level of expertise than you can — at a reduced cost.
Tests to look for
An experienced outsourcing vendor with structured QA processes will help you realize robust and reliable products in shorter turnaround time. With their proven industry experience they will also ensure consistent implementation of best practices.
Knowing their process can prove to be an insightful experience into their work and how they operate.
Just to give you an example here’s our process that explains how a product is tested, starting from an atomic level (lines of code) to a molecular level(modules) to an elemental level(System).
Unit testing-
This stage focuses on a small piece of an application, even something as granular as a line of code like a method or class, and ensures that it functions as per expectations.
Our Unit testing checklist
Write a line of code
Write a method to test that code
Implement the code
Launch test
Verify results
Unit testing accelerates productivity by streamlining development and lowering the risk of time-consuming and costly bugs down the line.
Integration testing-
Units make up a module and if units do what they are supposed to then it’s time to see how they work together as a module in integration testing.
Here are some methods used in integration testing:
Big bang
Top-down
Bottom-up
Sandwich/hybrid
Integration testing verifies the functionality, reliability, and interoperability of multiple system components working together. It also identifies and addresses problems with exception handling.
System testing-
Software system testing looks at a software product as a whole and evaluates whether it successfully meets the pre-defined functionality, end-user, and business criteria.
Functionality
Does the system function as the requirements criteria detail it should?
Performance
Is the software reliable, responsive, stable, and performant under various conditions?
Regressions
Has the software retained its original functionality since its modifications?
Usability
Is the software user-friendly, and intuitive? Does it offer an optimal experience for the end-user?
Stress
Can the software hold up as the load and stress on the system increase?
Load
How quickly does the system respond under normal and peak conditions?
Security
Do the security features ensure the integrity of the software product as far as protecting sensitive data and information are concerned?
Recovery
Can the software recover successfully and quickly following a crash or failure?
Interoperability
Can the software successfully interact with other software systems or components?
Documentation
Are all test scenarios and requirements agreed upon prior to and during this QA phase well-documented?
If bugs, breaks, or defects are identified during this stage of evaluation, they are fixed and then re-tested, forming a repeated quality assurance cycle until the software QA team signs off for deployment.
System testing ensures end-to-end evaluation of an entire product prior to release and lowers risk for application failures once the product is live.
Acceptance testing-
Even after all the programming, technical oversight, quality assurance, and bug fixing, software acceptance testing is necessary to evaluate that the end product fulfills the purpose for which it was originally designed and developed.
Acceptance testing mitigates any fallout from outstanding bugs or defects that weren’t identified in the previous unit, integration, or system examinations. It also improves overall user experience as testers and users relay usability and functionality feedback
The above mentioned testing process is common to all software development and testing providers. But to ensure utmost product quality and robustness we have these additional layer of tests that help us make our products flawless.
Load or performance testing on page and application scale
Security testing
Accessibility testing
Visual QA
Automation testing
Key takeaways
Software testing and QA outsourcing is an opportunity for businesses to reduce IT overheads and improve efficiency.
Good software testing is a specialized and professional skill, and not merely an afterthought entertained at the end of the IT project life-cycle.
Even if large-scale offshore outsourcing is not an option that you’re ready to consider, outsourcing a small part of a large project can provide an effective supplement to your existing solution.
Ultimately QA outsourcing boils down to understanding your needs, setting cautious expectations, and knowing when to withdraw.
The pursuit for finding the perfect “javascript framework” can seem like a wild goose chase. But it never is. There are one too many frameworks and each one has traits that makes choosing more difficult.
Whether you’re trying to get into frontend or shifting from PHP or C++ to Javascript, these comparison points between Vue and React are just the thing to get your started.
Popularity
Javascript is quick in releasing frameworks and libraries. The only constant thing is the continuous change in the top positions of the frameworks and libraries.
According to the trends Vue might not seem like a go-to choice of people.
But GitHub stars tell a different story altogether. In June this year VueJS surpassed React. And Vue is still in the lead with 152k stars in comparison to React’s 140k stars.
A point to be noted is that Vue has lesser number of commits and contributors. A possible explanation is that Vue is driven by the open source community where as React has Facebook’s employees as its contributors.
Community support
Facebook’s backing to React signifies strong community support. Till date, React has 171k questions on StackOverflow in comparison to Vue’s 44k questions. But React’s community is more fragmented than Vue’s. This makes it difficult to find answers to even common issues and roadblocks. But Vue gained immense popularity and support from the developers. Vue has successfully created its own name without any major brand’s backing.
Learning curve
Developing your website via React will require you to have a huge knowledge of third party libraries as React is a library and not a framework. Whereas Vue has tools like Vue CLI 3 and Vue UI which will help you in building MVPs real quick. Vue is considered to be more developer friendly due to it’s short learning curve. Also Vue has taken inspiration from Angular and React which makes the transition easier for developers.
Performance
Performance can be measured on various aspects. Measuring it on the basis of framework’s size, Vue has a smaller framework size in comparison with React. Vue’s framework size is of 80KB whereas React is of 100KB. This will have an impact on the initial load time as well.
Virtual DOM is used by both React and Vue. But Vue has better performance and memory allocation due to its well built structure. A word of caution, the final performance will also depend on your application size and how well your code is optimized.
Documentation
Vue’s development team has put in a lot of effort in the tool’s documentation. The API reference is said to be the best in the industry. There is a detailed overview of Vue’s ecosystem, which is absent in React’s documentation. All the information required for creating Vue’s applications is well-written and accessible with ease. All this goes in Vue’s favour. React’s documentation includes basics and some advanced concepts, however it fails to present it in an easily accessible manner.
Use cases
Vue and React are both used by known global names for their websites and applications. Behance, Louis Vuitton and LiveStorm have used Vue. And Airbnb, Netflix and PayPal have selected React. The list is long for both. Vue is scalable and gets integrated easily, so it can be used for bigger development projects as well. However, using React for smaller projects is not a smart decision according to industry experts.
So, When to select one over the other?
If you are a fan of:
Flexibility
Experimenting with lots of libraries and tools
Large community support
Javascript more than HTML
React will be your go to option.
If you are someone who:
Is looking for short learning curve
Likes clean code
Wants a lightweight framework
Need an MVP on short notice
Vue should be your go to option.
The battle for choosing the ‘best suited’ framework depends upon your specific requirements. And your requirements will change over the course of time. Be prepared for that change as well.
What is common between Pinterest, Tinder, Uber, Trivago, and Airbnb?
All these companies experienced a surge in their product’s performance, user-engagement, and conversions by going mobile-first with progressive web apps.
Why did they go for PWA you ask? Legacy websites of these popular platforms were doing good for big screens but not so much for the small screens. Considering the ever increasing growth of mobile users and loss of potential market they decided to prompt users towards their native apps.
After seeing people bounce from their native apps too, they decided to go with progressive web apps.
This blog covers progressive techniques that Pinterest and other major companies use to build PWAs.
Pinterest reduced its Javascript bundle size via Route-Based Chunking
Code-splitting reduces time to interactive by loading only the code that’s needed beforehand while the rest of the code loads lazily.
Pinterest broke-up & shaved hundreds of KB off their JavaScript bundles weighing 650kb. Pinterest split it’s multi-megabyte JavaScript bundles into 3 different categories of webpack chunks (Vendor, Entry and Async). They used webpack’s CommonsChunkPlugin (replaced with SplitChunksPlugin in webpack v4) to break out their vendor bundles into their own cacheable chunk and added React Router for code-splitting.
As a result, Pinterest was able to take down the size of their core bundle from 650KB to 150KB.
Uber and Tinder also took a similar approach and….
m.uber comes in at just 50kB and loads in less than 3s.
Tinder took down its core bundle size from 166kb to 101kb and reduced its load time from 11s to 4s.
Faster loading for Tinder and Nikkei via Inline Critical Path CSS
The bigger and more css files you have, the longer the page takes to load. Inlining critical CSS eliminates Render-blocking scripts.
Tinder used Atomic CSS to create highly reusable CSS styles to inline all the critical CSS in the initial paint. Tinder used Google Analytics and CSS stats for each release to keep track of what has changed. It saw change in average load times went from ~6.75s to ~5.75s. Thus, removed critical CSS from their core bundles.
Nikkei, a Japan based media business, inlined all the critical CSS with 0 render blocking stylesheets. This optimization helped Nikkei to reduce its first meaningful paint by more than 1 second.
What else can you do besides code-splitting and inlining CSS?
Asset caching via Service Workers
Service worker is a lightweight net proxy which allows web applications to cache all of its necessary resources to load substantially faster for returning visitors. Essentially, it helps in caching main JavaScript, CSS, and static UI assets.
One way to generate a Service Worker file and a list of assets is via Workbox Webpack plugin. Many web applications take advantage of Workbox Webpack plugin for network resilience and offline asset caching. That further has helped these companies to speed up Time To Interactive on repeat visits and first meaningful paint.
Treebo saw 31% improvement in TTI and loaded in under 4 seconds, whereas Pinterest reduced its TTI from 23s to 5.6s.
Making speed one of the core metrics is an important step towards delivering a hassle-free and cutting edge experience to your customers. More and more websites are opting for an offline-first web. It’s only practical to adopt the ‘write once and use anywhere’ approach against writing natively for every other platform.
Google and Microsoft are also working towards a future where PWAs are available alongside full-fledged apps in app stores. It’s safe to say that PWA is in fact the future of the interwebs.
Progressive techniques can give your website a much needed performance boost like these apps that you just read about. Thinking about making the move to PWA? Talk to us here.
When you think of hotspots for tech, don’t zero in on Silicon Valley just yet.
According to Expert Market, Boston is one of the top 10 tech cities in the world, and Galaxy Weblinks is proud to call it home.
We’re thrilled that Clutch, a business services resource, has recognized us as a top web developer, with an average client rating of 4.8 stars. We’re committed to offering accountable web development, and we take steps to ensure that each project we take on receives the resources it needs. All of our clients love that we have dedicated project managers for each project. This ensures proper communication and updates that help our clients be on top of things.
In one such project, we developed an e-commerce site for Fast & Light LLC, a digital marketing agency. We tailored our deliverables to meet their specific design requirements.
The delivery of the website improved the agency’s internal efficiency by freeing their teammates for other tasks. They were happy to work with our team and found our resources friendly and easy to get along with.
We redesigned a website for another highly satisfied customer, a women’s clothing boutique. We worked in Magento to improve inventory details and make links more accessible, along with a more intuitive UX.
We delivered the improved website in just a few weeks, and our customer was happy with its functionality. We also explained our process and worked with their feedback throughout the project cycle.
“They were able to put my ideas right into place on the website and then immediately asked me for my feedback. The job got done so quickly and for such a reasonable price that I was extremely surprised.” – Owner, Women’s Clothing Boutique
We’re thrilled to receive such praise from our design and development clients.
Getting validated reviews from clients just goes to show our credibility. We love that Clutch was able to help us with it. We are a versatile software development company with strong core values. We believe in a world that intersects & interacts with software, we are focusing on building it as human as possible.
You can also review our profile on The Manifest, a guide to B2B services. We’ve been ranked among the top 50 developers in India, our second location. Potential customers who would like to visualize a project can also see our work on Visual Objects. Many of the tools and platforms we’ve built are shown there.
Interested in our work for startups as well as larger businesses? Contact us
You might be familiar with Murphy’s law which says ‘Anything that can go wrong, will go wrong’. Software isn’t immune to that. But that’s often the last of your worries because the plate’s always full!
Well, not anymore!
Prepping your webapp via a professional third party QA vendor
QA is like checking your life jacket before diving. There are professionals that run quality tests to eliminate the possibilities of a malfunction.
Delegating QA to a professional third party is not a bad idea. If you’re thinking of adding or improving a QA process in your existing SDLC, then there are two ways of doing that. One is to go with an inexperienced local team and another option is to outsource professionals.
An experienced QA engineer is aware of all the possible errors and prepares test cases accordingly.
It’s not safe out there and you must be on-guard at all times.
The right & only way to outsource QA or any help for that matter
Clear communication.
It is vital for coordination. While hunting, Preppers require patience and coordination to hunt. Their coordination through communication determines if they’ll eat or sleep hungry.
You need to think of outsourcing as co-operative hunting. Communication is the key.
50% of the problems are instantly solved with an active and fitting communication channel. That’s the only way both the parties would know what’s expected of them. Fluent and relevant dialogues can lead to result-driven partnerships.
Start by talking about these aspects:
Project requirements
Defects in software products during all stages of the development process
Product quality evaluation
Product’s usability
Delegation gets more done.
Don’t “Alpha to Charlie, we need cover!” your vendor. Just plain communication would do
An elaborate plan is one common thing in every prepper’s guide. The plan is made keeping every possible worst case scenario in mind.
Your engagement model is that plan.
Start by defining the type of outsourcing your project requires. Incremental outsourcing allows you to mitigate your risks by dividing work into smaller, more manageable projects. Total outsourcing involves outsourcing multiple projects and programs to a service provider.
Beware of these fatal threats. It might kill your webapp
Pokeberries might look tempting and edible but they’re poisonous.
A webapp is like the wild. There are things that look friendly and consumable but are not. Here’s a handy list of common things that are used to steal user data and are poisonous for your webapp.
1. Cross site scripting (XSS)
Hackers can use malicious scripts across the site to redirect your users to other phishing sites. Via these phishing sites they can extract customer’s information and exploit their machines.
2. Cross site request forgery
Using cross site request forgery hackers can link their malicious website on your webapp. These links when clicked on, compromises user credentials and other personal information.
3. Code injections
Code injections are rather common, they are used to alter the functioning of a webapp and make it crash.
4. Server side includes (SSI) injections
Server side injections are like code injections but more severe. As the name suggests it’s injected on server side.
5. Authorization bypass
Authorization for webapps acts like biometric access control. A successful bypass means the breach of protected information, which can lead to misuse of website data.
Not roughing up your webapp can lead to:
Terrible speed
Subpar performance
Compromised UX
High bounce rate
Reduced search engine ranks
Payment interface issues
Loss of potential customers & sales
Testing before sending it out there in the wilderness
Browser Compatibility Testing
Test the traps with something (exclude yourself) after deploying. QA reduces the risks of failure.
Different browsers render websites differently. Bug fixes and critical changes make it more difficult to find a sweet spot for compatibility. QA engineers test all the platforms that your website will run on.
Testing on multiple devices is essential because people use mobiles devices more than computers. Compatibility issues lead to poor performance and it can decrease traffic and affect conversion.
Performance and user experience is one of those things that will instantly affect your business.
With comprehensive compatibility tests you can prevent loss of potential customers & sales. Better loading speeds and lower bounce rates aid in better SEO ranks too.
UX Testing
See the world with a survivor’s eyes and walk in their shoes. That’s how you come up with unusual solutions.
UX testing is seeing your webapp with your user’s eye. With test case scenarios you’re taking a walk in their shoes.
Use real time user-behaviour data to improve user flows and fix abnormalities within the webapp. With the help of UX testing you can determine if your design, user flow, and copy are working as intended.
Functional Testing
Functional testing surfaces friction in your webapp, if any. It also reveals crucial issues of your website’s functionality like UI problems and substandard user experience.
Using functional test case scenarios, QA engineers can compare the functionality of your website against the defined scope.
Load & Performance Testing
This testing uses staging servers to determine maximum load & performance. It’ll help you figure out if you have delayed server responses, crashes, and other potential problems.
Load and performance tests are designed around your business requirements, server configuration, historical traffic on your website, anticipated future traffic of your website.
JMeter and Loadrunner are used to simulate traffic to test your website. These tests help QA engineers to identify key performance indicators for your webapp and server.
Security Testing
You can manually get rid of bugs and faults but new ones keep appearing hence the automated tests for passive safety.
QA engineers use a mix of manual and automated testing techniques on your staging servers to identify security vulnerabilities on your website.
Test Automation
Selenium does the bug hunting for your webapp. It uses test scripts to mimic the user interface over and over. You don’t have to live test manually every time there’s a small change.
Although not all aspects of website could run using automated testing, even if some vital checkpoints are automated, it saves manpower cost to a huge extent.
QA can protect your webapp and cut costs at same time
Your website’s content assets and customer information are key drivers for your success. Security vulnerabilities can cause loss of data, customers, and reputation. A QA team can save your webapp, customers, and sales. Wise men say
“Better safe than sorry”
QA can reduce 30-40% costs of maintaining the quality of the webapp.
We’re no Doomsday preppers but we do have a team of QA/QC engineers that leave no margin for errors and makes your webapp apocalypse-ready.
Say hi, we can make your product fit enough to survive.