“Alter table” applied to a large table

Do you have a large table and want to alter it? Only for InnoDB?

 

It can be done!

 

What is a large table?

For some it’s 100 MB, for others it’s 100 GB, but the question is: How do you make an alter table in a way that doesn’t ruin the database?

 

Step one – disk space.

 

You will need 2.5 times more free disk space than your table uses.

If the table is 100 GB, don’t create an alter table without a minimum of at least 250 GB of free disk space. Also, make sure that this free space is in the right directories, because in addition to /var/lib/mysql, tmpdir (usually /tmp or /var/tmp) is also used for storing temporary files.

If you have more than one volume then you probably have one on /var or /var/lib/mysql and the other on/ , you have to check if there is enough space in tmpdir.

It may turn out that it’s on a different volume, so check where tmpdir is, by running the query “SELECT @@ tmpdir;”

Where do we need free disk space:

– tmpdir, you need at least as much space as your table has

– mysqldir – you need at least as much space as your table + space for new data (if you add a column or index, the new table will take up more space than the old one).

Therefore, I suggest taking care of 25% of the stock in both places, just in case.

 

Step two – you don’t want to lock the table

 

Table altering is very tricky and does not lock the database, which is important, because in large databases the query ALTER TABLE can last from just several hours to several dozen.

Unfortunately, though table altering doesn’t lock the table, it might be another query, or process, that is doing this.

– make sure that no queries or processes that are running on the database LOCK TABLE, if they do, then they will block the table until they execute. Additionally, they’ll do it only when the altering has finished,

– which is why it’s important to check that the backups are disabled for the duration of the table altering. Unfortunately, there is a very high probability that the backups will block the database during the alteration,

– do not execute any other commands like: FLUSH TABLES, ALTER, RENAME, OPTIMIZE or REPAIR, while altering the table; these two commands run simultaneously on the same table  will definitely block it,

– before altering a table, make sure that no long queries are performed on the database (eg SELECT may take several minutes).

 

The third step – innodb_online_alter_log_max_size

 

→ this is a strange variable, which by default is set to 128 MB,  leaving you to find that you may need to increase it (especially if the database has a large increase of data)

→ online_alter_log is used while altering the table to save the changes that have occurred during the alteration, so it must be sized to accommodate the entire data increment.

 

Table alteration scheme

 

→  Create an empty new innodb table in the mysql-directory (eg/var/lib/mysla/[dbname])

Create a temporary myisam table in the RAM memory (which if not stored in the memory, is saved in the tmpdir directory)

→ Copy the data from the innodb table to the temporary table in myisam – at this point there will be a large increase in disk usage in the tmp directory

→ Align the myisam table with the innodb (the myisam table must be a snapshot of the innodb, during the table snapshot it’s definitely blocked from writing)

→ Log all the new changes to the online_alter_log – from this moment the log will begin to grow (in the memory or on the disk)

→ Copy the data from the temporary myisam table to the new innodb table created in step 1 – temporarily there will be a large increase in disk usage in the mysql directory

→ Align the new table with the online_alter_log-iem – which means loading all the changes that have occurred since the snapshot

→ Replace the old table with a new one (the database is definitely a locked because it has to align the new table with the old one, delete the old table and rename the new one).

 

Finally – the clean up 🙂 check the temporary files and delete the old table.

 

Goog luck!

How to choose an external IT company to implement a Magento platform for your on-line store?

You already know, that your online store will be based on Magento technology. This is an important decision that will allow your company to compete in the market and give you the flexibility to develop your business quickly when it’s needed. It’s an investment, that will help you grow your business and build your profits.

 

Choose the right partner now, someone who’s not only familiar with e-commerce technology and can run an effective and efficient IT project, but also condsiders your business success.

 

Acquiring such a partner, and building a good relationship with them, brings tangible results by streamlining your use of Magento technology, ultimately contributing to your customer satisfaction and business growth needs.

 

What should you pay attention to when looking for a reliable technological partner to develop a Magento platform for your business? Here are some tips you can follow.

 

Check the company – collect information

 

Quick and easy access to information and communication assist you in finding and screening potential trusted technology partners for your business. You don’t necessarily have to start with a Google search 🙂

 

Take the first step in finding an IT partner with help from your friends, ask them to recommend a proven IT company, either in person or through social media.

 

The next step is definitely vetting these companies, checking their website, screening their activity on social media, and certainly confirming their references from previous. If an IT company has experience and positive feedback from their Magento projects, won’t mind sharing it’s contacts with potential clients to ask a few questions, e.g.

 

        -how do they evaluate the cooperation?

        -what was valuable during the project, what bothered them?

        -were the dates maintained and was the scope of the project executed?

        -how do their online stores work?

        -how fast can they develop new functionalities?

 

A professionally operating company does not mind sharing contacts to its previous clients for whom they worked, and presenting such references by an IT company means that:

 

→ the company has proven experience working with Magento technology,

→ relationships with previous customers are good, and the company has a positive reputation regarding their services.

 

You may encounter a problem, however. What if the IT company you want to cooperate with doesn’t have references from the clients they programmed for? As in the case of WLC, where they were a subcontractor for another agency. In this case, references can be provided by the contracting agency as the company representing the client and in charge of commissioning the project.

 

The recommendations of previous IT clients are important. Nobody in the business industry will recommend a company that doesn’t operate in a professional manner, or whose services are unsatisfactory. Additionally, you can check out the online stores of their customers yourself.

 

IT companies can promote their image in by creating company profiles on sites like Clutch, an industry platform which helps you “find top firms for your big project”. Apart from the company description, check the WhiteLabelCoders’ profile: here you can find some information about their experience and the scope of their services, presented in a simple graphic:

 

 

On WhiteLabelCoders’ Clutch profile, you can also learn about their project portfolio as well as their  customer ratings and reviews

 

 

It is not easy to include opinions on business cooperation at Clutch.co. Clients have to make an appointment to call Clutch or fill out a form via LinkedIn

 

How do you check a team’s competencies?

 

If the team of Magento IT specialists you’re interested in cooperating with is an effective and experienced team, it shouldn’t pose a problem to verify their working methods through a short conversation, covering the following topics:

 

→ the production environment

Magento developers never work via FTP, they work in a test environment to avoid overwriting each other’s code.

 

→ integration with other platforms

It’s important that the Magento team has knowledge of the entire integration process involving other platforms or applications. This guarantees that at the end of the development process you will receive a product that supports your business and any future development goes smoothly.

 

→ the process of testing an online store

implementation of online stores requires previous tests, which should be implemented at every stage of the programming project,  before launching the store, and again after the implementation.

 

→ the automatic processes vs manual operations

an experienced team Magento knows that not every activity requires automation, because writing software for sporadic and simple activities may be a waste of the developer’s and the project’s time. Regular, frequent and labour-intensive activities should be automated.

 

→ hosting and maintenance

focus on which hosting services are used, and/or does the team guarantee the support and maintenance of the platform after deployment.

 

What does day to day cooperation look like?

 

You get to know an IT company from their completed projects, previous customers’ opinions, and their experience and knowledge surrounding Magento’s technology. Now, what would your cooperation look like on a day to basis day during a project? Work methods, principles of communication, verification of tasks, team management, crisis response, knowledge sharing and so on have a significant impact on how a project plays out, as well as, its course and costs.

 

An IT company that supports the client during the implementation of the Magento store project in the field of business solutions, specific store functionalities, testing, implementation, maintenance and development of the platform is focused on long-term cooperation, which does not end with the implementation of an online store.

 

Any IT company that supports their client during the implementation of a Magento based online shop, specific functionalities, testing, maintenance and further development of the platform is focused on long-term cooperation, which doesn’t end when a store first comes online.

 

Make sure that after completing the project you receive continuous support in the areas of interface, integration and module training.

 

The professional IT company that’s worthy of your trust and cooperation, knows that they build their experience, knowledge and brand, by satisfying their customer’s business development needs and helping them achieve success.

 

Related articles:

What affects the final cost of a Magento platform?

 

Which Magento Version is Right for My Business?

Best practices in programming based on SOLID, KISS and personal experience.
/by Krzysztof Chadynka, Web developer at WhiteLabelCoders/

The guidelines a programmer should follow on a day to day basis are just as important as they are in any field.  Applying these principles may initially seem tedious and time-consuming, but over time, the advantages won’t go unnoticed. Shortcuts, which may save time, can also lead to a variety of  problems in the later stages of a project.

Empirical evidence shows there is no situation in which cluttered code won’t cause problems when it’s further extended.  This is exactly why Robert Martin (a.k.a. Uncle Bob) created a set of rules for writing good code, which allow us to create simple, easily modified software. As a compliment to this approach, the term KISS, coined by Kelly Johnson, is applied as a basic principle.

What is KISS?

KISS is a term created in the 1960’s which was meant to reflect the approach of creating simple durable aircrafts that could be repaired easily in an emergency. This idea has since been adopted by many branches of science and engineering.

KISS is a term also used in developing solutions to programming problems. Literally translated, KISS means “keep it simple, stupid” or “keep it stupid simple“.
However, it’s assumed, the statement was not supposed to sound negative, rather to suggest

a simple design makes service and maintenance child’s play.

The use of KISS in programming can be considered in three aspects:

1. Simplification for current and future cooperative development of your code. From my perspective, this is nothing but the skillful application of SOLID principles.

  1. Writing only enough code to pass a unit test, which relates to TDD and the first SOLID principle – Single Responsibility.
  2. Intuitive approaches to writing software, approachable and simply understood by everyone.

KISS alone sets no hard and fast rules regarding the implementation of code, as is the case with most SOLID principles, which are general guidelines for how to create SOLID code.

Let’s take a look at what makes something SOLID

Robert Martin, as previously mentioned, is responsible for establishing the 5 rules of SOLID:

Single responsibility
Open / Close
Liskov substitution
Interface segregation
Dependency inversion

Single responsibility pretty much speaks for itself. Each class or method should be responsible for one separate functionality. An example of breaking this rule can be seen in the code below:

In the example above, the rule is being broken by the fact that the Person class “exceeds its competences“. Its only responsibility should be to represent the person’s object and its properties, such as: name, age, address (preferably also as a separate object).

It is definitely not supposed to validate an e-mail address, postal code or add a product to the shopping cart.

Repairing the errors listed above and adapting the code to the single liability principle is as follows:

Applying the KISS principle is closely related to the TDD approach.
In order for a correct unit test to occur, one singular liability should be envisioned for it.

Open / closed, i.e. open to extension, closed for modification.
According to this principle, each method should be written in such a way that it can be easily expanded upon or overwritten, yet impossible to be directly modified.

What this means in practice is presented in the following examples.

Let’s start with the rule broken below:

Why is the code above breaking the Open / Closed approach? Because adding code to calculate an area, of e.g. a triangle, would require the direct modification of the area method from the Calculator class.

So how should the calculation of the area of a shape be implemented correctly? An example is shown below:

As you can see, to add a shape with the possibility of calculating its area, just create another class that inherits from the Shape class and define the calculation of the area method inside of it.

These first two rules are simple to use in any functionality, even small ones. Applying them, we can write code that will be easy to read and able to be interpreted by other programmers, as well as simple to extend.

At this stage, we’ve fully met the first principle of SOLID.

The next three rules are used in more complex solutions, or in other words, in extensive logic.

The third rule is Liskov substitution, which states that the interface, the abstract class and all methods of the derived class must remain 100% compatible.

What does this mean in practice? Accordingly, with the principles previously described here, this will be presented in two examples: broken and applied.

Typically, I present the incorrect variant first:

At first glance, everything is fine, there is the Animal class representing the animal and the  inheriting Dog and Fish. So what is the problem? In the method enforced by the interface, the dog runs and it makes sense, but nobody has ever heard of a running fish.

This rule therefore is more of a reference to pure logic. The next example shows the correct application of it. It implements the logic of the tool which is most important for a programmer – the coffee machine:

Coffee is always brewed in the coffee machine, regardless of its type.

The next principle is Interface segregation.

A very good description of it is the following sentence: “many client-specific interfaces are better than one general-purpose interface”.

In practice, this means that the interfaces created should be dedicated to only one functionality.

An example of breaking this rule is as follows:

In the example above, the print logic of various reports has been implemented. An interface was created with two methods declared: to print PDF and Excel spreadsheets. However, for the results of the school exam, you do not need an Excel spreadsheet.

In this case, this method is redundant, but since it’s forced by the interface, it must be executed. According to the principle of Interface segregation, a better solution is the declaration of several specialized interfaces.

To rectify the problem, we could create two separate interfaces: Printable PdfInterface and Printable ExcelInterface.

The last principle SOLID provides is Dependency inversion. It says that all dependencies should depend as much as possible on abstraction, not on a particular type. It sounds complicated, but it really is a very simple principle for declaring functionalities in a way that operates on the most common types of data.  This essentially makes the code universal.

The following examples illustrate this well.
Breaking the rule:

Application of the rule:

The above principles should be treated as a set of tools for writing good sound code. However, it is not necessary to apply all these elements in every project.

Programmers should adapt this tool to the individual needs of the application. Intuitively, in a small project, we will not apply the last three principles, but the first two are definitely worth sticking to, even when building smaller functionalities.

From my own experience, I know that code written with best practices from the beginning is much easier to develop.

Good luck!

 

Related Articles:

5 Reasons Why It Is Not Worth Rewriting IT Systems From Scratch

 

How to Implement an IT Project Nicely, Easily and Pleasant?

 

What affects the final cost of a Magento platform?

If you own a store, development is a continuous investment. In a brick-and-mortar shop, you have to consider the location, the interior design, the atmosphere and how to attractively display a wide range of products and promotions. In the same way, an online store needs to consistently put technological development first.

In e-commerce, technology should be seen as an investment which puts customers and service maintenance in the forefront, ultimately allowing for the business to remain competitive in its market. In the end, that’s what will determine the success of the business.

Remember, investing in an e-commerce platform pays in the long run, allowing your business to not only catch the competition but pass them by, with the flexibility to respond quickly with new solutions to an ever-changing market.

So what really affects the final cost of a Magento e-commerce platform for your online shop?

 

A Magento team that can get the job done! … the costs

 

Magento technology is an Open Source technology, which is available free of charge.   Still it requires an experienced team of analysts, graphic designers, ux designers and programmers, who will be able to line up functionalities for your online store.

An experienced team not only has the technological solutions to your web store needs, they’re a business-focused partner that can offer functional IT solutions to increase your e-commerce platform’s efficiency and profitability.

An experienced team can work hand in hand with you to minimize project risks by quickly assessing potential threats and finding the best work around. The relationship is ultimately a joint effort to see your company’s market success.

A team of experienced professionals provides more than just graphics, programming, project planning and execution, it can help you select the functionalities that will help set your site apart from the rest.  In the end, it’s not just the implementation of a project that makes it successful, it’s the proper maintenance and selective technological upgrades that will define it.

A team like this surely has a price, regardless of whether it’s a team inside your company or a reliable contractor, these services are expensive and affect the final cost of your e-commerce platform the most.

Retaining your own team of programmers to be available to focus on your IT projects is a convenient solution.  However, maintaining this kind of team costs more than cooperating with an external IT firm. An external partner allows you to dynamically adjust the labor needed for each project, and frees you from having to plan projects and train, motivate and recruit those employees.

 

What are the underlying effects of technology that go unnoticed by clients?

 

Browsing products, selecting them and completing the purchase are common procedures in an online shopping experience.  However, narrowly defining what makes an online shop an online shop is a mistake business owners sometimes make. Our role at WhiteLabelCoders is to be a partner that utilizes technology to create not only an online shop, but a multidimensional system that:

→ is the basis for fast and efficient operation of an e-commerce platform, both today and in the future

→ is a place where customer satisfaction is a constantly evolving experience

→ is a way to be competitive in the market and foster an environment for generating real profits

The value of such a well developed platform, such as Magento, boils down to more than just the number of functionalities added to an e-commerce site.  It’s important to develop this platform in a way that caters to a breadth of business areas, guaranteeing financial success.

This is the description of a project’s scope involves gathering answers to critical questions about the size and scale of the business, in turn leading to the creation of technical documentation describing the functionality of your store and defining your business practice.  Some of the questions WhiteLabelCoders often asks during one of our day-long workshops are:

–   what is the business’s target group?

– are you going to use any modules from the existing system? what elements of the old system need to be migrated?

– how many products will the shop offer?

– should any product groups be singled out, e.g. products with a large profit margin?

– where are stock levels (ERP) managed?

– does the platform need to integrate with other systems (what systems)?

– what is the relationship with shipping services like?

– how do you want to arrange order processing, invoices and automated notifications?

– which parts need to be automated and which do not – what are the payment methods?

– what is the reach of the business (local, global – language versions)?

– what sales and marketing tools does the business need  (promotions, mailings)?

– what content is on the platform (product description, tips …?)

With a thorough description of the desired functionality for your online shop, we can use the technical capabilities Magento has to offer to fulfill your business needs. We help you justify the costs of taking on a new e-commerce project by utilizing complex technological solutions that allow you to simply reach your business vision.

 

Testing, implementation, and training

 

Testing the scope of the project is not a separate stage, rather an ongoing feature of the project that receives added attention leading up to the launching of the final version. Depending on the size of the e-commerce platform, testing before implementation can last from several days up to several weeks. At WLC it’s performed by dedicated testers.

 

 

In the first two stages, testing takes place in a closed environment where final decisions on the Magento platform can be made.  Following that, customer traffic is redirected to the new online shop. This approach reduces the risk of errors that come up when so many programmers’ responsibilities overlap on a single project. During testing and implementation, we also organize employee trainings, consultation and support for your staff.

 

How do you choose the best host for your e-commerce platform?

 

A Magento online shop is a complicated system that needs adequate hosting to work properly. The basic requirements include adequate data transfer speeds, scalability of platform solutions, access to testing environments and automatic system backups. The most commonly recommended hosting solution for Magento platforms is Amazon Web Services (AWS). 

Amazon Web Services is a leading provider of cloud-based hosting services. It can help you optimize your Magento store by increasing both the speed and efficiency of your website. Slow loading websites, payment violations and crashing will adversely affect your current business, as well as, scare away potential customers.

With AWS, it’s assured that your Magento store will be able to cope with your business’s ongoing  development – and grow with it.

 

Get to know all the advantages of AWS

Reliability – access to your shop is guaranteed 99.95% of the time

Affordability – only pay for the services you use

World Class Quality – the best database infrastructure available

Security – built-in firewalls, encrypted data storage, and private subnets

Scalability – it easily adapts to your changing business needs.

 

Hosting costs are also part of the design and maintenance of an online store. In the long run, selecting the right provider will prove to be one of the most important decision you make.

Continued Platform Maintenance

 

The ongoing operation of e-commerce platforms involves an increasing number of products and customers, active sales support mechanisms, parallel platform optimization, server adaptations and changes in functionality.

Platform maintenance guarantees the organic development of new functionalities and optimization of the operating system.  This process allows for a business to respond to its customers and confirm its initial aims.

This is why the completion of a Magento project doesn’t end when the store is opened to the public. Rather, it’s an investment that requires the owner to consistently improve customer experience, so that the businesses sees growth in both profitability and customer satisfaction.

 

Related articles:

Which Magento Version is Right for My Business?

 

How does Magento guarantee the success of e-commerce?

How do you build relationships that foster business success in your IT projects?

The IT project that your business relies on, is a unique project – this execution requires more than just knowledge of working methods, specialized analysis, graphic designers and programmers. It also calls for business experience, which WhiteLabelCoders has built over the years through their cooperation with a range of clients from around the world.

What should our clients know before working with a software company? How does WhiteLabelCoders support their clients throughout the entire production process, assuring them that the project ultimately leads to financial success for both parties?

Let’s analyze an IT project through the lens of partnership and cooperation.

What should clients know before they start working with a software company? The principles of clear communication …

Both partners, the client and the contractor, must adequately prepare for the project and understand their role in the project. This includes defining the terms of cooperation, means of interaction, methods for communicating and reaching a fair settlement.

Without strong cooperation between partners at every stage, the project will ultimately fall apart!

Today’s standards for IT projects include the expectation of transparency, allowing clients to follow a project as it progresses. As a company with experience, WhiteLabelCoders has a proven platform which we always recommend to clients.  However, if a client has their own preference, we are happy to defer to their platform of choice. From the moment the first visible effect reveals itself, our client has a developmental version of the project available to follow and comment on.

This approach provides the client with regular opportunities to track the progress of the project, to report changes and make suggestions, on an ongoing basis. This access gives clients the comfort of knowing our production team is efficiently moving forward. Ultimately, we can then decide together how to move the project forward in a way that meets the customer’s business needs. The client confirms each stage of the project, which minimizes the risk that the project falls short of the client’s expectations.

Good practices in communication on IT projects, which have proven to be effective with our clients, are simple:

→ the client’s availability for communicating requires answering questions within 1-2 days, which in turn translates to measurable results.

→ communication must be limited to one channel, so as not to lose information, waste time searching for threads and efficiently receive key information. Do this, and the project will avoid all the chaos.

→ designate one decision-maker on the client’s side, and possibly two stand-ins but no more. Decisions will ultimately determine a project’s success.

How WhiteLabelCoders supports a client’s success throughout the entire production process, i.e. What goes unnoticed to the naked eye…

On a daily basis, WhiteLabelCoders teams’ consistent cooperation and strong communication allows them to perfectly manage each project, thanks to the following working methods:

We share experiences between the WhiteLabelCoders teams

Thanks to our project retrospectives, we learn from each others mistakes and build know-how that allows us to carry out our clients’ projects in a progressively more efficient manner.

We plan ahead

Planning tasks kicks off the beginning of every week. However, each morning, we briefly consolidate the current status of every project, allowing us to quickly respond to any sudden need or crisis with the appropriate resources; our teams resolve problems on a daily basis.

We provide the highest quality services

We not only build our knowledge and experience through daily meetings, but also via monthly MeetUp’s and professional training, in order to extend the best business friendly solutions to our clients.

WhiteLabelCoders project teams typically have a Product Owner which supports the client during the execution of IT projects, making arrangements with the client, implementing the project\s established aims, facilitating communication within the production team, assessing the risk of delays, consolidating project details and documenting the entire process.

How is a project’s success defined?

There is no one objective criteria that has to be met for a project to be successful. Success can relate to a project’s budget, scope, time, how each party fulfills their role… Additionally, the success of a project can be defined by the level of satisfaction with cooperation and communication.

Looking at our project history, the Agile method has proven to be a success with our clients.  This approach is based on a cooperative relationship that relies on ongoing approval for project changes, with the understanding that changing the scope, time and even the budget is a part of a project’s natural evolution.

If our clients are satisfied with the end result and meet their projected profit margins, then budget, scope and timeframe become a secondary concern.  All of this only has the chance to happen when both sides are willing to dedicate effort and time towards effective communication.

Ultimately, however, the completed project will verify it’s success in the business and show what value it has to the customers.

In the end, the project itself will prove it’s worth to the customer, through their financial success.

 

 

Related articles:

5 Reasons Why It Is Not Worth Rewriting IT Systems From Scratch

 

How to Implement an IT Project Nicely, Easily and Pleasant?

Are You Ready for a Progressive Web Application?

Progressive web applications (PWA) have really changed the way we use the Internet today. Push notifications, offline websites and extremely fast load times are just a few of the features that are used in progressive web applications, with users appreciating these improvements every day.

 

Progressive web applications are also a popular topic at technology conferences, especially those organized by Google. PWA development is the result of hightened interest in providing users with richer experiences and better functionality, which were previously reserved for native mobile applications downloaded from app stores.

 

What is a Progressive Web Application (PWA)?

 

A Progressive Web Application is a connectivity independent browser-based application that mimics a website, but shares the functionality of a mobile app. It looks like a website, it’s run like a regular website, but it feels like it’s a mobile or desktop application. Technically speaking, PWA’s provide a special manifest which includes an application icon address and must remain operational while off-line to some extent, to safe-guard against the event a user experiences poor connectivity or loses it all together.

PWA’s are a competitive solution for mobile applications, and a completely different proposition for users.

In the case of mobile applications, users download applications from stores, register them and use them while connected to the internet. In the case of PWA’s, internet connectivity is only necessary to initially enter a website or related web pages, but internet connectivity is not needed to use them to engage particular functionalities.

 

Why are PWA’s becoming more and more popular?

 

The ability to take advantage of mobile application functionality through an internet browser, without the need to access internet connectivity, is a new, satisfying and hugely advantageous development.

Thanks to PWA’s, the sudden loss of internet access doesn’t disrupt the use of developer defined functionalities. This means that data entered just before losing connectivity, is not lost, and when the connection returns the user can pick up where they left off.

PWA’s are not associated with the operating system of a device. They don’t require using app stores at all. Additionally, PWA functionality and availability is not determined by Android or iOS operating systems, which is common among mobile applications. Just enter the url in your browser to gain access. PWA’s even appear on the device like a typical application, allowing full range access to on-screen content if the user elects to hide their browser bar.

 

How can a Progressive Web Application support your business?

 

Thanks to PWA technology, user behavior remains virtually unchanged by addressing their needs are in real time, eliminating restrictions related to

→ access to internet connectivity

→ access to functionality.

 

This has a positive effect on business growth.

 

Cheaper IT production costs
Choosing PWA technology allows for IT projects to be compatible with user every device, regardless of their operating system or browser preference.

 

Larger conversions for e-Commerce
If during an online shopping experience a customer loses connectivity, a PWA saves the most recent action in the browser application. Whether the user is adding products to the shopping cart or is already at the point of completing the transaction, the shopping process picks up at the point where the user left off once network connectivity has been restored. This functionality simplifies and stabilizes customer experience on the site, which directly affects the number of transactions.

 

AliExpress is a popular e-commerce website, which belongs to the Alibaba Group. These industry frontrunners have already adapted Progressive Web Applications to their mobile site.

 

However, before AliExpress utilized PWA technology, their focus was on promoting application use, which failed to bring the expected results. At the same time, their online store’s website didn’t provide the same level of customer satisfaction on mobile devices.

 

The following statistics give some insight into the amazing results that followed the implementation of a PWA solution for this business.
→ 104% increase in conversions for new users.
→ 2x more pages visited per session.
→ 74% increase in time spent per session.

 

 

 

 

Bigger coverage and involvement for content sites
Internet websites, which base their business model on displaying advertisements, build greater reach and user involvement thanks to PWA’s (time = time of the session and corresponding activity). Users of PWA affected websites can view pages and advertisements even when they do not have internet access.

All you have to do is download one website, and links from this page (other websites, links under icons) can also be downloaded to quickly load your content.

Once a PWA site is accessed, links from this page (other websites, links under icons), as well as other content, can also quickly be loaded.

Thanks to this advantage, advertising partners are more willing to invest in marketing with a website that has strong customer loyalty.

 

In 2017, Twitter implemented the Progressive Web App “Twitter Lite” as the default setting on mobile devices for it’s world wide usership.

By utilizing PWA technology, Twitter wanted to improve the quality of their mobile network, making it faster and more engaging, especially since many Twitter users were in areas with slow and unstable internet connectivity.

Thanks to Twitter Lite, websites are loaded instantly, and the amount of data loaded is reduced by optimizing images and using cached data. User involvement has increased thanks to push notifications and installing Twitter Lite icons on the home screen of their mobile devices.

Here are some key results from Twitter Lite:
→ 75% increase in sent Tweets.
→ decrease of the bounce rate by 20%.
→ 65% increase in pages per session.

 

Progressive Web Applications in the experience of the user are:

 

→ reliable – they are efficient, they load instantly and keep you from having to deal with Google Chrome’s pet Dinosaur 🙂
→ fast – up to 53% of users leave a website, if it takes more than 3 seconds to load! Progressive Web Applications solve this problem, because page loading is almost instantaneous *
→ engaging – the use of functionality typically reserved for traditional applications allows for greater user involvement and activity, even when internet connectivity is poor or even absent. Notifications (push notifications) operating in the application don’t let you forget about initiated activities, encouraging users to continue, even when the browser is minimized and the user device (eg tablet, phone) is muted.
→ conserving data – one major advantage of PWA’s is they can occupy from several to several dozen times less space on a user’s device than a mobile application.

 

The application development market is definitely aimed at shifting more and more mobile applications to the browser environment. For years, WhiteLabelCoders has been cooperating with partners from all over the world in the field of custom web development and Magento technology (Magento Peregrine containing components for creating Magento – PWA technology and is coming soon). Including PWA technology in the toolbox of our team of specialists allows our clients dependent on business based IT systems to take a big step forward, too.

 

 

* Jeremy Wagner, WebFundamentals 

 

 

Related articles:

 

Progressive Web Apps are now supported on the desktop!

 

Is Magento PWA ready yet?

 

11 Examples of Progressive Web Apps

 

5 Awesome Progressive Web Apps Worth Exploring

5 Reasons Why It Is Not Worth Rewriting IT Systems From Scratch

When clients are seeking IT services, they are usually in one of two situations: They have a new business idea based on an IT system, or they currently have this type of business and the system is seriously suffering.

In the first scenario, there is no dilemma over whether anything should be re-written, because nothing exists.  Just determine what technology to use and proceed.  However, the real conversation revolves around a business that has an established technology requiring a number of IT solutions. Buried in the details are the answers to how a system optimization solution beats out starting over from scratch.

 

Stage Zero, when everyone is unhappy…

 

When an IT based business runs aground due to technological problems, deciding how to approach IT solutions is basically a business decision.

A poorly operating system is a poorly operating business, leading to slower growth and damage to a business’s image.  Not only is this frustrating for the owner, but the failures of the system affect the daily routine of employees and customer satisfaction.

No business owner running on an internet platform or other IT solutions will “close” the business for weeks, or months, to create a completely new system from scratch, just sitting  and waiting for a new solution. What about their existing customers? What about cash flow? What about the employees who support the existing system?

 

Stage One, when the decision is made …

 

In every faulty IT system you can find healthy elements which are essentially holding the business’s head above water. A strong team of developers can optimize such a system step by step, developing new functionalities based on modern technologies and innovative  solutions.

Here’s an example.

Computer Repair Doctor, a network of electronics repair shops, used an IT system to organize their repair orders. The system was old, and emergency maintenance was expensive.

When we began cooperating with Computer Repair Doctor, their IT system was consistently reporting errors, built by two different companies and based on outdated technologies.

After our initial cooperation, we offered to shift the system to a new framework.  This involved diagnosing the elements that worked correctly and setting a manageable schedule for updating the system with new functionalities.  Our partner whole-heartedly agreed to accept the plan.

 

Stage Two, when you see improvement…

 

Before even seeing improvements in a system’s operation from the customer’s side, it’s worth communicating proper expectations. When customers fully understand the improvements, the deadlines and our dedication to fulfilling them, the easier it is to accept the changes.  Or even better, they will come to expect them.

Systematically adding new features allows users to gradually test functionality and work it into everyday use.  Changes  leading to improved efficiency in the system can then be experienced much earlier than in a system built from the ground up.

What’s going on at this stage of the project at Computer Repair Doctor?

After addressing the old system’s most critical errors and installing new functionalities in the new system’s architecture, our partner’s employees began using two systems. The systems  shared the database in parallel, in terms of the most important functionalities (eg login and views). The systems were also integrated in a way that couldn’t be noticed by the user. By adapting the system for new technologies and adding new functionalities, 90% of the initial scope was reached within two years.  This avoided exposing the business to crisis or engaging their partner’s employees in the long and tedious task of testing the new system.

After passing the critical point of upgrading 90% of the system with new technology, we decided to rewrite the remaining 10% of the system as soon as possible.

 

Key points to remember when carrying out similar projects:

  1.   Code compatibility – be sure new modules are written in such a way that the previous elements mesh with the system.
  2.   Module adaptability – if old modules require major changes, systematically rewrite their code to cooperate with the new technology.
  3.   Update fragmentation – avoid big changes, by introducing smaller updates at a higher    frequency.

 

Stage Three, when everyone is happy…

 

Currently, the system is working flawlessly for both the client and the employees. From the very first moment the customer enters the repair shop, data regarding the customer’s hardware and it’s issues are reported to the system. Furthermore, the system delegates tasks to employees regarding the repair of equipment, checks and supplements stock levels, saves notes related to the repair process, and finishes the service by handling transactions. Additionally, the owner of the system has access to extensive reports, which he wasn’t receiving from the old system.  This has lead to better organization of team workflow and more efficient management.

The decision to go with system optimization instead of a total ground up approach allowed for partners to utilize the system trouble-free, giving ample time to migrate the new functionally expanded system architecture into place.

Both our partner’s customers and employees, received useful and innovative functionalities pre-tested and ready for everyday use, without the shock of losing a familiar work environment.  By cooperating with us during the production stage, our partner was able to make important decisions regarding the system’s development, budget, and project deadlines.  Ultimately this processes built trust, assured a good working atmosphere and a satisfying result.

 

5 reasons why it is not worth rewriting IT systems from scratch:

 

  1. Starting a project from scratch, requires launching a project as technologically advanced as the previous one, which assuredly will cost more time and money with the added pressure of delayed results.
  2. There’s a risk that the project you start with may not be the one that you end with. You won’t know the results until it’s finished.  These project are susceptible to a number of unforeseen risks, including employee turnover affecting the project outcome.
  3. The current system has occasional problems, but is still on it’s feet. It still functions as it should a majority of the time, so your business is not exposed to a total crisis.
  4. Employees don’t always take kindly to new systems.  The reluctance to change systems from the effort needed to relearn what they already know how to do.  Additionally, continue to use a broken system while waiting for a new one can be frustrating.
  5. And in todays world of business, technology changes so quickly that what starts out cutting edge may be outdated by the time your finished system is up and running.

 

Related articles:

Read more about Computer Repair Doctor

 

How to Implement an IT Project Nicely, Easily and Pleasant?

An Inspiring E-commerce Conference in New York

It’s been almost two weeks since we participated in the Meet Magento conference in New York.

 

As always, this kind of event allowed us to stay up to date with the cutting edge technology and trends in the industry. Which in turn gives us new inspirations and knowledge we can use for the benefit of our clients.

 

Big thanks to the Magento Community and event organizers, who managed to invite a lot of great speakers. The conference gathered over 450 participants from the Magento world, including both merchants using Magento as their primary e-commerce platform, as well as agencies and vendors who provide a wide spectrum of services to these merchants. This turned the event into a perfect networking event as well.

 

Certainly an important information from side of Adobe representatives is that Adobe, after acquiring Magento platform, has no plans to reduce or cease the further development of Magento Community – open-source version of the platform. Their focus will be on integrating other cloud-based Adobe services into Magento core, but they will continue to support the strong global community, which remains one of the most important advantages of Magento over the other competing enterprise-grade e-commerce solutions.

 

On side of most important industry trends, optimization of general user experience was mentioned on many talks as the primary way to increase conversion ratios and client’s loyalty. This includes, amongst other, providing relevant product search results.

 

Also continuous search for speed optimizations is strengthening the progressive web app (PWA) trend. This approach, however still rare and costly, can ensure page load speeds, which are unachievable in a traditional website architecture.

 

It’s great to see that this trend is actually led by the other Polish company – Divante. On the Meet Magento New York they officially announced premiere of their Vue Storefront Cloud. Congratulations, and keep it up!

 

Although we still enjoy memories of our trip to New York and the Meet Magento conference, we already look forward to attending the Imagine 2019 conference in Las Vegas, the biggest Magento event planned next year.

 

Hope we’ll see you there!

 

Related articles:

Which Magento Version is Right for My Business?

 

Why You Should Choose Magento for Your E-commerce Platform?

 

Which Magento Version is Right for My Business?

Currently, e-commerce companies considering the possibility of upgrading to their Magento 1 platform to Magneto 2, are taking a step in the right direction and gaining an advantage over the competition. Magento is rapidly solidifying it’s placed in the e-commerce market, with about 30% of all e-stores operating on a Magento platform, according to aheadworks.com, and their popularity is growing. Rapid changes in technology have not overlooked this industry, and the need for platform development is an inevitable truth.

It’s time for a change – do not let the competition pass you by

Sooner or later, Magento 1 will lose the ability to take advantage of the new modules and functionalities that grow your revenue. If you don’t plan and budget with the vision of adapting to changes in technology, the professional businesses that are shifting onto a Magento 2 platform will leave you behind. Migrating on to a new platform takes foresight in order to stay one step ahead in this industry. The first to start the process has a leg up on the competition. As their competitors are stuck in the development stage, their business is moving forward, growing revenue and gathering a valuable share of the market.

According to licensing, Magento’s technical department is required to inform customers about their plans to shelve the Magento 1 platform 18-months in advance, with support expected to last until June of 2020. However, waiting for notice of the day Magento 1 becomes outdated does not stop the market from continuing to innovate, it only delays the planning, budgeting and decision making processes involved in migrating to the new platform.

With the loss of support, Magento 1 becomes dangerously vulnerable to hacking, as security updates (patches) will no longer be offered. This lack of support also means the loss of access to the new functionalities and competitive options which drive the market, significantly burdening your business.

Upgrade to Magento 2 and experience it’s benefits today

The Magento 2 software has a completely different architecture, which lends to your business flexibility and opportunity that the older platform cannot. With this migration, we are not talking about just an update, but actual changes which improve the speeds of your online shop and simplifies your purchasing process. Database scalability has been optimized to handle even heavier traffic. The administration panel has a brighter, simpler and more intuitive design. And most importantly, solutions for the mobile version have been prioritized along with an omnichannel strategy, allowing for both online and offline purchasing.

The transition from Magento 1 to Magento 2 is not just a simple migration, it’s the creation of e-commerce functionality based on a new solution requiring a series of activities, such as analyzing the key functionalities to be implemented in Magento 2.

Technical change or redefinition of a business?

Whether your business needs to change it’s platform for technical reasons or just because of new market trends, it’s worth asking if I have the right team of developers for this process, a ready plan, a budget, and whether my business needs to be redefined.

It’s worth confirming the strategy of e-commerce activities before the migration process takes place,   this way the reconstruction of the online store also implements the business strategy. This migration is a process which permits the introduction of corrections and new solutions, also allowing you to create a newer, better and safer store. It’s also worth remembering the client in this entire process, take proper care of them, in the end, it’s they who will interact with the site and determine their customer loyalty.

 

Related articles:

An Inspiring E-commerce Conference in New York

 

Why You Should Choose Magento for Your E-commerce Platform?

How to Implement an IT Project Nicely, Easily and Pleasant?

Nowadays many commercial companies create an IT product that becomes the basis of business. An example is the Yearful startup (London, UK), who created a calendar for planning the whole year and setting milestones in it.
There are also many organizations that are very successful in the traditional market and, to increase profits, create a new sales channel in the network. This was done by Computer Repair Doctor (Florida, USA), which implemented an online system for operating a franchise network of laptop and cell sites. In turn, SRTime (Katowice, Poland) specializing in consumer electronics has created an online system for managing and monitoring the work of heavy equipment on construction sites.

Each of these companies is therefore looking for a professional service in the field of providing dedicated software that exactly addresses needs of a growing number of clients. It’s easy to find the right software company by command or online – a company with experience and an interesting portfolio of satisfied customers, who will undertake an IT project for the client.

But how to realize such a project nice, easy and pleasant?

We present the answer to this question based on our many years of experience in the industry and the implementation of over 600 projects. And that’s a lot of experience.

A well-executed project is …

A client who talks with our company about the implementation of an IT project has no programming knowledge. He knows perfectly well what the business problem is. A well-executed IT project responds to the client’s need by presenting the appropriate quality of production, is carried out within the assumed time and budget. Speaking colloquially, “he does what he has to do. And nothing more”.
In order for the IT project to be successful, it is necessary to run six elements in parallel and correctly, which we will present below.

 

1. SET THE SCOPE OF THE PROJECT

You go to the car dealership. You cross the door and find the seller, immediately happily informing him that you want to buy a car. What did the salesman just hear? That you’re open to suggestions, maybe Mercedes will please you, but actually Bentley would not be angry. But only when he meets your needs, expectations and financial possibilities, will he be able to present you with an adequate offer that has a chance to meet your expectations.

The software development is exactly the same.

An IT company with experience in the implementation of custom projects knows the methodologies that allow the creation of a professional design specification. At White Label Coders, we offer our clients the use of Agile’s User Stories method, which consists in listing the functions of the created system from the perspective of roles that will occur in it: users, administrators, accountants, brokers, sellers, consultants, etc.

Thanks to this approach, it is easy to create a list of business priorities in the project, and then focus on their implementation. Jeff Sutherland in the book “Scrum, or how easy it is to do twice as much twice as fast”, states that when creating software, the rule is confirmed by decades of research that 20% of software functionality creates 80% of its value. ”

Why is it important? The essence of a good IT project realization in my opinion is the fact that the project “does what it is supposed to do”. So we need to know what we want to be able to deliver.

 

2. ALLOCATE RESOURCES FOR THE PROJECT – BUDGET

What budget will you spend on the project? A reliable company will always ask about it, because such knowledge will allow it to carefully prepare appropriate proposals.
If the client’s defined budget is modest, then it is probably difficult to provide a custom solution and focus on finding available “boxed” solutions.
If the client says simply: “Now I spend little money, then more”, the programming company should set the priorities in the project in such a way that in the first stage, the elements with the highest business value can be realized so that the return on investment is realized as soon as possible and the project started earning.
In turn, the client who “now has the money, and then he will see …” will put on the order of the priorities, so that the business value will be delivered as soon as possible.
At White Label Coders we have decided that we do not enter into cooperation if our client declares openly that he did not allocate the budget for the implementation of the custom project.

A rigid budget can also be a bad idea. Therefore, it is common practice to set the priorities and settlements based on hours worked by analysts, software engineers, UX designers, project managers, and testers during the project. At the stage of preliminary talks and creating the concept of an IT solution, the specification never describes 100% of the functions.
Also in the course of implementation, simple topics will get complicated and difficult ones will be underestimated.

 

3. YOUR TIME IS ALSO A RESOURCE IN THE PROJECT

How to find time to cooperate with a software company – this is a question for you 😊

At the stage of defining the scope of the project, it is difficult for a software company to work when you do not know the answer, and you know the needs and habits of the project recipient best. That is why they want to ask thousands of questions, consult ideas on an ongoing basis and have the opportunity to hold meetings to constantly provide business value.
Therefore, it is worth taking the time (decision-maker in the company) and constantly cooperating with the software contractor, verifying the effects of his work, give clear feedback to get a satisfactory solution and the effect at the highest level of quality. This is a critical element on which your success depends.

 

4. ASSUME THAT THE ORIGINAL ASSUMPTIONS WILL CHANGE

We start with the concept of IT project implementation, determined by the company and confirmed by the client. And really everyone has a good will to implement the original concept, and here …
The situation of your company changes, important external conditions bring new premises concerning, for example, functionality in the project that will determine the success of the project, and have not been known before. Then the original concept seems insufficient.
The topic may be much more difficult to implement than everyone expected.
So there is no point in implementing the project according to the original concept, but it should be verified and adapted to the realities of the situation, verifying all previous stages of the project and updating its scope, dates and budget.

 

5. AGREE ON THE PROJECT IMPLEMENTATION DATE

Framework dates of the implementation of an IT project can be determined based on the set scope of the project and human resources delegated to its implementation, but they can be confirmed only after the commencement of programming works and during the works. It is worth dividing the project into stages, and the implementation of individual stages on time, resulting in the delivery of constantly increasing business value, also favors the completion of the entire project on time.

 

6. EXPECT GOOD QUALITY OF PROJECT MANAGMENT AND GOOD QUALITY OF DELIVERED SOFTWARE

The client who orders an IT solution in our company works with the best team of specialists who know each other.
We implement IT projects using agile methodologies. In everyday practice, we use Scrum and Kanban elements. Thanks to this, we provide good quality of the final IT product dedicated to the client. And this is a system that does exactly what to do and nothing more. As in the defined range.
Each system can be extended indefinitely, but then we risk that we will not meet with the accepted scope, and the project will have no end.

That is why it is better to start new projects with a proven programming company and build more value for the end customer with a company with whom you will stay in a partner relationship until the end.