D
D
Dmitry Verkhoumov2014-08-05 18:04:27
Electronic commerce
Dmitry Verkhoumov, 2014-08-05 18:04:27

What questions should you ask when buying a website written in Ruby on Rails?

Hello!
I was asked to come to a meeting, they said that I should ask the right questions about the site, its operation and functionality, before buying it. It would seem that it could be easier. But still, this question does not leave me alone, because you need to ask really important and necessary questions.
If anyone has experienced this or has a good idea of ​​what questions to ask, please help.
The site is written in Ruby on Rails. Subject - building materials. No link.
#UPD 04/10/2014
A list of questions that I ended up using at the meeting.
This is not a complete list of questions as this is my first experience. If you wish, you can ask 1001 more questions. I believe that these questions should not be missed when buying an expensive project.
I also want to focus my attention on the fact that the entire project is on 1 server, which reduces the number of questions due to the lack of a distributed structure.
General questions

  1. How many employees support the site (programmers, system administrators, designers, editors, advertisers, etc.)?
  2. How many employees do you think are enough to keep the site up and running?
  3. What exactly is each of your project employees responsible for?
  4. Was there documentation during development (on the interface, software part)?
    What for?
    Это поможет при новых разработках по проекту, Вы избежите создания уже существующих функций.
Questions about the development process
  1. Was a version control system used during development? (Git/SVN/CVS/Mercurial/etc.)
    What for?
    Когда разработкой занимается более одного человека, очень сложно обойтись без этих средств. Без этого дальнейшее развитие проекта сомнительно.
  2. Continuous Integration?
  3. Unit testing?
  4. What library is used for UT?
  5. UT results? Error correction?
  6. Is there a history of bugs and fixes?
    What for?
    Поможет Вашим разработчикам преодолеть многие подводные камни при доработках.
  7. Difficulties encountered by the developers during the operation of the project?
    What for?
    Опять же, Вам должна быть важна любая информация. Это может помочь избежать многих проблем в будущем.
  8. Can we be sure that you didn't inject nastiness for us in some part of the code? Intentional backdoors, links?
    What for?
    Идём в лобовую! Мы должны быть уверены в том, что проект не накроется медным тазом через 3 недели из-за деятельности прошлых владельцев. Конечно же надо, чтобы свой программист ещё раз всё проверил лично.
  9. What database was chosen to store the information? Why is she?
    What for?
    Важны их обоснования выбора. Если БД выбрана от балды, то что-то может пойти не так на миллионных записях, если такие будут.
  10. Has the database been optimized (index tuning, etc.)?
    What for?
    Выясняем, на сколько можно ещё прокачать БД или надо заняться распределением нагрузки на новое оборудование.
  11. Has the site been checked for vulnerabilities? Have all of them been fixed?
    What for?
    Безопасность превыше всего!
back-end
  1. Load testing (let's say what happens if 300-500 people visit the site at the same time)?
    What for?
    Как можно заниматься проектом, если не знаешь, чего можно от него ожидать?
  2. Load testing tools? Results?
    What for?
    Ещё один момент, определяющий, требуется ли новое оборудование.
  3. How many visitors can the whole structure withstand on 1 core of 1 GB of RAM? Did you count?
  4. Current hardware?
    What for?
    Надо понять, брать более мощный сервер или организовывать распределённую нагрузку.
  5. System monitoring (monitoring the database, Nginx, server resources, etc.)?
  6. Was load testing performed in conjunction with system monitoring?
    What for?
    Помогает выявить узкие места на сервере.
  7. Have you tried speeding up your site? What was used for this?
    What for?
    Опять же, даёт понимание того, какие способы буст-апа ещё доступны или может "А ну всё это к черту!", купить ещё один сервер.
  8. memcached? Caching in Nginx? Maybe Varnish?
  9. Current situation on the server?
    More
    Базовые команды для проверки: процессор - top, htop; память - free, cat /proc/meminfo; диски - df –h, iotop; сеть - cbm. Полная информация тут.
  10. If the us indicator through the top command is more than 20%: has the application been optimized?
  11. If the swap indicator now or earlier was greater than 0: did you buy additional RAM / planned to distribute the load on new servers?
  12. Read - Actual DISK READ and write - Actual DISK WRITE (iotop command)?
  13. Are there any additional libraries installed on the server that are needed for the site to work? Maybe some special settings that are unique to this project?
    What for?
    Чтобы при переносе проекта на новый сервер он не пошёл боком. Надо знать всё, что касается проекта.
  14. Are there any forecasts regarding the further expansion of equipment for the project?
    What for?
    Это может сэкономить Ваше время в будущем. На слово конечно верить не стоит, но не учитывать их прогнозы будет не разумно.
front-end
  1. How are passwords, sessions stored? process logic?
    What for?
    Лично я считаю этот вопрос важным, поскольку небезопасную логику данного процесса надо будет переделывать.
  2. Is it possible to manage content / various blocks / site settings from the admin panel?
    What for?
    На данном этапе нам надо выяснить, какими возможностями обладает админ-панель.

On many issues, I purposely did not leave comments so that an incompetent person would google them. After all, I made a list for the same mediocrity as me.
What is the result of the survey?
  • The most important thing - you decide whether it is worth buying this project at all, or maybe "Well, what the hell!".
  • Find out how the development was carried out, what the developers faced, what your developers may have to face.
  • How to revive the project already on your equipment.
  • What equipment will be required for the project and how it can be accelerated.
  • You will get a discount or require the solution of some additional tasks / corrections.

Thanks to @sim3x and @angry_bender for the great tips! I hope the update will be useful to someone!

Answer the question

In order to leave comments, you need to log in

3 answer(s)
S
sim3x, 2014-08-05
@DVerkh

It would seem that it could be easier.

I hope - it tells you the naivety
of questions you can ask a bunch - the question is what is the purpose of the purchase
If you need questions to reduce the price, then I can paint
The main question is the purpose of the purchase.
Buying a domain + stories, buying software + a domain...
Buying for finishing, buying without finishing (fantastic)
If the functionality of the site is never supposed to be changed (including a bug fix), then the following has nothing to do with it, otherwise it will help to buy more than just code , and the code that can be changed
In order of subjective priority, it is better to ask questions in a scatter
- the code must be transferred to the repository, the commits must be from the first day
If this is not the case, then how did the development take place (?!). This is a mediator of code quality and developer quality - you need to buy shit code at the appropriate price
- code coverage with tests:
no - "are you out of your mind?" = a serious discount, the stability of the code is in question, alterations-finishing will be problematic
90% - weak, but you can live. Ask what is not covered and why.
99% - do not show that this is exceptionally good
- load testing:
so that when 50-100 clients come at the same time, everything does not fall.
no - "yes, are you out of your mind finally?" = serious discount, code stability is questionable, industrial exploitation is problematic
For excuses like putting 100500 resources under the site, saying -
! It’s better to ask a separate question about a spherical site on pop - how long should it withstand users on 1 core 1GB of RAM
- continious integration aka CI:
laying out code in one click, running tests and putting the code into production. Living without this on a project that is being done by more than one encoder is difficult (impossible) or extremely uncomfortable
- having a history of bugs and fixes
will help during operation
- separately specify the transfer of a database dump - there are options when without this the solution will not start in principle.
- What difficulties did the seller's developers face during operation - any info is useful

P
Puma Thailand, 2014-08-05
@opium

in fact, what's the difference on what the site is written on, there is its appearance on the url, there is some kind of admin panel for them and you need to ask questions.
and there you really want to see the code, ask for access, let the programmer look at the nuances.

V
Viktor Vsk, 2014-08-21
@viktorvsk

It can be seen that the author is not familiar with the rails)

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question