Отговори на тема  [ 6 мнения ] 
Препоръка за платформа за организация на развойния процес? 
Автор Съобщение
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Пон Мар 13, 2006 12:59 pm
Мнения: 3855
Местоположение: Габрово
Мнение Препоръка за платформа за организация на развойния процес?
Търся платформа (не облачна, self hosted задължително) за организация на работата в софтуерна фирма. В момента ползваме отделни неща за различните части, които донякъде се интегрират някак си, но не е оптимално. Търсеното трябва да е нещо като github enterprise (а защо не и точно то).
Планираме да минем на git (досега ползваме svn) и в тая връзка се отваря възможност да се похарчат едни пари и време. Отделно ще се гони изчистване на самия процес, като се водим от git flow.
Гоним CI процес и в момента е малко мъка - всичките ни инструменти са безплатни/open source и не са връзват един с друг толкова гладко, колкото ми се иска.
Нещата, които ни трябват, или по-точно които ползваме в момента, са:
- issue tracking (задачи)
- source control - тук със сигурност искаме git, и по всяка вероятност ще ни трябва аналогия на централизирано репозитори; екстра ще бъде ако имаме някакъв вид mirroring на няколко физически локации, за да може всяка част от фирмата да работи с близък (локален) сървър
- code review във връзка с git flow - тук по-скоро говорим за интегриране на ревютата със сорса (логично) и с issue tracking-а - т.е. pull request идеята (или аналогична)
- web достъп до всички аспекти - мениджър или програмист или QA да имат лесен достъп през една точка (страница) и информацията да е лесно откриваема - т.е. качествено търсене в Issue-та, сорс и т.н.
- билд сървър за компилиране и автоматично тестване - отново свързан тясно със сорс контрола и обратно с issue tracking-а за да се продължи работата - тук изборът е основно между jenkins и teamcity - имаме известно 'наследство' и на двете, но за мен teamcity е фаворитът; други опции също са възможни, например bamboo което е от attlasian изгледа добре
- към билд сървъра, добра интеграция с тестови framework-ове - да могат поне резултатите от теста да се връщат към билд сървъра за да се вземе решение как да продължи процеса
- хранилище за артифакти - билднати продукти, документация и подобни - нещо като artifactory примерно
- интеграция с IDE за желаещите - някой колеги не тачат командния ред и затова трябва да има и удобен интерфейс откъм еклипс, VS, ...
- веб интерфейса го споменахме вече
- ... и всякакви други екстри, които не се сещам в момента

На първо време ми трябват препоръки към инструменти, за да мога да организирам проучване на всеки от тях с цел да се избере нещо накрая. Теоретично подковаване в смисъла на статии по темата за развойния процес също ще са полезни. В момента ползвам наш си процес, които сме измисляли/копирали отчасти през годините, ама това процес води до леко забатчване и трябва да се удари един ресет и да си остане опита като коректив при измисляне/избор на новото. Целите на CI променят голяма част от изискванията към процеса и инструментариума - по-рано много неща се случваха като ръчни действия, които трябва по процес да се свършат от човек с определена роля (примерно тестер да даде фийдбек в някакъв момент) - за CI автоматичния тест го прави, но това не е предвидено/удобно при нас. Отделно не сме предвиждали автоматични стъпки по сорса - например проверки с анализатори, които да се закачат като стъпки след commit примерно.
Всъщност може да се каже че явно се опитваме да направим процеса малко по-ajile, но терминът е възприема много негативно от някой колеги и затова се въздържам да го ползвам.

За момента имам тестов ("изследователски") setup от няколко инструмента - Gitea за сорс контрол, pull request-и/code review, после teamcity за автоматичен чек на сорса, билд, unit test-ове и после интеграционни тестове на по-големите (по-крайни) артифакти и т.н.

Както споменах, github е масовото, което знаем всички. Аналогичен е gitlab, по-точно gitlab EE версията. Тия яко ме натискат да се чуем и искат да ни пробутат техните неща. Attlasian имат набор от продукти за отделните части - jira, bitbucket, bamboo.
Любимите ми jetbrains имат youtrack, teamcity, upsource, hub ... - но нямат сорс контрол към комплекта. По-точно нямаха - миналата седмица пуснаха jetbrains.space, което изглежда да е точно каквото ми трябва, от точния производител - обаче за момента е тестово и само облачно - предвиждат on premise версия, но не е ясно кога, къде и колко.
Има едно phabricator - огромно като функционалност, но ми изглежда че ще е твърде сложно за въвеждане и ползване - след като първите 5-10 минути не намерих как да го захвана сигурно няма да се хареса на колегите.


Нед Фев 09, 2020 12:24 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Вто Окт 11, 2011 10:53 pm
Мнения: 4174
Местоположение: Brussels / Пловдив
Мнение Re: Препоръка за платформа за организация на развойния проце
Ей как ме настъпа по мазола :D

От години ме тормози този въпрос и до момента най доброто което съм намерил е http://openproject.org - това е форк на redmine с добавени корпоративни функционалности т.е. по удобно е за ползване във фирма. Не покрива 100% от нуждите на софтуерна фирма но пък с разни плъгини може да се нагласи - jenkins за билдване, reviewboard за код ревюта и т.н. Едно време колегата беше вкарал мното git hooks:
  • да не може да се прави комит който не съдържа #issue в описанието
  • да блокира започването на код ревю докато дженкинс не рапортува за този комит, че успешно се е билднал и изтествал
  • да не може да се добавя към мастер бранча докато няма одобрение от код ревюто
По този начин целия дев процес се инициира от issue и завършва в мастър бранча като има детайлен лог за всичко свързано с него - коментари, промени в кога, кога е работено по него, кой е работил, кой го е одобрил и т.н.

Друг интересен момент беше, че със всеки буилд се вкарваше в сорс инклуде с SHA1 на комита който се билдва и лог системата при всяко стартиране на продукта първо логваше този SHA1, а във всяко съобщение се записваше и адреса на функцията където е станало - така като получихме лог с проблем с разни скриптове се отваряше директно сорса от този комит и с addr2bin се отиваше направо в съответния сорс файл и се отваряше в ИДЕ-то.

Всичко беше чудесно, само че колегата толкова се беше фокусирал да прави това, че не му оставаше време за нищо друго и работата по проекта яко куцаше макар и да беше организирана перфектно - екипа бяхме само аз и той ... накрая фирмата за малко да фалира пък ние отдавна не работим там :D

_________________
Мразя да мразя ...


Нед Фев 09, 2020 1:31 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Сря Яну 26, 2005 1:01 pm
Мнения: 1952
Местоположение: Варна
Мнение Re: Препоръка за платформа за организация на развойния проце
gicho, ако ми позволиш да обобщя моя прочит на темата ти: Смяната на типа вершън контрол система от svn към git е само формален повод да преминете от SDLC (Software Development Life Cycle) към ALM (Application lifecycle management).
По принцип минаването към git само по себе си няма да ви донесе много. git flow, не знам какво конкретно имаш предвид под това, но всеки различен екип, при различен проект и в различни компании може да има свой flow.
Не съм екперт по сглобяването на подобни "платформи за организация", но успеха зависи изключително от това как платформата е приета от хората. Има фирми където самите лидери задават крив начин на употреба и каквато и да е системата("платформата") ако не се ползва със съответната култура и дисциплина резултата е плачевен.
Освен всичко друго, добре е да добавиш в списъка от изисквания и възможностите за интеграция със съответни ALM системи на клиенти.
Моя опит последните 7-8 месеца е с инструменти/платформа предимно от Atlassian (jira, bitbucket, confluence, sourcetree, artifactory, bamboo...). Сглобка от инструменти, която има всичко необходимо за работа по сравнително големи и сложни софтуерни проекти. Но пак... от всичките възможности при нас се ползват едва < 20%. И в някои нередки случаи ситуацията се изражда до толкова че същинската дейност регресира до примитивни mail/excel инструменти. jira билетите стоят празни или пълни с объркваща информация. Информацията набутана в коментарите, все едно че имаме социална мрежа а не добре обмислена сглобка от инструменти. В commit message писано нещо колкото да не е без хич... не рядко един commit с всичко на куп. Девелопорите си работят локално и в един хубав слънчев ден когато решат да правят pull request, push-ват бранч към централното репозитори та чак тогава виждаш, какво всъщност правят.
В тоя дух svn предлага по-малко възможности за извращения.

Та пак да посоча моите 2 ст. жизненоважно е начина на работа да бъде приет(или наложен) на хората от екипите. Инструментите и платформата дават само основата и рамката.

За код ревю съм ползвал AgileReview - инструмент под формата на Eclipse плъгин. Не че е нещо особено и велико. Но го погледни ако не си го използвал вече де.

_________________
Най-опасният враг на истината и свободата е мнозинството.


Нед Фев 09, 2020 4:01 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Пон Мар 13, 2006 12:59 pm
Мнения: 3855
Местоположение: Габрово
Мнение Re: Препоръка за платформа за организация на развойния проце
Погледнах набързо това AgileReview - сигурно ще свърши работа. Не ми се иска обаче да стигам да налагане на desktop инструменти за отделните неща, струва ми се че колаборацията ще е по-успешна на web платформа.
Със svn проблемите не са по-малко - няма бранчове за feature-и, но пък има за някакви уж специални проекти, много код нахвърлян и необединен обратно в разни таг-ове на release-и, с оправданията да не счупят mainline-а, не-commit-вани проекти с месеци поради същите притеснения да не счупят на някого нещата, пръснати неща без идея кое откъде идва, репозиторита в който няма mainline/trunk, а кода е направо в root-а.
Отделно сървъра е надалеко и латентността никак не е малка през всичките VPN-и операциите са тегави, да не говорим за случаите в които няма връзка и не можеш да свършиш нещо.
Отделно svn-а се държи не много адекватно като вход на билд сървърите и изисква повече администриране - не че и там не може да се постигне self service, но пак ще иска известна работа по гласене и подкарване на някакъв панел, с права и нива на достъп. Предпочитам и това да е готово и интегирано - не е ок да търсиш някой от IT отдела за да ти пусне ново репозитори - по тази причина има едни мастодонти, в които работата е трудна и не е ясно кой за какво ги ползва, оттам и бранчването не се случва навреме.

Да, платформата е за да наложи процес на работа - постепенно, първо в единични проекти (в смисъл с по един постоянен програмист), после и в по-голям мащаб. Имаме няколко почти независими екипа и много малко код се използва от повече от един екип. Процесът ще е инкрементален, но е нужен - дори само за да се осигури време за реогранизация на проектите и репозиторитата.
След много години работа с редмайн като че ли имаме културата там да се движат проектите и информацията за issue-тата - надявам се това да спомогне при евентуална миграция, поне с изградените (трудно) навици да се работи в тоя тертип.
С предишната платформа почнахме и се учихме в движение - промените водеха до критики и недоволство в потребителите до ниво да не искат да го ползват. Сега целта е да има изградена идея за процеса и отговори на въпросите - по възможност тия отговори да са вече написани и налични за справка от желаещите (т.е. да има документация към системата от доставчика).


Пон Фев 10, 2020 5:47 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Сря Яну 26, 2005 1:01 pm
Мнения: 1952
Местоположение: Варна
Мнение Re: Препоръка за платформа за организация на развойния проце
gicho написа:
Със svn проблемите не са по-малко ...

Да, не съобразих че се изказвам без да знам нищо за ситуацията. Но може да се каже, че проблемите ви са заради организация и неправилна употреба на вершън контрол системата. С две думи: svn flow.
За сравнение в момента, във фирмата в която работя, ползваме git, но културата за flow е на светлинни години назад в сравнение с друга фирма където ползвахме svn и организацията и дисциплината бяха на ниво.
Разбира се забравих и за неудобствата, когато нямаш връзка с централното репозитори... :)

_________________
Най-опасният враг на истината и свободата е мнозинството.


Пон Фев 10, 2020 7:34 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Пон Дек 19, 2005 11:21 am
Мнения: 1025
Мнение Re: Препоръка за платформа за организация на развойния проце
За code review доста open source проекти ползват Gerrit, може да му хвърлиш едно око ако не си.


Сря Фев 12, 2020 5:55 pm
Профил
Покажи мненията от миналия:  Сортирай по  
Отговори на тема   [ 6 мнения ] 

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 4 госта


Вие не можете да пускате нови теми
Вие не можете да отговаряте на теми
Вие не можете да променяте собственото си мнение
Вие не можете да изтривате собствените си мнения
Вие не можете да прикачвате файл

Търсене:
Иди на:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.
Хостинг и Домейни