Я закончил на прошлой неделе. Ура! :)

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

За несколько недель до нашего финального проекта буткемпа нам сказали, что мы создадим приложение для реального клиента. Мы были чертовски взволнованы!

Нам нужно было создать приложение для молодежи, чтобы помочь им решить, какой профессией они хотели бы заниматься в будущем. Вы должны иметь возможность перемещаться между разными карточками с профессиями, эти карточки также должны сообщать вам, по какому пути идти, чтобы получить работу. Приложение должно было называться Future Me.

Мы собирались следовать гибкому подходу к разработке программного обеспечения (как и в каждом проекте). Вот обзор того, как мы работаем.

  • Дизайн-спринт: Здесь мы пишем истории пользователей, определяем функции и помещаем их в ледяной ящик для обработки и голосования, а после этого мы переместили ценные функции в бэклог (для этого мы использовали основной трекер). Для нас этот процесс занял два дня, но может быть намного дольше. Мы также продолжали улучшать наш основной трекер на протяжении всего проекта. Клиенты обычно присутствуют на этом спринте.
  • Спринт внедрения. Именно здесь происходит собственно кодирование. Мы прорабатываем функции в нашем бэклоге, готовя их к обзору спринта.
  • Обзор спринта: во время обзора спринта клиенты либо принимают, либо отклоняют функции, которые мы создали. Если они отказываются, они оставляют комментарий о том, что не так с функцией, а затем функция помещается в верхнюю часть журнала невыполненных работ, чтобы мы могли работать над ней во время следующего спринта реализации.
  • Ретроспектива спринта: во время ретроспективы спринта мы размышляем о том, как мы работаем и что мы можем сделать для улучшения. Обычно мы позволяем каждому в команде по одному рассказать о том, что, по их мнению, пошло правильно, а что - нет во время спринта.

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

Дизайн-спринт no1:

Я поехал в Стокгольм в воскресенье перед тем, как мы начали, так что я мог присутствовать на наших собраниях. Нашими клиентами были два студента магистерской программы KTH под названием «Дизайн-мышление». Я впервые встретился с ними во время нашего дизайнерского спринта, который состоял из двух полных дней планирования и определения того, что именно хотят клиенты, в форме пользовательских историй. Олоф и Деспина (наши клиенты) были действительно крутыми, и они полностью объяснили, почему возникла необходимость в этом приложении. За эти два дня мы заполнили наш основной трекер и довели его до совершенства (или настолько хорошо, насколько это было возможно). После этого наши клиенты ушли к нам по работе. Перед тем, как мы начали писать код, мы голосовали за каждую функцию, оценивая их в зависимости от того, насколько они сложны. 1 балл за простоту (например, максимум 2 часа работы), 2 балла за средний (максимум 1 день), 3 балла за действительно сложные функции (выполнение которых может занять максимум два-три дня). Трехточечные особенности мы обычно пытаемся разделить на более мелкие.

Спринт внедрения №1:

Мы собирались создать это приложение на Ionic. Это фреймворк, построенный на AngularJS и используемый для создания гибридных мобильных приложений. Это означает, что вы одновременно разрабатываете свое приложение для Android и IOS. Как бы то ни было, первые пару дней ушли на борьбу с библиотекой карточек Tinder для нашей функции считывания. Это устаревшая библиотека, и в настоящее время над ней никто не работает, а это означает, что в ней было много ошибок и проблем, которые нас очень расстроили. В итоге мы перешли на более новую библиотеку, которая все еще была устаревшей, но не такой плохой, как первая. Ко второму дню разработки мы реализовали функцию считывания карт.

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

У нас была ретроспектива спринта около полудня в пятницу на 1-й неделе, где мы все обсудили и договорились о том, что добавили дополнительную встречу по схватке только для нашей команды один раз в день (у нас есть большие встречи по схватке два раза в день со всей командой Craft Academy ). Мы также согласились с тем, что каждый должен взять на себя ответственность за рассмотрение всех поступающих новых запросов на включение, и мы также позаботились о том, чтобы все присутствовали во время слияния с восходящим потоком.

Прошли выходные, и все собрались вместе и начали доводить дело до конца. В течение выходных мы создали довольно хорошее (на мой взгляд) решение для хранения заданий на локальном устройстве, так как мы решили, что создание api и сохранение заданий там займет слишком много времени, и на самом деле это не требуется для этого MVP, который мы строили. Как бы то ни было, мы использовали библиотеку под названием ngStorage, включили ее и настроили службу, которая предоставила нам легкий доступ к ней. Мы добавили все задания в сервис и по умолчанию сохранили их в локальном хранилище. Таким образом, мы могли легко отправлять различные занятия на наш контроллер карты, если бы мы отсортировали их по массивам и отобразили в виде отдельных карточек в представлении.

Обзор спринта no1:

Наступил понедельник, и мы создали множество функций, хотя некоторые из них все еще отсутствуют, например, сохранение профессий и отображение их в библиотеке и т. Д. Утром у нас был наш первый обзор спринта, где наши клиенты принимали или отклоняли созданные нами функции. В итоге они отказались от 6 из 8, которые мы построили, ничего серьезного, но в основном из-за незначительных проблем с дизайном. После встречи мы быстро решили все вопросы и перешли к доработке остальных функций.

В Future Me вы можете сохранять задания и отображать их на экране библиотеки, чтобы вы могли вернуться и просмотреть сохраненные вами задания. Для этого мы также использовали наш замечательный сервис ngStorage. Мы добавили новый пустой массив в наше хранилище по умолчанию и добавили, что если вы сохраните занятие, оно будет помещено в этот массив. Мы также сделали довольно крутой цикл for, чтобы хранить в этом массиве только уникальные занятия (мы не хотим отображать дубликаты).

Мы отобразили все сохраненные задания, вызвав локальный массив хранения и отобразив его на экране библиотеки.

Одна часть приложения, которой я действительно горжусь, - это возможность удалять занятия из библиотеки через просмотр действий. Это работает так: вы долгое время нажимаете на занятие, которое хотите удалить, и нажимаете удалить. Затем он удаляет занятость из сохраненных заданий в локальном хранилище и обновляет массив в контроллере библиотеки, отображая только оставшиеся задания.

Обзор спринта no2

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

И если у профессии были ключи без значений (null), они просто не отображались, а это означало, что мы могли добавить что угодно и отобразить это в описании конкретной вакансии.

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

День доставки

У нас была последняя презентация в 9:30 утра (я не знаю, почему мы запланировали ее так рано, поскольку мы могли бы получить на целый день больше разработки, запланировав презентацию на 16:00 или что-то в этом роде). Очень сложно описать ощущение успешного завершения приложения и превышения установленных сроков. Мы были так счастливы! Возможно, мы немного облажались с точки зрения завершения нашего процесса разработки, но мы предоставили нашим клиентам полнофункциональное приложение MVP, что, на мой взгляд, является самым важным.

Здесь вы можете посмотреть нашу презентацию: Ссылка на Youtube

Закрытие одной двери и открытие новой

Этот буткемп был одним из самых сложных в моей жизни, и я так счастлив, что записался. Я многому научился. Не только как писать код, но и в чем мои сильные и слабые стороны.

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

Я должен поблагодарить своих товарищей по команде Эббу, Родриго и Кристоффера за то, что они суетились со мной на протяжении всего лагеря, а также моих тренеров Томаса Охмана, Рауля ДИФФУО и Эмбер Уилки. Вы, ребята, чертовски лучшие.

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

Проверьте это в магазине приложений!

Я продолжу создавать сообщения среднего размера о разработке программного обеспечения и других интересных вещах. Так долго, и, надеюсь, не слишком утомлял вас!

PS: Если кто-то из вас тоже хочет научиться программировать и создавать отличные приложения. Предлагаю вам посетить м craftacademy.co и отправить заявку. Вы не пожалеете :)