How to quickly launch a complex project?


    Three weeks ago we spoke at the RockIT Conf conference, which was held in Tallinn in the barcamp format. At RockIT, technical reports were replaced by rock bands, and an informal atmosphere reigned on the sidelines. The event took place in two days - the first was completely fighting, the second people dispersed and it was a bit sour. The organizers promised to hold the next event in St. Petersburg and take into account the mistakes of the first RockIT.

    We spoke about how to quickly launch a complex project, the prospects of which can only be assessed by the reaction of the public. We are supporters of real feedback, not expert opinions. The report was devoted to how sociate.ru , a project for the automated placement of advertising messages in VKontakte communities , was launched in the spring of 2012 .

    Much of what is written below can be safely put into the mouth of the Captain. Yes this is true. But! I myself am a techie and myself know how often we are fond of some technical fit, cool refactoring or the introduction of new technologies. In 90% of cases, the user does not know about it, especially if the project is new.

    A new project needs new functionality, new users and new experiences. Already when the concept is tested, the audience has gathered, and the project is alive - we throw out the rasp and pick up a null, polish it to a shine.

    * once again, so that there is no war in the comments - the approach described in the article is not always suitable and not for all projects

    The first and probably the main thesis is that the project should work from the earliest possible stage. It is not necessary to put it in public. In May 2012, Socialite opened only for friends and worked for a month in this mode. It was unlikely that this was the best experience in their life, but thanks to the difficulties that our friends overcame, the first real users were satisfied with the service at the time of the public opening.
    The best option is when you yourself are a user of the project, at least to some extent. If you don’t need to use your project, be sure to find a real user, so that there wouldn’t be like this .


    When implementing the first version, alpha beta, prototype and candidate release, keep in mind that you are doing a good project, not a universal library for implementing everything. Most of the problems have already been solved before you and you need to use the experience of generations, and not sculpt your bike. Write only the necessary functionality that cannot be obtained from existing code.


    Some time ago, the term “mashup” was popular, meaning a hodgepodge of technology that gives birth to new values. Now the end result is on a mix of google maps and, for example, Wikipedia can be found rarely, burned out. But for the technical side - this is as relevant as possible. Github, stackoverflow, google and go!


    If suddenly a solution was not found in Google from the first call - this may be a sign that you are doing something wrong and you need to rethink your desires a little. One extra request can save a couple of days.


    That is how we started work on Socialite, while developing buruki.ru , it was such a bootstrap inside the company. Over a year with a little, we have grown to an independent project, but already at the start, the luggage of the necessary functionality was serious - billing, working with a large set of external APIs, a complex backend and a developed admin panel.
    If all this was sawn from scratch, only for our needs (it would be very specialized and 100% met our requirements), then in a month and a half we would not have a finished project, but a developed tracker, excellent hit flow and a long way to the result .


    All web studios have their own CMS, certainly the best, certainly native. And on it they make their sites. Starting a project, if the result is important, not the process, is not the time for new technologies. Take what you know well, what your colleagues understand and what it will be easy to take off with. In our case, these are Django, Python and their infrastructure. Infrastructure is perhaps the most important. So again not to write too much.


    For all critical operations, it is better to take proven technologies, even if you need to pay a little money for them. The result is important to us. We could make our way through spam filters, gray lists and more, but this time is better spent on satisfied users, and not on soulless mail robots. Use good third-party solutions - they give time to think about the important.

    From the first day we needed billing, users post ads through sociate, and it’s not free. To run, we chose the maximum user convenience, even if it involves some (not very comfortable) commission. Using a payment aggregator you save on everything - on connection time, on integration time (usually the aggregator support is responsive, and there are libraries for popular languages), on the time of collecting different services in one place. Later, you can connect some of the most popular methods directly, reducing commission costs


    With internal billing on the service is a little more complicated. Then we ourselves made a mistake and started inventing our bookkeeping. Why this happened is unknown. It’s right to take and read the basics of accounting, posting, invoice, subaccount once. Red Storno. Then everything will be fine. And don't forget about transactions.


    Very often, a techie does not have enough people with a sense of beauty to implement the idea. Making a backend is usually not as difficult as a frontend. Bootstrap associates finally solve this problem, and in combination with the theme (for example, wrapbootstrap.com ) you can achieve a unique design with a minimum of effort.


    Probably the most controversial and most cruel question. But nobody seems to know better than the user what he needs. He sees the world a little differently than you. Roll out the functionality more often, keep in touch with the user, and as close as possible! No one will write you bug reports or report typos using CTRL + ENTER, the user needs a simple means of feedback. For buruki.ru, this is Olark installed on every page. For sociate.ru, this is a super-active group in VK , in which (bonus track) users themselves help each other.

    What is written above is scientifically called MVP - Minimum Viable Product, a project with minimally sufficient functionality. We came to this on our own and urge you to launch projects, and not to keep them in the far corners of hard drives!

    In the comments, we suggest discussing the pros and cons of different approaches, preferably from experience. And we will start ourselves.

    Also popular now: