
Three weeks ago we spoke at the RockIT Conf conference, which was held in Tallinn in the barcamp format. At RockIT, technical reports were followed by rock bands, an informal atmosphere reigned on the sidelines. The event took place in two days - the first one was 100% combat, the second one was sold out and was a little 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 for 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 was launched in the spring of 2012 - a project for automated placement of advertising messages in VKontakte communities.
Much of what is written below can be easily put into the mouth of the Captain. Yes this is true. But! I myself am a techie and I myself know how often we are into some kind of technical tool, cool refactoring or the introduction of new technologies. In 90% of cases, the user does not know about this, especially if the project is new.
')
New project needs new features, new users and new impressions. Already when the concept is tested, the audience has gathered, and the project lives - we throw out the rasp and take it in hands, polish it to 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 point is that the project should work from the earliest possible stage. It is not necessary to post it in public. In May 2012, Sociate opened for friends only and worked for a month in this mode. It is unlikely that it was the best experience in their lives, but due to the difficulties that our friends overcame, the first real users were satisfied with the service at the time of the public discovery.
The best option is when you are a user of the project, at least to some extent. If there is no need to use your project, be sure to find a real user, so that there will be
no such here .

When implementing the first version, alpha-beta, prototype and candidate release, keep in mind that you are doing a good project, and not a universal library for the implementation of 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 the existing code.

Some time ago, the term “mashup” was popular, meaning a hodgepodge of technology, giving rise to new values. Now the final result on the Google Maps mix and, for example, Wikipedia can be found rarely, burned out. But for the technical side - this is the most relevant. Gitkhab, stackoverflow, google and go!

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

That is how we began work on Sociate, in parallel with developing
buruki.ru , it was such a bootstrap within the company. For a year and a half, 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 of this was sawed from scratch, just for our needs (it would be very specialized and 100% meet our requirements), then in a month and a half we would have not a ready project, but a developed tracker, an excellent git 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 it is Django, Python and their infrastructure. Infrastructure is perhaps the most important. So again, do not 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 for us. We could make our own way through spam filters, gray-sheets and more, but this time is better spent on satisfied users, and not on soulless mail robots. Use good third-party solutions - they give you time to think about what's important.

From the first day we needed billing, users place ads through sociate, but it is not free. To launch, we have chosen the maximum convenience of users, even if this involves a certain (not very comfortable) commission. Using a payment aggregator you save on everything - at the connection time, at the integration time (usually the support of the aggregator is responsive, and there are libraries for popular languages), at the time of collecting different services in one place. Already later, you can connect several of the most popular ways directly, reducing commission costs.

With internal billing on the service is a bit more complicated. Here we ourselves made a mistake and began to invent our accounting. Why this happened is unknown. It is correct to take and read once the basics of accounting, transactions, invoices, subaccounts. Red reversal. Then everything will be fine. And do not forget about the transaction.

Very often, the techie to implement the idea is not enough for a person with a sense of beauty. 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 it seems that nobody knows what is best for the user. He sees the world a little differently than you. Roll out functionality more often, keep in touch with the user, and as close as possible! Nobody will write you bug reports or report typos using CTRL + ENTER, the user needs a simple feedback tool. 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 run projects, rather than keep them in the far corners of hard drives!
In the comments we propose to discuss the pros and cons of different approaches, preferably from experience. And we will begin.