Зачем Kolesa Group поделили на 13 команд и при чем здесь коронавирус

Автор: Kolesa Group
казахстанская IT-компания

Операционный директор компании Дмитрий Ботанов рассказывает о том, что такое горизонтальный менеджмент и как он помогает компании пережить турбулентность

В 2020-м бизнес переживает не лучшие времена. Сложно представить ситуацию, в которой гибкость и способность адаптироваться для компании были бы более жизненно важны, чем сегодня.

В Kolesa Group так же, как и везде, столкнулись с новой реальностью. Но фундаментальные фреймворки и решения, внедренные и отполированные за последние пять лет, помогают нам сегодня работать с той же эффективностью, что и в докоронавирусную эпоху. Ну или круче. Мы никого не уволили. Не сократили ни одну зарплату. Не закрыли ни один проект. Наоборот, взялись за несколько новых идей, проводим собеседования и продолжаем нанимать людей.

Горизонтальная структура менеджмента – одно из таких решений. В классическом понимании это отсутствие менеджеров среднего звена. Так обычно бывает в компаниях до 50 человек, в которых все друг друга знают, сидят в одном здании и могут лично обсудить любой вопрос. В многоуровневой иерархии нет смысла, а бюрократию разводить некому.

Возможно ли раскатать такую систему на компанию из 350+ сотрудников, распределенных между пятью офисами в трех городах и двух странах? У нас в Kolesa Group получилось.

Менеджмент в крупном корпоративном бизнесе иерархичен и централизован: есть служебки, четко прописанные зоны ответственности, решения спускаются сверху, коммуникация ведется по почте, для всего нужны листы согласования и внутренние заказчики. В такой системе много контроля и бюрократии. Мы внедрили горизонтальную структуру управления около пяти лет назад, чтобы максимально избавиться от всего этого и оставаться гибкими, продолжая быстро расти.

Раньше у нас было все более стандартно: топ-менеджмент, большие отделы, единый департамент разработки и один руководитель всех web-продуктов. Тогда это работало, но мы продолжали расти и достигли критической массы людей, которые могли поддерживать синергию и дружеские отношения в огромной команде, а менеджер при этом не становился бутылочным горлышком и не тормозил процессы.

Тогда в компании приняли судьбоносное решение нанять менеджеров под каждый из продуктов: kolesa.kz, krisha.kz, market.kz – и разделили всех на команды, состоящие из специалистов с разной экспертизой. Практика зашла, появилась дружеская конкуренция между командами – каждая стремилась показать результат круче, чем другие. Мы продолжали быстро расти, появлялись новые проекты, команды вырастали и делились.

Сегодня в Kolesa Group уже 13 продуктовых команд. Среди них есть команды, работающие:

– над большими сервисами — kolesa.kz, market.kz, krisha.kz;

– зарубежным avtoelon.uz;

– более узко заточенными продуктами типа Kolesa X, Kolesa Монетизация и Автокредит;

– продуктом для застройщиков “Новостройки на krisha.kz” и так далее.

В каждом продукте есть product-менеджер, разработчики с разной экспертизой, тестировщики и аналитики.

Кроме команд, есть отделы маркетинга, дизайна, служба заботы о пользователях, модерации, RnD. Ребята из этих отделов не распределены по командам, потому что их совокупная экспертиза сильно превышает аналогичную работу отдельных специалистов и экономит ресурсы.

Ритуалы – ничто, эффективность – все

Каждая команда — это замкнутая экосистема, которая не обязана следовать строгим процедурам или соблюдать ритуалы, которые есть у других коллег. Команда может проводить планерку каждое утро или одно большое собрание раз в неделю. Кто-то работает по системе канбан, кто-то экспериментирует с чистым SCRUM, кто-то миксует. А самые удачные найденные фреймворки и технические решения команды часто подхватывают друг у друга.

Недавно в командах появились SEMы (software engineering manager). Это тимлиды разработки с расширенными полномочиями. Мы делаем высоконагруженные продукты, которыми пользуются миллионы людей. Ежемесячно они совершают миллиарды действий. Цена ошибки настолько высока, что до появления SEMов мы накладывали на себя кучу ограничений – не рисковали делать релизы в пятницу или после 17:00, обязательно покрывали все новые фичи автотестами и т. п.

А SEM — тот человек, который знает техническую часть продукта вдоль и поперек, у него высокий уровень ответственности и хороший скил в смежных областях. Теперь product-менеджер совместно с SEMом имеют право принимать рискованные решения. Например, перед критичным релизом отказаться от части привычных ритуалов, напрямую договориться с сисадминами и другими отделами без долгих согласований, взять ответственность на себя. Это помогает двигаться быстро и эффективно.

Целеполагание и ответственность за результат

Топ-менеджменту сложно отпустить команду в независимое плавание до тех пор, пока он не поймет, что становится узким горлышком, что экспертиза команды уже превышает его собственную. В этот момент важно отпустить свое ЧСВ, заняться стратегическим видением и стать эффективным проводником информации между командами и подразделениями.

По моему мнению, в Kolesa Group самые важные люди это даже не топы вроде CPO, COO, CFO, а product-менеджеры, которые работают с командами, и линейные руководители front-end-, back-end-разработки, дизайна, сервиса, системного администрирования и т. д. Это главные проводники информации, хранители ценностей и носители экспертизы. Они дают результат, мотивируют людей и ведут за собой.

Горизонтальность дает гибкость и позволяет находить лучшие идеи

Раз в год руководители собираются на годовое планирование, чтобы определить глобальные приоритеты развития на ближайшие три года и скорректировать планы, которые наметили ранее. Эти глобальные годовые цели делятся среди команд и отделов, а потом дробятся на квартальные и ежемесячные.

Команды не получают четких списков задач, только целевые показатели. К примеру, за год вырасти в два раза. Чтобы поставить точную цель, строится матмодель, она же может предсказать, при каких обстоятельствах и срезах получится достичь результата. Что именно команда делает, чтобы в два раза вырасти, – это её решение и её ответственность.

Кроме того, есть такая практика, как питчинг, – product-менеджер презентует перед комиссией (ужасное слово, но суть отражает) 10–15 задач, которые он тщательно просчитывал несколько дней или даже недель. Он говорит: мы делаем такую-то задачу, она повлияет на такое-то количество пользователей, эффект будет достигнут вот с такой-то вероятностью. В каждом утверждении есть ссылка на исследования, анализ, интервью с пользователями или экспертное мнение.

Цель питчинга – мощно поштормить, выбрать самые крутые проекты, проработать их совместно с дизайнерами, аналитиками, маркетологами и другими спецами, которые тоже участвуют, и сформировать бэклог (очередность задач), с которым команда пойдет работать.

После никто не будет контролировать, заняла какая-то задача неделю или две, был ли один крупный проект или пять маленьких. Главное, чтобы в конце месяца или квартала команда сделала показатели, на которые рассчитывала.

Задача каждого руководителя – синхронизироваться с соседними командами, ходить по их питчингам и перенимать лучшие практики. Такой процесс работы привел нас к тому, что 70% любых инициатив, будь то список проектов, изменение формата работы или применение новых технологий, идут снизу вверх, то есть от самих бойцов и их руководителей. И только оставшиеся 30% спускаются топами.

Главная сложность горизонтальной структуры – коммуникации между командами

Между командами и отделами необходимо постоянно налаживать коммуникации. А любые центральные инициативы, если таковые есть, приходится внедрять в каждой команде отдельно, ведь зачастую у них разные процессы, ритуалы, люди, может быть, даже разная архитектура разработки.

Для горизонтальной структуры вам потребуются очень самостоятельные менеджеры, тимлиды и руководители отделов. Ключевые люди должны быть либо нанятыми, либо выращенными в команде изначально с такими ценностями. Если ключевые люди говорят слова вроде “это не моя работа”, “вы решайте, а я сделаю, как скажете” , это абсолютно не горизонтальная история.

Больше о нашей корпоративной культуре и бизнес-практиках, которые мы применяем, можно узнать в нашем блоге и Instagram-аккаунте @kolesagroup. 

: Если вы обнаружили ошибку или опечатку, выделите фрагмент текста с ошибкой и нажмите CTRL+Enter
37178 просмотров
Поделиться этой публикацией в соцсетях:
Forbes Video

Как казахи ставят юрты в Украине

Обсуждаемые в Соцсетях
Самые Читаемые

Орфографическая ошибка в тексте:

Отмена Отправить
170.41msRequest Duration7.25MBMemory UsageGET blogs/blogsid_{blogID}RouteAuth status
    • Booting (30.36ms)
    • Application (147ms)
      21 templates were rendered
      • blogs-inner (resources/views/blogs-inner.blade.php)3blade
        Params
        0
        article
        1
        mlt_articles
        2
        keywords
      • banners.B (resources/views/banners/B.blade.php)7blade
        Params
        0
        obLevel
        1
        __env
        2
        app
        3
        errors
        4
        article
        5
        mlt_articles
        6
        keywords
      • partials.social-bid (resources/views/partials/social-bid.blade.php)7blade
        Params
        0
        obLevel
        1
        __env
        2
        app
        3
        errors
        4
        article
        5
        mlt_articles
        6
        keywords
      • banners.C (resources/views/banners/C.blade.php)11blade
        Params
        0
        obLevel
        1
        __env
        2
        app
        3
        errors
        4
        article
        5
        mlt_articles
        6
        keywords
        7
        __currentLoopData
        8
        item
        9
        key
        10
        loop
      • banners.F (resources/views/banners/F.blade.php)11blade
        Params
        0
        obLevel
        1
        __env
        2
        app
        3
        errors
        4
        article
        5
        mlt_articles
        6
        keywords
        7
        __currentLoopData
        8
        item
        9
        key
        10
        loop
      • partials.sidebar (resources/views/partials/sidebar.blade.php)11blade
        Params
        0
        obLevel
        1
        __env
        2
        app
        3
        errors
        4
        article
        5
        mlt_articles
        6
        keywords
        7
        __currentLoopData
        8
        item
        9
        key
        10
        loop
      • banners.D (resources/views/banners/D.blade.php)11blade
        Params
        0
        obLevel
        1
        __env
        2
        app
        3
        errors
        4
        article
        5
        mlt_articles
        6
        keywords
        7
        __currentLoopData
        8
        item
        9
        key
        10
        loop
      • widgets.CorpBlogs (resources/views/widgets/CorpBlogs.blade.php)1blade
        Params
        0
        corp_blogs
      • widgets.Anounce (resources/views/widgets/Anounce.blade.php)1blade
        Params
        0
        anounce
      • widgets.BirthdaysToday (resources/views/widgets/BirthdaysToday.blade.php)1blade
        Params
        0
        birthdays
      • widgets.EditorChoise (resources/views/widgets/EditorChoise.blade.php)1blade
        Params
        0
        editor_choise
      • banners.E (resources/views/banners/E.blade.php)11blade
        Params
        0
        obLevel
        1
        __env
        2
        app
        3
        errors
        4
        article
        5
        mlt_articles
        6
        keywords
        7
        __currentLoopData
        8
        item
        9
        key
        10
        loop
      • widgets.RandProjectVideo (resources/views/widgets/RandProjectVideo.blade.php)1blade
        Params
        0
        video
      • widgets.MostShared (resources/views/widgets/MostShared.blade.php)1blade
        Params
        0
        most_shared
      • partials.most-shared (resources/views/partials/most-shared.blade.php)5blade
        Params
        0
        obLevel
        1
        __env
        2
        app
        3
        errors
        4
        most_shared
      • widgets.MostViews (resources/views/widgets/MostViews.blade.php)1blade
        Params
        0
        most_views
      • partials.most-views (resources/views/partials/most-views.blade.php)5blade
        Params
        0
        obLevel
        1
        __env
        2
        app
        3
        errors
        4
        most_views
      • banners.tds.4 (resources/views/banners/tds/4.blade.php)11blade
        Params
        0
        obLevel
        1
        __env
        2
        app
        3
        errors
        4
        article
        5
        mlt_articles
        6
        keywords
        7
        __currentLoopData
        8
        item
        9
        key
        10
        loop
      • layout (resources/views/layout.blade.php)11blade
        Params
        0
        obLevel
        1
        __env
        2
        app
        3
        errors
        4
        article
        5
        mlt_articles
        6
        keywords
        7
        __currentLoopData
        8
        item
        9
        key
        10
        loop
      • banners.tds.1 (resources/views/banners/tds/1.blade.php)11blade
        Params
        0
        obLevel
        1
        __env
        2
        app
        3
        errors
        4
        article
        5
        mlt_articles
        6
        keywords
        7
        __currentLoopData
        8
        item
        9
        key
        10
        loop
      • banners.G (resources/views/banners/G.blade.php)11blade
        Params
        0
        obLevel
        1
        __env
        2
        app
        3
        errors
        4
        article
        5
        mlt_articles
        6
        keywords
        7
        __currentLoopData
        8
        item
        9
        key
        10
        loop
      uri
      GET blogs/blogsid_{blogID}
      middleware
      web
      as
      blog
      controller
      App\Http\Controllers\BlogsController@displayBlog
      namespace
      App\Http\Controllers
      prefix
      null
      where
      file
      app/Http/Controllers/BlogsController.php:35-61
      28 statements were executed80.07ms
      • select * from `forbes_data` where `Date` <= '2025-04-21 11:33:29' and `finished` = '1' and `DataID` = '222899' limit 11.21ms/app/Models/Data.php:101forbes_base
        Metadata
        Bindings
        • 0. 2025-04-21 11:33:29
        • 1. 1
        • 2. 222899
        Hints
        • Use SELECT * only if you need all columns from table
        • LIMIT without ORDER BY causes non-deterministic results, depending on the query execution plan
        Backtrace
        • 13. /app/Models/Data.php:101
        • 14. /app/Http/Controllers/BlogsController.php:37
        • 64. /public/index.php:54
      • select * from `forbes_data_data` where `forbes_data_data`.`DataID` in ('222899')1.14ms/app/Models/Data.php:101forbes_base
        Metadata
        Bindings
        • 0. 222899
        Hints
        • Use SELECT * only if you need all columns from table
        Backtrace
        • 20. /app/Models/Data.php:101
        • 21. /app/Http/Controllers/BlogsController.php:37
        • 71. /public/index.php:54
      • select * from `forbes_data_images` where `forbes_data_images`.`ImageID` in ('101727')960μs/app/Models/Data.php:101forbes_base
        Metadata
        Bindings
        • 0. 101727
        Hints
        • Use SELECT * only if you need all columns from table
        Backtrace
        • 27. /app/Models/Data.php:101
        • 28. /app/Http/Controllers/BlogsController.php:37
        • 78. /public/index.php:54
      • select * from `forbes_images` where `forbes_images`.`ImageID` in ('101727')1.01ms/app/Models/Data.php:101forbes_base
        Metadata
        Bindings
        • 0. 101727
        Hints
        • Use SELECT * only if you need all columns from table
        Backtrace
        • 34. /app/Models/Data.php:101
        • 35. /app/Http/Controllers/BlogsController.php:37
        • 85. /public/index.php:54
      • SELECT * FROM forbes_mlt_index WHERE datatype=1 AND unxtime>=1713681209 AND id<>222899 AND MATCH('Зачем | Kolesa | Group | поделили | команд | при | коронавирус | Операционный | директор | компании | Дмитрий | Ботанов | рассказывает | том | такое | горизонтальный | менеджмент | помогает | компании | пережить | турбулентность') LIMIT 6 OPTION ranker = sph04,max_matches=6;57.5ms/app/Models/Search.php:56
        Metadata
        Hints
        • Use SELECT * only if you need all columns from table
        • LIMIT without ORDER BY causes non-deterministic results, depending on the query execution plan
        Backtrace
        • 8. /app/Models/Search.php:56
        • 9. /app/Http/Controllers/BlogsController.php:40
        • 59. /public/index.php:54
      • select `ImagePath` from `forbes_images` where `ImageID` = '160257' limit 1630μs/app/Models/Images.php:22forbes_base
        Metadata
        Bindings
        • 0. 160257
        Hints
        • LIMIT without ORDER BY causes non-deterministic results, depending on the query execution plan
        Backtrace
        • 13. /app/Models/Images.php:22
        • 14. /app/Http/Controllers/BlogsController.php:43
        • 64. /public/index.php:54
      • select `ImagePath` from `forbes_images` where `ImageID` = '160724' limit 1680μs/app/Models/Images.php:22forbes_base
        Metadata
        Bindings
        • 0. 160724
        Hints
        • LIMIT without ORDER BY causes non-deterministic results, depending on the query execution plan
        Backtrace
        • 13. /app/Models/Images.php:22
        • 14. /app/Http/Controllers/BlogsController.php:43
        • 64. /public/index.php:54
      • select `ImagePath` from `forbes_images` where `ImageID` = '159803' limit 1610μs/app/Models/Images.php:22forbes_base
        Metadata
        Bindings
        • 0. 159803
        Hints
        • LIMIT without ORDER BY causes non-deterministic results, depending on the query execution plan
        Backtrace
        • 13. /app/Models/Images.php:22
        • 14. /app/Http/Controllers/BlogsController.php:43
        • 64. /public/index.php:54
      • select `ImagePath` from `forbes_images` where `ImageID` = '160659' limit 1540μs/app/Models/Images.php:22forbes_base
        Metadata
        Bindings
        • 0. 160659
        Hints
        • LIMIT without ORDER BY causes non-deterministic results, depending on the query execution plan
        Backtrace
        • 13. /app/Models/Images.php:22
        • 14. /app/Http/Controllers/BlogsController.php:43
        • 64. /public/index.php:54
      • select `ImagePath` from `forbes_images` where `ImageID` = '160104' limit 1610μs/app/Models/Images.php:22forbes_base
        Metadata
        Bindings
        • 0. 160104
        Hints
        • LIMIT without ORDER BY causes non-deterministic results, depending on the query execution plan
        Backtrace
        • 13. /app/Models/Images.php:22
        • 14. /app/Http/Controllers/BlogsController.php:43
        • 64. /public/index.php:54
      • select `ImagePath` from `forbes_images` where `ImageID` = '159592' limit 1610μs/app/Models/Images.php:22forbes_base
        Metadata
        Bindings
        • 0. 159592
        Hints
        • LIMIT without ORDER BY causes non-deterministic results, depending on the query execution plan
        Backtrace
        • 13. /app/Models/Images.php:22
        • 14. /app/Http/Controllers/BlogsController.php:43
        • 64. /public/index.php:54
      • update `forbes_data_data` set `Views` = `Views` + 1 where `DataID` = '222899'2.28ms/app/Http/Controllers/BlogsController.php:50forbes_base
        Metadata
        Bindings
        • 0. 222899
        Backtrace
        • 15. /app/Http/Controllers/BlogsController.php:50
        • 16. /app/Http/Controllers/BlogsController.php:50
        • 66. /public/index.php:54
      • select * from `forbes_data_authors` where `forbes_data_authors`.`DataID` = '222899' limit 1960μsview::blogs-inner:9forbes_base
        Metadata
        Bindings
        • 0. 222899
        Hints
        • Use SELECT * only if you need all columns from table
        • LIMIT without ORDER BY causes non-deterministic results, depending on the query execution plan
        Backtrace
        • 18. view::blogs-inner:9
        • 25. /vendor/symfony/http-foundation/Response.php:200
        • 71. /public/index.php:54
      • select * from `forbes_authors` where `forbes_authors`.`AuthorID` = '1153' limit 1680μsview::blogs-inner:9forbes_base
        Metadata
        Bindings
        • 0. 1153
        Hints
        • Use SELECT * only if you need all columns from table
        • LIMIT without ORDER BY causes non-deterministic results, depending on the query execution plan
        Backtrace
        • 18. view::blogs-inner:9
        • 25. /vendor/symfony/http-foundation/Response.php:200
        • 71. /public/index.php:54
      • select * from `forbes_images` where `forbes_images`.`ImageID` = '145474' limit 1650μsview::blogs-inner:64forbes_base
        Metadata
        Bindings
        • 0. 145474
        Hints
        • Use SELECT * only if you need all columns from table
        • LIMIT without ORDER BY causes non-deterministic results, depending on the query execution plan
        Backtrace
        • 18. view::blogs-inner:64
        • 25. /vendor/symfony/http-foundation/Response.php:200
        • 71. /public/index.php:54
      • select * from `forbes_data_social_stats2` where `forbes_data_social_stats2`.`DataID` = '222899' limit 1760μsview::blogs-inner:99forbes_base
        Metadata
        Bindings
        • 0. 222899
        Hints
        • Use SELECT * only if you need all columns from table
        • LIMIT without ORDER BY causes non-deterministic results, depending on the query execution plan
        Backtrace
        • 18. view::blogs-inner:99
        • 25. /vendor/symfony/http-foundation/Response.php:200
        • 71. /public/index.php:54
      • select * from `forbes_prteaser_group` where `url` not in ('sap') and `validfrom` <= '2025-04-21 11:33:29' and `validtill` >= '2025-04-21 11:33:29' limit 5870μs/app/Models/TeaserGroups.php:30forbes_base
        Metadata
        Bindings
        • 0. sap
        • 1. 2025-04-21 11:33:29
        • 2. 2025-04-21 11:33:29
        Hints
        • Use SELECT * only if you need all columns from table
        • LIMIT without ORDER BY causes non-deterministic results, depending on the query execution plan
        Backtrace
        • 12. /app/Models/TeaserGroups.php:30
        • 13. /app/Widgets/CorpBlogs.php:22
        • 19. /vendor/arrilot/laravel-widgets/src/Misc/LaravelApplicationWrapper.php:48
        • 20. /vendor/arrilot/laravel-widgets/src/Factories/WidgetFactory.php:54
        • 21. /vendor/arrilot/laravel-widgets/src/Factories/WidgetFactory.php:75
        • 22. /vendor/arrilot/laravel-widgets/src/Factories/WidgetFactory.php:17
        • 27. view::partials.sidebar:10
        • 28. view::partials.sidebar:10
        • 34. view::blogs-inner:231
        • 41. /vendor/symfony/http-foundation/Response.php:200
        • 87. /public/index.php:54
      • select * from `forbes_anounces` order by `AnounceID` desc limit 1740μs/app/Models/Anounces.php:38forbes_base
        Metadata
        Hints
        • Use SELECT * only if you need all columns from table
        • The SELECT statement has no WHERE clause and could examine many more rows than intended
        Backtrace
        • 13. /app/Models/Anounces.php:38
        • 14. /app/Widgets/Anounce.php:20
        • 20. /vendor/arrilot/laravel-widgets/src/Misc/LaravelApplicationWrapper.php:48
        • 21. /vendor/arrilot/laravel-widgets/src/Factories/WidgetFactory.php:54
        • 22. /vendor/arrilot/laravel-widgets/src/Factories/WidgetFactory.php:75
        • 23. /vendor/arrilot/laravel-widgets/src/Factories/WidgetFactory.php:17
        • 28. view::partials.sidebar:13
        • 29. view::partials.sidebar:13
        • 35. view::blogs-inner:231
        • 42. /vendor/symfony/http-foundation/Response.php:200
        • 88. /public/index.php:54
      • select * from `forbes_images` where `forbes_images`.`ImageID` in ('160604')660μs/app/Models/Anounces.php:38forbes_base
        Metadata
        Bindings
        • 0. 160604
        Hints
        • Use SELECT * only if you need all columns from table
        Backtrace
        • 20. /app/Models/Anounces.php:38
        • 21. /app/Widgets/Anounce.php:20
        • 27. /vendor/arrilot/laravel-widgets/src/Misc/LaravelApplicationWrapper.php:48
        • 28. /vendor/arrilot/laravel-widgets/src/Factories/WidgetFactory.php:54
        • 29. /vendor/arrilot/laravel-widgets/src/Factories/WidgetFactory.php:75
        • 30. /vendor/arrilot/laravel-widgets/src/Factories/WidgetFactory.php:17
        • 35. view::partials.sidebar:13
        • 36. view::partials.sidebar:13
        • 42. view::blogs-inner:231
        • 49. /vendor/symfony/http-foundation/Response.php:200
        • 95. /public/index.php:54
      • select * from `forbes_bdays` where month(`Bday`) = '4' and day(`Bday`) = '21' order by `Bday` desc620μs/app/Models/Birthdays.php:29forbes_base
        Metadata
        Bindings
        • 0. 4
        • 1. 21
        Hints
        • Use SELECT * only if you need all columns from table
        Backtrace
        • 12. /app/Models/Birthdays.php:29
        • 13. /app/Widgets/BirthdaysToday.php:20
        • 19. /vendor/arrilot/laravel-widgets/src/Misc/LaravelApplicationWrapper.php:48
        • 20. /vendor/arrilot/laravel-widgets/src/Factories/WidgetFactory.php:54
        • 21. /vendor/arrilot/laravel-widgets/src/Factories/WidgetFactory.php:75
        • 22. /vendor/arrilot/laravel-widgets/src/Factories/WidgetFactory.php:17
        • 27. view::partials.sidebar:16
        • 28. view::partials.sidebar:16
        • 34. view::blogs-inner:231
        • 41. /vendor/symfony/http-foundation/Response.php:200
        • 87. /public/index.php:54
      • select `forbes_data_tops`.`DataID`, `forbes_data`.`Date` from `forbes_data_tops` inner join `forbes_data` on `forbes_data_tops`.`DataID` = `forbes_data`.`DataID` and `forbes_data`.`finished` = '1' where `forbes_data_tops`.`StructureID` = '66' and `forbes_data`.`Date` <= '2025-04-21 11:33:29' order by `forbes_data_tops`.`Position` asc limit 1 offset 0610μs/app/Models/DataTops.php:103forbes_base
        Metadata
        Bindings
        • 0. 1
        • 1. 66
        • 2. 2025-04-21 11:33:29
        Backtrace
        • 12. /app/Models/DataTops.php:103
        • 13. /app/Widgets/EditorChoise.php:20
        • 19. /vendor/arrilot/laravel-widgets/src/Misc/LaravelApplicationWrapper.php:48
        • 20. /vendor/arrilot/laravel-widgets/src/Factories/WidgetFactory.php:54
        • 21. /vendor/arrilot/laravel-widgets/src/Factories/WidgetFactory.php:75
        • 22. /vendor/arrilot/laravel-widgets/src/Factories/WidgetFactory.php:17
        • 27. view::partials.sidebar:19
        • 28. view::partials.sidebar:19
        • 34. view::blogs-inner:231
        • 41. /vendor/symfony/http-foundation/Response.php:200
        • 87. /public/index.php:54
      • select * from `forbes_data_data` where `forbes_data_data`.`DataID` in ('320937')1ms/app/Models/DataTops.php:103forbes_base
        Metadata
        Bindings
        • 0. 320937
        Hints
        • Use SELECT * only if you need all columns from table
        Backtrace
        • 19. /app/Models/DataTops.php:103
        • 20. /app/Widgets/EditorChoise.php:20
        • 26. /vendor/arrilot/laravel-widgets/src/Misc/LaravelApplicationWrapper.php:48
        • 27. /vendor/arrilot/laravel-widgets/src/Factories/WidgetFactory.php:54
        • 28. /vendor/arrilot/laravel-widgets/src/Factories/WidgetFactory.php:75
        • 29. /vendor/arrilot/laravel-widgets/src/Factories/WidgetFactory.php:17
        • 34. view::partials.sidebar:19
        • 35. view::partials.sidebar:19
        • 41. view::blogs-inner:231
        • 48. /vendor/symfony/http-foundation/Response.php:200
        • 94. /public/index.php:54
      • select * from `forbes_data_images` where `forbes_data_images`.`ImageID` in ('160257')590μs/app/Models/DataTops.php:103forbes_base
        Metadata
        Bindings
        • 0. 160257
        Hints
        • Use SELECT * only if you need all columns from table
        Backtrace
        • 26. /app/Models/DataTops.php:103
        • 27. /app/Widgets/EditorChoise.php:20
        • 33. /vendor/arrilot/laravel-widgets/src/Misc/LaravelApplicationWrapper.php:48
        • 34. /vendor/arrilot/laravel-widgets/src/Factories/WidgetFactory.php:54
        • 35. /vendor/arrilot/laravel-widgets/src/Factories/WidgetFactory.php:75
        • 36. /vendor/arrilot/laravel-widgets/src/Factories/WidgetFactory.php:17
        • 41. view::partials.sidebar:19
        • 42. view::partials.sidebar:19
        • 48. view::blogs-inner:231
        • 55. /vendor/symfony/http-foundation/Response.php:200
        • 101. /public/index.php:54
      • select * from `forbes_images` where `forbes_images`.`ImageID` in ('160257')500μs/app/Models/DataTops.php:103forbes_base
        Metadata
        Bindings
        • 0. 160257
        Hints
        • Use SELECT * only if you need all columns from table
        Backtrace
        • 33. /app/Models/DataTops.php:103
        • 34. /app/Widgets/EditorChoise.php:20
        • 40. /vendor/arrilot/laravel-widgets/src/Misc/LaravelApplicationWrapper.php:48
        • 41. /vendor/arrilot/laravel-widgets/src/Factories/WidgetFactory.php:54
        • 42. /vendor/arrilot/laravel-widgets/src/Factories/WidgetFactory.php:75
        • 43. /vendor/arrilot/laravel-widgets/src/Factories/WidgetFactory.php:17
        • 48. view::partials.sidebar:19
        • 49. view::partials.sidebar:19
        • 55. view::blogs-inner:231
        • 62. /vendor/symfony/http-foundation/Response.php:200
        • 108. /public/index.php:54
      • select * from `forbes_video` where `isShow` = '1' and `project` = 'qna' order by RAND() limit 11.79ms/app/Models/Video.php:42forbes_base
        Metadata
        Bindings
        • 0. 1
        • 1. qna
        Hints
        • Use SELECT * only if you need all columns from table
        • ORDER BY RAND() is slow, try to avoid if you can. You can read this or this
        Backtrace
        • 12. /app/Models/Video.php:42
        • 13. /app/Widgets/RandProjectVideo.php:24
        • 19. /vendor/arrilot/laravel-widgets/src/Misc/LaravelApplicationWrapper.php:48
        • 20. /vendor/arrilot/laravel-widgets/src/Factories/WidgetFactory.php:54
        • 21. /vendor/arrilot/laravel-widgets/src/Factories/WidgetFactory.php:75
        • 22. /vendor/arrilot/laravel-widgets/src/Factories/WidgetFactory.php:17
        • 27. view::partials.sidebar:28
        • 28. view::partials.sidebar:28
        • 34. view::blogs-inner:231
        • 41. /vendor/symfony/http-foundation/Response.php:200
        • 87. /public/index.php:54
      • select * from `forbes_data` inner join `forbes_data_social_stats2` on `forbes_data_social_stats2`.`DataID` = `forbes_data`.`DataID` where `Date` >= '2025-04-20 11:33:29' and `AnounceID` is null and `finished` = '1' order by `forbes_data_social_stats2`.`facebook` desc limit 7640μs/app/Models/Data.php:544forbes_base
        Metadata
        Bindings
        • 0. 2025-04-20 11:33:29
        • 1. 1
        Hints
        • Use SELECT * only if you need all columns from table
        Backtrace
        • 12. /app/Models/Data.php:544
        • 13. /app/Widgets/MostShared.php:21
        • 19. /vendor/arrilot/laravel-widgets/src/Misc/LaravelApplicationWrapper.php:48
        • 20. /vendor/arrilot/laravel-widgets/src/Factories/WidgetFactory.php:54
        • 21. /vendor/arrilot/laravel-widgets/src/Factories/WidgetFactory.php:75
        • 22. /vendor/arrilot/laravel-widgets/src/Factories/WidgetFactory.php:17
        • 27. view::partials.sidebar:36
        • 28. view::partials.sidebar:36
        • 34. view::blogs-inner:231
        • 41. /vendor/symfony/http-foundation/Response.php:200
        • 87. /public/index.php:54
      • select * from `forbes_data` inner join `forbes_data_data` on `forbes_data`.`DataID` = `forbes_data_data`.`DataID` where `Date` <= '2025-04-21 11:33:29' and `finished` = '1' and `DataType` = 'articles' and `Date` >= '2025-04-20 11:33:29' order by `forbes_data_data`.`Views` desc limit 7660μs/app/Models/Data.php:560forbes_base
        Metadata
        Bindings
        • 0. 2025-04-21 11:33:29
        • 1. 1
        • 2. articles
        • 3. 2025-04-20 11:33:29
        Hints
        • Use SELECT * only if you need all columns from table
        Backtrace
        • 12. /app/Models/Data.php:560
        • 13. /app/Widgets/MostViews.php:20
        • 19. /vendor/arrilot/laravel-widgets/src/Misc/LaravelApplicationWrapper.php:48
        • 20. /vendor/arrilot/laravel-widgets/src/Factories/WidgetFactory.php:54
        • 21. /vendor/arrilot/laravel-widgets/src/Factories/WidgetFactory.php:75
        • 22. /vendor/arrilot/laravel-widgets/src/Factories/WidgetFactory.php:17
        • 27. view::partials.sidebar:46
        • 28. view::partials.sidebar:46
        • 34. view::blogs-inner:231
        • 41. /vendor/symfony/http-foundation/Response.php:200
        • 87. /public/index.php:54
      • select * from `forbes_video` where `isShow` = '1' and `addDate` >= '2025-04-20 11:33:29' order by `addDate` desc limit 1560μs/app/Models/Video.php:71forbes_base
        Metadata
        Bindings
        • 0. 1
        • 1. 2025-04-20 11:33:29
        Hints
        • Use SELECT * only if you need all columns from table
        Backtrace
        • 13. /app/Models/Video.php:71
        • 14. /app/Widgets/BoostVideo.php:21
        • 20. /vendor/arrilot/laravel-widgets/src/Misc/LaravelApplicationWrapper.php:48
        • 21. /vendor/arrilot/laravel-widgets/src/Factories/WidgetFactory.php:54
        • 22. /vendor/arrilot/laravel-widgets/src/Factories/WidgetFactory.php:75
        • 23. /vendor/arrilot/laravel-widgets/src/Factories/WidgetFactory.php:17
        • 28. view::layout:602
        • 29. view::layout:602
        • 35. view::blogs-inner:265
        • 42. /vendor/symfony/http-foundation/Response.php:200
        • 88. /public/index.php:54
        web
        array:2 [ "name" => "Guest" "user" => array:1 [ "guest" => true ] ]
        api
        array:2 [ "name" => "Guest" "user" => array:1 [ "guest" => true ] ]
          _token
          gYhiDsmI658CyKfBIhwwySM5vPWTCwnsQCErsj0A
          _previous
          array:1 [ "url" => "https://test.forbes.kz/blogs/blogsid_222899" ]
          PHPDEBUGBAR_STACK_DATA
          []
          format
          html
          content_type
          text/html; charset=UTF-8
          status_text
          OK
          status_code
          200
          request_query
          []
          request_request
          []
          request_headers
          array:25 [ "content-type" => array:1 [ 0 => "" ] "content-length" => array:1 [ 0 => ""...
          request_server
          array:52 [ "TEMP" => "/srv/www/forbes.kz/tmp" "TMPDIR" => "/srv/www/forbes.kz/tmp" "TMP" => "/...
          request_cookies
          []
          response_headers
          array:5 [ "cache-control" => array:1 [ 0 => "no-cache, private" ] "date" => array:1 [ ...
          path_info
          /blogs/blogsid_222899
          session_attributes
          array:3 [ "_token" => "gYhiDsmI658CyKfBIhwwySM5vPWTCwnsQCErsj0A" "_previous" => array:1 [ "u...