• Как правильно разделить разработку веб-проекта на юзер-стори?

    darqsat
    @darqsat
    PM
    Как всегда и везде, люди не до конца изучили agile/scrum и что то постят..

    Ни где четко не прописано что заказчик должен быть вовлечен в процесс.

    В первую очередь, SCRUM это управленческий фреймворк который позволяет упорядочить процессы, наладить коммуникации и поставлять инкременты итеративно.

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

    Если мы говорим о настоящем Agile Scrum, то собираем команду, изолируем её от всего кроме нашего проекта и дальше по методологии:

    (тут есть только 2 простейших процесса где нужен заказчик на 1-2 часа в 2 недели. типичная ошибка, звать его везде как этому учат на дурацких тренингах за 1000$)

    1. Собираем с заказчика хотелки и пихаем в беклог
    2. Собираемся и грумим беклог дробя эпики на мелкие стори или еще мельче эпики
    3. Делаем спринт пленинг и дробим беклог на задачи, поочередно оценивая всё
    4. Согласовываем инкремент и какой Definition of Done
    5. Работаем итерацию попутно проводя дейли статус митинги для синхронизации статусов и раннего выявления проблем
    6. Демонстрируем в конце что получилось, собираем от заказчика фидбек и форматируем беклог, возвращая в него то что не готово и все что не влезло в спринт
    7. Делаем ретроспективу и убеждаемся что копаем в нужном направлении и не делаем ничего лишнего либо добавляем в процессы работы то что стоило бы делать
    8. Возвращаемся к пункту 1

    Добавлю, что в беклоге может быть всё начиная от эпиков, юзер стори и заканчивая отдельными задачами, багами и т.п.

    Когда вы начинаете оценивать стоимость и сроки проекта под Agile/Scrum вы наступаете на теже грабли. Если заказчик не знает на что он идет то это не Agile.

    Наши клиенты уже с шишками и готовы платить деньги не представляя стоимости проекта в целом и тем более его сроков. С большего это стартапы. На опыте запуски и провалы хороших проектов. Один из них уже 4й год на рынке и поднял 20 лямов инвестиций в США и сейчас является одним из успешных интернет магазинов в США.

    Изначально на кармане у заказчика было денег понты и работало 2 человека на проект - бекенд и айос и копали-копали пока не выросли до постоянной команды в 5 человек (бекенд, фронтенд, айос, андроид, qa) которые непрерывно работают на проекте и копают спринтами один за другим. И ни кто никого не гонит. Заказчик купается в бабле
    Ответ написан
    Комментировать
  • Как работать с MappingFile сторонего приложения в JAVA?

    @Saliaz Автор вопроса
    2. Как научить JAVA отправлять в другое приложение команды посредством виндовых библиотек?

    С этим разобрался.
    Пример:
    private static final WinDef.HWND HWND = User32Ext.USER32EXT.FindWindow("AIMP2_RemoteInfo", null);
        private static final int WM_USER = 0x0400;
        private static final int WM_AIMP_COMMAND = WM_USER + 0x75;
    
        public static void main(String[] args) {
            sendMsgToAimp(17);
        }
    
        public interface User32Ext extends User32 {
    
            User32Ext USER32EXT = (User32Ext) Native.loadLibrary("user32",
                    User32Ext.class, W32APIOptions.DEFAULT_OPTIONS);
    
            int SendMessage(HWND hWnd, int Msg, int wParam, int lParam);
        }
    
        private static WinDef.HWND getHandler() {
            return HWND == null ? User32Ext.USER32EXT.FindWindow("AIMP2_RemoteInfo", null) : HWND;
        }
    
        private static void sendMsgToAimp(int cmdId) {
            User32Ext.USER32EXT.SendMessage(getHandler(), WM_AIMP_COMMAND, cmdId, 0);
        }


    А вот с:
    1. Как научить JAVA подключаться к mappingFile винды?

    немного застопорился >_>"

    Проблема следующая: получаю Pointer из функции MapViewOfFile.
    Если смотреть в пример для C# ( https://github.com/trofimchuk-t/AIMP.NET-Remote-AP... ) метода CurrentTrackInfo, то нужно привести полученный Pointer к структуре файла и считать с файла информацию. Но как это сделать понятия не имею Т_Т.

    Помогите разобраться, как вытащить информацию из полученного "поинтера"?

    Пример: получение самого поинтера
    public static void main(String[] args) {
    
            String nameFile = "AIMP2_RemoteInfo";
            WinDef.HWND HWNDkernel = Kernel32Ext.KERNEL_INS.OpenFileMapping(WinNT.GENERIC_READ, true, nameFile);
            Pointer pointer = Kernel32Ext.KERNEL_INS.MapViewOfFile(HWNDkernel, WinNT.SECTION_MAP_READ, 0, 0, 2048);
    
            System.out.println("ERROR: " + Native.getLastError());
            System.out.println("accept");
        }
    
        public interface Kernel32Ext extends Kernel32 {
    
            Kernel32Ext KERNEL_INS = (Kernel32Ext) Native.loadLibrary("Kernel32",
                    Kernel32Ext.class, W32APIOptions.DEFAULT_OPTIONS);
    
            HWND OpenFileMapping(int dwDesiredAccess, boolean bInheritHandle, String name);
        }
    Ответ написан
    Комментировать
  • А где вы берете иконки?

    copist
    @copist
    Empower people to give
    icons8.com - просто охрененная коллекция - больше 15000 иконок.
    Отличие от других коллекций - иконки рисуются согласно жёсткому руководству по стилям. Если только их использовать в своём приложении, то все иконки будут выглядеть ровно, одинаково, единообразно.
    На сайте могут собрать иконки в веб-шрифты, а также в SVG спрайт.
    Ответ написан
    Комментировать
  • Какие книги следует читать, чтоб стать программистом

    Alexx_ps
    @Alexx_ps
    Чтоб стать программистом нужны не книги, а практика, практика и еще раз практика… Даже прочитав 100 книг вы не станете программистом.
    Причем практиковаться желательно не просто примерами листинга из книги или задачками в конце главы, а нужно брать эти задачки за основу и придумывать вокруг них какую-то полезную программу. Так вы намного быстрее начнете именно программировать, а не переписывать листинги из книги.
    Ответ написан
    3 комментария
  • Какие книги следует читать, чтоб стать программистом

    @korvindest
    Сам программист и имею некоторый опыт преподавания программирования, как школьникам, так и студентам.

    Начинать с изучения алгоритмов архитектур, баз данных и прочего категорически не советую!

    Убьете в себе всякое желание развиваться в этом направлении. Лучшая мотивация для человека продолжать что то начатое, это когда он видит как что то, только что созданное им, пускай и почти бесполезное, но (!)Работает.

    Начните с какой нибудь книжки изучения языка (C, Java, C#)для начинающих. Для начала освойте основные конструкции языка: Типы данных, Ввод, Вывод, Условия, Циклы, Функции/Методы.
    Потом переходите на решение простых задач:
    — Вывести все числа от 0 до 10
    — Вывести все четные числа
    — Вывести таблицу умножения
    — Красиво отформатировать выводимую таблицу умножения
    — Вывести треугольник паскаля (тоже можно с форматированием)
    Далее стоит уже порешать простейшие алгоритмические задачи, которые потихоньку заставят вас обратиться к книжкам этой тематики:
    — Найти решение уравнения заданного коэффициентами, методом деления отрезка пополам.
    — Позволить пользователю ввести набор чисел и вывести их в сортированном виде.
    — Прочитать файл и вывести все встречающиеся в нем слова (уникальный список слов)

    … тут уже начинает кончаться фантазия потому что я еще не пил свой утренний кофе, но если вам потребуется я с удовольствием добавлю список.

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