This article starts our new series of case studies, in which we’ll analyse the projects that we’ve carried out and present a sure pathway leading to their successful implementation. Want to build a custom multi-vendor webstore? Look no further – we’ll guide you through all stages necessary to bring your project into life.
Apart from fixing various issues our team also specializes in building new stores on Magento as well as installing and modifying modules. Recently, a client contacted us, because he wanted to build a platform where vendors could offer their products and services from various sport disciplines, ranging from horse riding to golf, etc. The vendors were to be able to set up their shops within one of several sport categories using an extensive backend panel enabling them to customize their pages within a given framework. Customers, on the other hand, were to have the possibility to create their own accounts on the portal, purchase physical products, and book and buy tickets for sport events or sessions.
As in case of any complex project, the most important element is a detailed specification describing the general concept of the store as well as its particular functionalities, solutions to be used, and any extraordinary features. However, even though the client sent us an extensive brief, not all elements of the platform were described in detail and needed to be further explained and clarified. Therefore, if you’re thinking about a similar project, we recommend starting with an outline:
- write down a brief describing all the key features of the website,
- be as specific as possible in presenting your requirements.
Delineating the scope
After analysing the specification and providing the client with an initial price estimate for the project, we had several Skype consultations with him in order to determine the minimum value product and narrow down the scope to what was feasible within his allocated budget. To speed up the work, instead of writing the whole portal from scratch we decided to base it on existing Magento modules and adjust them to our client’s requirements. However, that part turned out to be a little tricky due to the quality of the modules – we had to fix some of them and customize others, so that they met the client’s needs.
What is necessary at the second stage of the project development is to:
- define the scope of the minimum operational version of the website,
- separate functionalities crucial for the website’s functioning from additional features that can be added later on,
- determine the optimum way of implementation – if you’re pressed for time purchasing ready-made modules may be a better solution than creating custom ones.
We adopted an Agile approach and divided the project into versions. Apart from the daily recaps that we always send our clients, at the beginning of every week we discussed the progress and work that had been done, and presented a plan for subsequent version and functionalities to be implemented. This way, we were always on the same page with the client and were able to report, discuss and solve problems as they occurred.
The portal was complex and elaborate, so most of the designs were custom-made. The client sent them to us on a regular basis and we reviewed whether they could be implemented without any foreseeable problems. Several times we suggested introducing changes, since some elements, which may have seemed trivial, would have required a huge amount of work and simple modifications enabled us to make implementation of a given view significantly less time- and money-consuming.
If the scope of the project is large and complex, we recommend to:
- split the assignment into smaller elements and use a step-by-step method to implement them,
- discuss the progress of work in regular intervals and introduce adjustments when necessary.
Since the scope of the project was very extensive and the client had many ideas regarding additional features, the key to success was focusing on the main functionality of the website. Once we developed the core functions and the website was operational, we could move on to other less important elements and add them successively.
However, there is also another valuable lesson that we’ve learnt working on this project. If we were to implement it again, we would have insisted on performing a more in-depth analysis of the modules, which were to be the foundation of the platform. Their quality turned out to be worse than we expected, which had an influence on the time necessary to implement them. Had we checked them more thoroughly, we might have saved some time spent on fixing and adjusting them. Clients often don’t see much value in preparatory work and prefer to focus directly on building the store, but, in fact, this phase can save quite some time and money.
Moreover, it’s also worth having in mind that it’s difficult to deliver everything exactly as the client expects the first time around when working on large projects. It means that some amendments will probably have to be made once the website is complete and operational. Therefore, we recommend the following:
- allocate some part of your budget for preparatory work, such as e.g. drafting the final version of the specification or checking the quality of any extensions purchased – don’t be afraid to ask for the result of such analysis, as it may turn out that it’s better to reconsider using a given solution or module,
- set aside some resources for the last amendments to put final touches on the website before it goes live – avoid the temptation to use that budget for adding one or two extra features and wait till you’ve fully reviewed the site.
Summing up, our experience with creating the multi-vendor platform described herein proves the common truth that the more time spent on planning and preparing the project in its initial phase, the less time necessary to complete it. Although it may seem that no actual development work is being done when discussing the brief and making detailed arrangements, this stage is actually crucial for the success of the project. Making sure that we fully understand the client’s requirements as well as making the client aware of any potential problems ensures smooth implementation and successful cooperation that is satisfying to both parties.