понедельник, 27 марта 2017 г.
суббота, 11 июня 2016 г.
SCRUM: история одного спасения
— А как вы разрабатываете? Kanban, XP, Waterfall?
— Срам.
— Может быть Скрам?
— Нет, срам: каждый день стыдобушка, в конце месяца срамота
До июня месяца года 2016 я не задавалась вопросом применения технологии к управлению разработкой, все шло как шло.
Но случилось так, что набор моих компетенций расширился и лавинообразно прибавилось задач.
В попытке работать как прежде - потоково, я просто стала не успевать все делать в рабочее время и стала забирать работу на дом.
На текущем проекте заказной разработки ухудшились взаимоотношения с проектной командой, качество моей работы стало постепенно снижаться. Личного времени не осталось.
Встал вопрос личного таймменеджмента и анализа своей рабочей загрузки.
Основная проблема свелась к тому, что на проекте заказной разработки (особенность - работа без организации проекта, по обращениям Заказчика) работа с требованиями и их реализацией шла потоково. Из-за чего не удавалось ни планировать свою загрузку, ни загрузку разработчиков, ни толком анализировать взаимосвязь требований, чтобы обрабатывать их одним пакетом.
И вот тут начальник отдела посоветовал посмотреть в сторону SCRUM.
Изучила технологию. Понравилась. Сделала описание порядка взаимодействия проектной команды на основе SCRUM. Провела совещание с командой и предложила такой вариант работы. Сейчас находимся на выполнении второго спринта и я только накапливаю данные для анализа и статистики (с которой позже поделюсь). Но в целом уже сейчас могу сказать, что технология себя оправдывает в условиях:
— Срам.
— Может быть Скрам?
— Нет, срам: каждый день стыдобушка, в конце месяца срамота
До июня месяца года 2016 я не задавалась вопросом применения технологии к управлению разработкой, все шло как шло.
Но случилось так, что набор моих компетенций расширился и лавинообразно прибавилось задач.
В попытке работать как прежде - потоково, я просто стала не успевать все делать в рабочее время и стала забирать работу на дом.
На текущем проекте заказной разработки ухудшились взаимоотношения с проектной командой, качество моей работы стало постепенно снижаться. Личного времени не осталось.
Встал вопрос личного таймменеджмента и анализа своей рабочей загрузки.
Основная проблема свелась к тому, что на проекте заказной разработки (особенность - работа без организации проекта, по обращениям Заказчика) работа с требованиями и их реализацией шла потоково. Из-за чего не удавалось ни планировать свою загрузку, ни загрузку разработчиков, ни толком анализировать взаимосвязь требований, чтобы обрабатывать их одним пакетом.
И вот тут начальник отдела посоветовал посмотреть в сторону SCRUM.
Изучила технологию. Понравилась. Сделала описание порядка взаимодействия проектной команды на основе SCRUM. Провела совещание с командой и предложила такой вариант работы. Сейчас находимся на выполнении второго спринта и я только накапливаю данные для анализа и статистики (с которой позже поделюсь). Но в целом уже сейчас могу сказать, что технология себя оправдывает в условиях:
- лояльного Заказчика, готового к работе с релизами
- небольшой команды с загрузкой на нескольких проектах
- неполное участие или отсутствие РП (технология рассчитана на самоорганизовывающуюся группу)
- отсутствие возможности/средств/времени на полноценное документирование требований и описания реализации
Ощутимые преимущества:
- Выпуск релизов позволяет планировать и свою загрузку, и загрузку прочих участников команды.
- Заказчик знает какой функционал получит в релизе.
- Документирование сводится к бизнес-описанию и описанию-проектированию от разработчика + итоговое описание функционала в релизе.
- Заказчик на основе итогового описания имеет возможность с минимальными трудозатратами довести до сведения пользователей особенности нового функционала.
Немного личного
Меня зовут Ирина Ермолова.
За сравнительно недолгое время я успела поработать и сисадмином, и специалистом тех.поддержки, и разработчиком БД. Сейчас я - специалист внедрения систем электронного документооборота и аналитик (бизнес и системный).
Именно сейчас я понимаю, что я на своем месте: занимаюсь работой, которая мне нравится, общаюсь с интересными людьми, развиваюсь и личностно, и профессионально.
Первоначально этот блог создавался как онлайн-блокнот собственных или сторонних находок, для решения текущих задач.
Продолжая эту традицию, я буду писать сюда как свои наблюдения, так и интересные для меня статьи в областях меня интересующих, а это:
За сравнительно недолгое время я успела поработать и сисадмином, и специалистом тех.поддержки, и разработчиком БД. Сейчас я - специалист внедрения систем электронного документооборота и аналитик (бизнес и системный).
Именно сейчас я понимаю, что я на своем месте: занимаюсь работой, которая мне нравится, общаюсь с интересными людьми, развиваюсь и личностно, и профессионально.
Первоначально этот блог создавался как онлайн-блокнот собственных или сторонних находок, для решения текущих задач.
Продолжая эту традицию, я буду писать сюда как свои наблюдения, так и интересные для меня статьи в областях меня интересующих, а это:
- Исследование и анализ;
- Разработка ПО;
- Тестирование
- Управление разработкой
пятница, 25 октября 2013 г.
Жизненный цикл информационной системы
Жизненный цикл информационных систем – это период их создания и использования, охватывающий различные состояния, начиная с момента возникновения необходимости в такой системе и заканчивая моментом ее полного выхода из употребления у пользователей.
Основным стандартом, определяющим структуру жизненного цикла, является ГОСТ Р ИСО/МЭК 12207-02
Жизненный цикл информационных систем включает в себя четыре стадии:
Основным стандартом, определяющим структуру жизненного цикла, является ГОСТ Р ИСО/МЭК 12207-02
Жизненный цикл информационных систем включает в себя четыре стадии:
- предпроектную,
- проектировочную,
- внедрение,
- функционирование.
На предпроектной стадии можно выделить следующие этапы:
1) Сбор материалов для проектирования – предусматривает разработку и выбор варианта концепции системы, выявление всех характеристик объекта и управленческой деятельности, потоков внутренних и внешних информационных связей, состава задач и специалистов, которые будут работать в новых технологических условиях, уровень их подготовки, как будущих пользователей системы.
Как в действительности?
Специалист выезжает на территорию Заказчика и всесторонне обследует объект автоматизации: проводит опросы специалистов, изучает имеющиеся регламенты и инструкции, определяет субъектов взаимодействующих с объектом автоматизации.
Составляет описание данных и процессов.
Как в действительности?
Специалист выезжает на территорию Заказчика и всесторонне обследует объект автоматизации: проводит опросы специалистов, изучает имеющиеся регламенты и инструкции, определяет субъектов взаимодействующих с объектом автоматизации.
Составляет описание данных и процессов.
2) анализ материалов и формирование документации – составление задания на проектирование, утверждение технико-экономического обоснования.
Для успешного создания управленческой информационной системы всесторонне изучаются пути прохождения информационных потоков, как внутри предприятия, так и во внешней среде.
Стадия проектирования делится на:
1) Этап технического проектирования – формируются проектные решения по обеспечивающей и функциональной частям информационной системы, моделирование производственных, хозяйственных, финансовых ситуаций, осуществляется постановка задачи и блок-схемы и их решение.
2) Этап рабочего проектирования – осуществляется разработка и доводка системы, корректировка структуры, создание различной документации: на поставку, на установку технических средств, инструкции по эксплуатации, должностные инструкции.
Стадия внедрения информационной системы предполагает:
1) Подготовку к вводу в эксплуатацию – на этом этапе производится установка технически средств, настройка системы, обучение персонала, пробное использование.
2) Проведение опытных испытаний всех компонентов системы перед запуском.
3) Сдача в промышленную эксплуатацию, которая оформляется актом сдачи-приемки работ.
понедельник, 8 июля 2013 г.
Узнать версию JDK на сервере Oracle
create or replace and compile java source named "GetVersion" as
public class GetVersion
{
public static void printVersion()
{
String ver;
ver = System.getProperty("java.version");
System.out.println("The JDK version is " + ver);
}
}
create or replace procedure Get_JDK_Version is language java
name 'GetVersion.printVersion()';
set serveroutput on
call dbms_java.set_output(1000);
exec Get_JDK_Version;
public class GetVersion
{
public static void printVersion()
{
String ver;
ver = System.getProperty("java.version");
System.out.println("The JDK version is " + ver);
}
}
create or replace procedure Get_JDK_Version is language java
name 'GetVersion.printVersion()';
set serveroutput on
call dbms_java.set_output(1000);
exec Get_JDK_Version;
четверг, 30 мая 2013 г.
пятница, 24 мая 2013 г.
D3: Ресурсы с документацией и сообщества.
http://tigerlogic.com/tigerlogic/pick/support/documentation/ - Собственно тигерлоджиковский ресурс.
http://www.d3ref.com/ - документация по D3
http://www.pickwiki.com - wiki по pick БД
http://www.natecsystems.com/Natec_Articles.htm - Здесб статьипо D3
comp.databases.pick - Google-сообщество по pick database
http://www.d3doc.ru/ - Русско-язычный ресурс D3
http://infoved.ru/tigerlogic/index.html - Русско-язычный ресурс по D3
http://www.d3ref.com/ - документация по D3
http://www.pickwiki.com - wiki по pick БД
http://www.natecsystems.com/Natec_Articles.htm - Здесб статьипо D3
comp.databases.pick - Google-сообщество по pick database
http://www.d3doc.ru/ - Русско-язычный ресурс D3
http://infoved.ru/tigerlogic/index.html - Русско-язычный ресурс по D3
четверг, 23 мая 2013 г.
Ошибка:Серверу GDM не удалось записать в ваш авторизационный файл.
Серверу GDM не удалось записать в ваш авторизационный файл. Это может "
"означать, что не хватает дискового пространства или ваш домашний каталог не "
"удалось открыть для записи. В любом случае, невозможно войти в сеанс. "
"Свяжитесь со своим системным администратором
проблема решилась так
rm -rvf /tmp/*
"означать, что не хватает дискового пространства или ваш домашний каталог не "
"удалось открыть для записи. В любом случае, невозможно войти в сеанс. "
"Свяжитесь со своим системным администратором
проблема решилась так
rm -rvf /tmp/*
Виртуалка:монтирование /home на раздел виртуального диска.
1. Создать виртуальный диск
2. в ОС (в моем случае Oracle Linux 5) под root создать раздел на подключенном виртуальном диске с помощью
fdisk -l // смотрим интересующее нас устройство
fdisk /dev/sdb
дальше пользуемся меню - m
n - создать раздел
после того, как раздел создан, форматируем в нужную FS
mkfs.ext3 /dev/sdb1
далее редактируем /etc/fstab, для автоматического монтирования /home при старте системы
blkid >>/etc/fstab
Открываем редактор (mcedit, например)
и удаляем все строки кроме интересующего нас раздела, на который мы будем монтировать /home:
Приводим строку из вида:
/dev/sdb1: UUID="5a179614-0415-48c6-a9ad-3f6ad9596619" TYPE="ext3"
к виду:
UUID=5a179614-0415-48c6-a9ad-3f6ad9596619 ext3 /home default 0 2
Сохраняем изменения.
Выполняем reboot
Все готово.
2. в ОС (в моем случае Oracle Linux 5) под root создать раздел на подключенном виртуальном диске с помощью
fdisk -l // смотрим интересующее нас устройство
fdisk /dev/sdb
дальше пользуемся меню - m
n - создать раздел
после того, как раздел создан, форматируем в нужную FS
mkfs.ext3 /dev/sdb1
далее редактируем /etc/fstab, для автоматического монтирования /home при старте системы
blkid >>/etc/fstab
Открываем редактор (mcedit, например)
и удаляем все строки кроме интересующего нас раздела, на который мы будем монтировать /home:
Приводим строку из вида:
/dev/sdb1: UUID="5a179614-0415-48c6-a9ad-3f6ad9596619" TYPE="ext3"
к виду:
UUID=5a179614-0415-48c6-a9ad-3f6ad9596619 ext3 /home default 0 2
Сохраняем изменения.
Выполняем reboot
Все готово.
пятница, 12 апреля 2013 г.
Удалить из строки лишние символы char(9,10,13,32)
MSSQL
Убрать лишние символы во всей строке.
/*Заменяем на пробелы chr(9),chr(10)и chr(13), убираем пробелы в начале и конце строки*/
set @v_str =rtrim(ltrim(replace(replace(replace(@v_str,char(9),char(32)),char(13),char(32)),char(10),char(32))))
/*Убираем лишние пробелы*/
set @v_str = replace(replace(replace(@v_str,char(32),char(32) + char(216)),char(216) + char(32),char(0)),char(216),char(0))
Убрать лишние символы в начале и конце строки
set @v_str = rtrim(ltrim(@v_str))
While (Len(@v_str)>0) and (ascii(right(@v_str,1)) in(9,10,13))
Set @v_str = Left(@v_str,Len(@v_str)-1)
While (Len(@v_str)>0) and (ascii(@v_str) in(9,10,13))
Set @v_str = Right(@v_str,Len(@v_str)-1)
ORACLE
Убрать лишние символы во всей строке.
/*Заменяем на пробелы chr(9),chr(10)и chr(13), убираем пробелы в начале и конце строки*/
v_str :=rtrim(ltrim(replace(replace(replace(v_str,chr(9),chr(32)),chr(13),chr(32)),chr(10),chr(32))));
/*Убираем лишние пробелы*/
v_str :=replace(replace(replace(v_str,chr(32),chr(32)||chr(216)),chr(216)||chr(32)),chr(216));
Убрать лишние символы в начале и конце строки
v_str := trim(both chr(13) from trim(both chr(10) from trim(both chr(9)from v_str )));
Убрать лишние символы во всей строке.
/*Заменяем на пробелы chr(9),chr(10)и chr(13), убираем пробелы в начале и конце строки*/
set @v_str =rtrim(ltrim(replace(replace(replace(@v_str,char(9),char(32)),char(13),char(32)),char(10),char(32))))
/*Убираем лишние пробелы*/
set @v_str = replace(replace(replace(@v_str,char(32),char(32) + char(216)),char(216) + char(32),char(0)),char(216),char(0))
Убрать лишние символы в начале и конце строки
set @v_str = rtrim(ltrim(@v_str))
While (Len(@v_str)>0) and (ascii(right(@v_str,1)) in(9,10,13))
Set @v_str = Left(@v_str,Len(@v_str)-1)
While (Len(@v_str)>0) and (ascii(@v_str) in(9,10,13))
Set @v_str = Right(@v_str,Len(@v_str)-1)
ORACLE
Убрать лишние символы во всей строке.
/*Заменяем на пробелы chr(9),chr(10)и chr(13), убираем пробелы в начале и конце строки*/
v_str :=rtrim(ltrim(replace(replace(replace(v_str,chr(9),chr(32)),chr(13),chr(32)),chr(10),chr(32))));
/*Убираем лишние пробелы*/
v_str :=replace(replace(replace(v_str,chr(32),chr(32)||chr(216)),chr(216)||chr(32)),chr(216));
Убрать лишние символы в начале и конце строки
v_str := trim(both chr(13) from trim(both chr(10) from trim(both chr(9)from v_str )));
вторник, 2 апреля 2013 г.
Регистрозависмый поиск вхождения подстроки в строку
Если collation таблицы Cyrillic_General_CI_AS, а необходимо выполнить поиск регистрозависимого вхождения подстроки в строку, сделать можно так:
selectpatindex('%Искомая подстрока%', Поле collate Cyrillic_General_CS_AS) from таблица
или так
Select Charindex('A','TestArchitect' collate Cyrillic_General_CS_AS)
selectpatindex('%Искомая подстрока%', Поле collate Cyrillic_General_CS_AS) from таблица
или так
Select Charindex('A','TestArchitect' collate Cyrillic_General_CS_AS)
вторник, 25 декабря 2012 г.
LOB
Основные правила работы с пакетом dbms_lob
- Нельзя использовать в качестве параметра пустой локатор или локатор, имеющий значение null.
- Прежде чем осуществить доступ к внешнему большому объекту, ассоциированный с ним файл должен быть открыт.
- Перед завершение pl/sql –блока нужно закрыть файл объекта bfile. Иначе параметр SESSION_MAX_OPEN_FILES в init.ora будет исчерпан.
- Прежде чем выполнять запись во внутренний большой объект, необходимо заблокировать строку, которая содержит столбец этого объекта. Это можно сделать явными блокировками или sql –операторами: select for update, update, insert.
- Правила работы с согласованными по чтению и обновленными локаторами применимы ко всем процедурам и функциям данного пакета.
- Максимальный фрагмент загружаемых данных для DBMS_LOB - 32 Kb.
понедельник, 17 декабря 2012 г.
Java-процедуры и доступ к ним из PL/SQL
Чтобы обеспечить доступ к хранимым Java-процедурам из базы данных Oracle нужно:
вторник, 27 ноября 2012 г.
Конвертеры.
UTL_RAW.CAST_TO_RAW (
c IN VARCHAR2)
- преобразует строковый параметр к типу raw. Использовано при записи в blob-поле значения raw-переменной.
UTL_RAW.CAST_TO_VARCHAR2 - преобразование из blob в строковый тип
UTL_RAW.CAST_TO_VARCHAR2 - преобразование из blob в строковый тип
понедельник, 19 ноября 2012 г.
Конспект: версионная миграция
Конспект составлен по статье: Версионная миграция структуры базы данных: основные подходы
1.Правила миграции.
-Запросы должны выполняться 1 раз
-Запросы должны выполняться в правильной последовательности.
2. Критерии
-Любую версию БД можно обновить до любой
-SQL -запросы сформировать быстро
-структура БД должна разворачивать с нуля
-быстрый откат на старую версию
3. Основание миграции
Дамп БД
4.Методы версионной миграции
1) метод инкрементных изменений
Сохраняется каждый файл изменений. Обновление версии от исходной к последней осуществляется поэтапным примененим всех изменений к исходной БД.
2)метод идемпотентных изменений
скрипт обновления применяется если объект, требующий изменений не существует.
3)метод уподобления структуры БД исходному коду.
Хранение актуальной структуры в декларативной форме.
1.Правила миграции.
-Запросы должны выполняться 1 раз
-Запросы должны выполняться в правильной последовательности.
2. Критерии
-Любую версию БД можно обновить до любой
-SQL -запросы сформировать быстро
-структура БД должна разворачивать с нуля
-быстрый откат на старую версию
3. Основание миграции
Дамп БД
4.Методы версионной миграции
1) метод инкрементных изменений
Сохраняется каждый файл изменений. Обновление версии от исходной к последней осуществляется поэтапным примененим всех изменений к исходной БД.
2)метод идемпотентных изменений
скрипт обновления применяется если объект, требующий изменений не существует.
3)метод уподобления структуры БД исходному коду.
Хранение актуальной структуры в декларативной форме.
четверг, 15 ноября 2012 г.
PL/SQL: как посмотреть объекты пользователя
1. Посмотреть все объекты пользователя:
select object_name,object_time from user_objects;
1.1. Подготовить команды удаления объектов пользователя
Select 'DROP'||chr(9)||OBJECT_TYPE||chr(9)||OBJECT_NAME from user_objects;
2. Посмотреть код пользовательских процедур
select * from user_sources;
select object_name,object_time from user_objects;
1.1. Подготовить команды удаления объектов пользователя
Select 'DROP'||chr(9)||OBJECT_TYPE||chr(9)||OBJECT_NAME from user_objects;
2. Посмотреть код пользовательских процедур
select * from user_sources;
Стоимостная оптимизация и статистика: MSSQL и Oracle
Книга - Оптимизация запросов в системах баз данных
статья - Методы оптимизации запросов в реляционных системах
Использование статистики оптимизатором запросов Microsoft SQL Server 2005
1. Статистика в MSSQL
1.1.Получение статистики для внутренних и пользовательских объектов текущей БД.
Синтаксис:
sp_createstats [ [ @indexonly = ] 'indexonly' ]
[ , [ @fullscan = ] 'fullscan' ]
[ , [ @norecompute = ] 'norecompute' ]
1.2. Получение статистики по объекту БД (таблице, представлению, полю)
Синтаксис:
статья - Методы оптимизации запросов в реляционных системах
Использование статистики оптимизатором запросов Microsoft SQL Server 2005
1. Статистика в MSSQL
1.1.Получение статистики для внутренних и пользовательских объектов текущей БД.
Синтаксис:
sp_createstats [ [ @indexonly = ] 'indexonly' ]
[ , [ @fullscan = ] 'fullscan' ]
[ , [ @norecompute = ] 'norecompute' ]
1.2. Получение статистики по объекту БД (таблице, представлению, полю)
Синтаксис:
вторник, 13 ноября 2012 г.
Планы выполнения запросов: Oracle и MSSQL
1. Инструменты получения и просмотра планов выполнения запросов .
1.1.MSSQL
Для просмотра диаграмы плана выполнения запроса необходимо:
а) сформировать запрос, для которого необходимо получить план выполнения
б) в меню Query включить - Display Estimated Execution Plan.
После выполнения запроса на вкладке Execution Plan будет отображена диаграма выполнения плана запроса.
Второй вариант:
set showplan_text on
затем выполняем запрос
1.1.MSSQL
Для просмотра диаграмы плана выполнения запроса необходимо:
а) сформировать запрос, для которого необходимо получить план выполнения
б) в меню Query включить - Display Estimated Execution Plan.
После выполнения запроса на вкладке Execution Plan будет отображена диаграма выполнения плана запроса.
Второй вариант:
set showplan_text on
затем выполняем запрос
четверг, 8 ноября 2012 г.
NLS (Oracle)
NLS (National Language Support) - Поддержка национального языка, используется для
определения настроек национального формата даты, чисел, валюты и языковых
настроек. Например, символов доллара или евро для различных стран.
среда, 7 ноября 2012 г.
MSSQL: collate, collation и information_schema
Задача:
Подготовить запрос, у которого в результирующих строках будут команды, которые меняют COLLATION столбцов в базе, с 'Cyrillic_General_CS_AS' на 'Cyrillic_General_CI_AS'.
Предусловия:
1. Понять что такое collation
2. Понять, как изменить collation столбцов в базе
Подготовить запрос, у которого в результирующих строках будут команды, которые меняют COLLATION столбцов в базе, с 'Cyrillic_General_CS_AS' на 'Cyrillic_General_CI_AS'.
Предусловия:
1. Понять что такое collation
2. Понять, как изменить collation столбцов в базе
Подписаться на:
Сообщения (Atom)
