SlideShare a Scribd company logo
1 of 20
Mobile developer is Software developer
                   maven, ant, gradle, bb-ant-tools, proguard,
                   antenna
                   junit, testng, fest assert, mockito, jmockit
                   robolectric, microemulator, robotium, j2meunit,
                   sikuli, monkeyrunner
                   roboguice, androidannotations, dagger
                   microlog, jarrut, lwuit, advanced bb ui, guava,
                   otto, actionbarsherlock, viepageindicator,
                   disklrucache
                   jenkins, teamcity, bamboo, sonar, moose
                   intellij idea, eclipse, eclipse code formatter plugin
eBuddy
• 2003, Chat and XMS
• AIM, Facebook, GoogleTalk, ICQ,
  MySpace, MSN and Yahoo
• iOS, Android, BB, Symbian, J2ME, WP7,
  Web
• 30 million monthly unique users
• 26 different nationalities


Company
Build script
•   Ant, antenna, bb-ant-tools
•   Maven
•   Proguard
•   Release autochecks
•   Reviewing gradle
Translations
• Wiki, excel
• XSLT, commit to vsc
Continuous integration
• TeamCity
• 9 agents – Linux, Windows,
  Mac
• Trunk, Beta and Release
• Pin to deploy in TC
Dependencies
• Artifactory, ivy
• SDKs
• Open Source
Analytics
• Flurry, Google analytics
• DataWareHouse
UX and customer support
Teams
• 4-5 developers, 1quality
  assurance
• Platform and feature teams
• Scrum
Project setup
• General conventions,
  definition of done
• Eclipse, IDEA
• Eclipse code formatter
  plugin
Source Control
• Trunk, release and spike
  branches
• Commit frequently, commit
  smart
• Behavior commit comments
Code
• Clean code
• Preprocessor and
  optimizations
• Comments only for firmware
  bugs workarounds
• BE developer
• Sonar for project health
Tests philosophy
Tests practice
• Quick feedback
• Robolectric, microemulator
• Emulator/simulator tests
Dependency injection
• Separate creation and usage
• Roboguice, Dagger
Other tests
• Automate regression
• Sikuli, Robotium
• Monkey runner
Knowledge sharing
•   Pair programming
•   Code review
•   Design sessions
•   Wiki
Spikes
• Clear outcome
• Timeboxed
• Presentable
Personal projects
• 2 personal projects
• One sprint duration
• Presented on company
  meeting
Conclusion
             • @jack_martynov
             • eugen.martynov@gmail.com

More Related Content

Similar to XP Days UA Pecha kucha

Threat Intelligence for IoT Security.pdf
Threat Intelligence for IoT Security.pdfThreat Intelligence for IoT Security.pdf
Threat Intelligence for IoT Security.pdfAjay Gangakhedkar
 
Android 101 - Introduction to Android Development
Android 101 - Introduction to Android DevelopmentAndroid 101 - Introduction to Android Development
Android 101 - Introduction to Android DevelopmentAndy Scherzinger
 
Android – As a tool of innovation
Android – As a tool of innovation Android – As a tool of innovation
Android – As a tool of innovation Pallab Sarkar
 
Cross-Platform Native Apps in Java (budapest.mobile)
Cross-Platform Native Apps in Java (budapest.mobile)Cross-Platform Native Apps in Java (budapest.mobile)
Cross-Platform Native Apps in Java (budapest.mobile)Gergely Kis
 
Microsoft IT Academy Summit 2011
Microsoft IT Academy Summit 2011Microsoft IT Academy Summit 2011
Microsoft IT Academy Summit 2011Lee Stott
 
JSDC 2015 Generation of Frontend
JSDC 2015 Generation of FrontendJSDC 2015 Generation of Frontend
JSDC 2015 Generation of FrontendLaura Lee
 
Node Interactive : 7 years, 7 design patterns, will node continue to outshine
Node Interactive : 7 years, 7 design patterns, will node continue to outshineNode Interactive : 7 years, 7 design patterns, will node continue to outshine
Node Interactive : 7 years, 7 design patterns, will node continue to outshineShubhra Kar
 
Resume ryan kwon
Resume   ryan kwonResume   ryan kwon
Resume ryan kwonrnals223
 
Javascript toolkit-2.0
Javascript toolkit-2.0Javascript toolkit-2.0
Javascript toolkit-2.0Thoughtworks
 
Jagan_Updated Resume
Jagan_Updated ResumeJagan_Updated Resume
Jagan_Updated ResumeJagan Mohan
 
Mobile Application Development with ANDROID
Mobile Application Development with ANDROIDMobile Application Development with ANDROID
Mobile Application Development with ANDROIDHasnain Iqbal
 
2012 java one-con3648
2012 java one-con36482012 java one-con3648
2012 java one-con3648Eing Ong
 
Brad Enterprise Solution Architect
Brad Enterprise Solution ArchitectBrad Enterprise Solution Architect
Brad Enterprise Solution ArchitectBrad Travis
 
Better Together - PHP and JavaScript Best Practices with Zend Studio 8
Better Together - PHP and JavaScript Best Practices with Zend Studio 8Better Together - PHP and JavaScript Best Practices with Zend Studio 8
Better Together - PHP and JavaScript Best Practices with Zend Studio 8Roy Ganor
 
Micro Frontends for Java Microservices - Belfast JUG 2022
Micro Frontends for Java Microservices - Belfast JUG 2022Micro Frontends for Java Microservices - Belfast JUG 2022
Micro Frontends for Java Microservices - Belfast JUG 2022Matt Raible
 

Similar to XP Days UA Pecha kucha (20)

Vaadin codemotion 2014
Vaadin codemotion 2014Vaadin codemotion 2014
Vaadin codemotion 2014
 
Threat Intelligence for IoT Security.pdf
Threat Intelligence for IoT Security.pdfThreat Intelligence for IoT Security.pdf
Threat Intelligence for IoT Security.pdf
 
Android 101 - Introduction to Android Development
Android 101 - Introduction to Android DevelopmentAndroid 101 - Introduction to Android Development
Android 101 - Introduction to Android Development
 
Android – As a tool of innovation
Android – As a tool of innovation Android – As a tool of innovation
Android – As a tool of innovation
 
Cross-Platform Native Apps in Java (budapest.mobile)
Cross-Platform Native Apps in Java (budapest.mobile)Cross-Platform Native Apps in Java (budapest.mobile)
Cross-Platform Native Apps in Java (budapest.mobile)
 
Microsoft IT Academy Summit 2011
Microsoft IT Academy Summit 2011Microsoft IT Academy Summit 2011
Microsoft IT Academy Summit 2011
 
Android.
Android.Android.
Android.
 
JSDC 2015 Generation of Frontend
JSDC 2015 Generation of FrontendJSDC 2015 Generation of Frontend
JSDC 2015 Generation of Frontend
 
Improve Android System Component Performance
Improve Android System Component PerformanceImprove Android System Component Performance
Improve Android System Component Performance
 
The Java alternative to Javascript
The Java alternative to JavascriptThe Java alternative to Javascript
The Java alternative to Javascript
 
Node Interactive : 7 years, 7 design patterns, will node continue to outshine
Node Interactive : 7 years, 7 design patterns, will node continue to outshineNode Interactive : 7 years, 7 design patterns, will node continue to outshine
Node Interactive : 7 years, 7 design patterns, will node continue to outshine
 
Resume ryan kwon
Resume   ryan kwonResume   ryan kwon
Resume ryan kwon
 
Javascript toolkit-2.0
Javascript toolkit-2.0Javascript toolkit-2.0
Javascript toolkit-2.0
 
Jagan_Updated Resume
Jagan_Updated ResumeJagan_Updated Resume
Jagan_Updated Resume
 
What is Jibe?
What is Jibe?What is Jibe?
What is Jibe?
 
Mobile Application Development with ANDROID
Mobile Application Development with ANDROIDMobile Application Development with ANDROID
Mobile Application Development with ANDROID
 
2012 java one-con3648
2012 java one-con36482012 java one-con3648
2012 java one-con3648
 
Brad Enterprise Solution Architect
Brad Enterprise Solution ArchitectBrad Enterprise Solution Architect
Brad Enterprise Solution Architect
 
Better Together - PHP and JavaScript Best Practices with Zend Studio 8
Better Together - PHP and JavaScript Best Practices with Zend Studio 8Better Together - PHP and JavaScript Best Practices with Zend Studio 8
Better Together - PHP and JavaScript Best Practices with Zend Studio 8
 
Micro Frontends for Java Microservices - Belfast JUG 2022
Micro Frontends for Java Microservices - Belfast JUG 2022Micro Frontends for Java Microservices - Belfast JUG 2022
Micro Frontends for Java Microservices - Belfast JUG 2022
 

More from Eugen Martynov

More from Eugen Martynov (7)

Kotlin Script
Kotlin ScriptKotlin Script
Kotlin Script
 
My path to freelance
My path to freelanceMy path to freelance
My path to freelance
 
Gradle Again
Gradle AgainGradle Again
Gradle Again
 
Android CD
Android CDAndroid CD
Android CD
 
Lokalise
LokaliseLokalise
Lokalise
 
Flow
FlowFlow
Flow
 
Robolectric Adventure
Robolectric AdventureRobolectric Adventure
Robolectric Adventure
 

Recently uploaded

"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesZilliz
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 

Recently uploaded (20)

"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector Databases
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 

XP Days UA Pecha kucha

Editor's Notes

  1. * После сегодняшнего тренинга, я понял насколько кажется детским мобильные разработки ентерпрайз девелоперам * И все же я не потерял интереса рассказать вам про мою песочницу, пасочки и лопатки * Уважаемые зубры, примите мою презентацию как возможный список используемых решений, если вдруг в вашей компании появятся мобильные продукты
  2. * Компания основана в 2003 и имеет два основных продукта - чат, агрегатор сервисов сообщений, и хмс, наш собственный сервис. * Продукты работают на 7 клиентских платформах и имеют более 30 миллионов юников в месяц * Если у вас смартфон в кармане, можете уже начать тестирование, это подсказка * В компании работают талантливые люди из более чем 26 стран мира
  3. Для j2me проектов мы используем ant в связке с antenna Для BlackBerry ant с плагином bb-ant-tools Для Android мы используем maven и android плагин Активно используем proguard Есть релиз авточеки, чтобы не зарелизить билды с девелоперскими урлами, отладочной информацией и другими стыдными вещами Смотрим в сторону gradle
  4. У нас есть доморощеная вики для перевода текстов - что-то переводится самими (26 национальностей) или общественностью, что-то отдается на перевод агенствам С помощью XSLT это преобразуется в файлы переводов и заливается в source control Система не фонтан и мы рассматриваем альтернативы
  5. Все крутится на TeamCity с девятью агентами - 4 linux, 3 windows, 2 mac Каждый проект имеет как минимум три конфигурации - trunk, beta и release Конфигурация пересобирается каждый комит с прогонкой юнит тестов и выкладывается в известном для всех (QA) месте Automated acceptance тесты запускаются два раза в сути, integration тестов у нас мало, но мы хотим больше :) Deploy Beta и Production происходит пином соответствующего успешного билда в TeamCity
  6. Для зависимостей используем artifactory, для антовых билдов ivy В проекты разбиты на модули, что позволяет нам иметь одно платформо независимое sdk для java клиентов для xms А в chat одна sdk и для android клиента, и для сервера Вообще, если вы берете что-то из одного проекта в другой через сорцы, то вы делаете еще больший грех, чем копипаст Используется cторонние библиотеки, если находятся баги, мы форкаем сорцы и делаем свои снапшоты, ну и так же не забываем пул реквестить в оригиналы :) Пару вещей подумываем заопенсорсить - BlackBerry simulator tests, но никак не доходят руки
  7. Очень важно понимать, кто ваши пользователи и как они используют ваше приложение, особенно для нас, ведь мы существенную чать выручки получаем с рекламы Мы используем Flurry для мобильных, Google Analytics для веба У нас есть свой DataWarehouse для bekend, где обычно дублируются важнейщие показатели для аналитики Иногда результаты часто не совпадают и это выливается в интерейснейшие исследования Все новые фичи отображены в аналитике чтобы ПО мог понять насколько она востребованна и понятна
  8. Каждый несколько месяцев проходит UX тестирование с привлечением добровольцев Поддержка пользователей идет через zendesk, который соединен с jira Смотрим jira mobile connect, но он доступен пока для ios и немного для android Все сотрудники являются ярыми альфа, бета тестерами и дают качественный feedback через zendesk Что очень важно, каждый мобильный разработчик является старательным пользователем своего продукта
  9. Люди разбиты на команды 4-5 разработчиков В каждой комманде один QA и идут жаркие дебаты по включению туда Design и UX people В XMS тимы разбиты по платформам, в Chat пара смешанных ( feature) комманд В XMS хорошо организованный scrum, а вот operations, DWH и Chat плавают между канбаном и скрамом В каждой комманде есть definition of done, planning, daily stand up, story voting и retrospective
  10. Используйте свою любимую среду. Проект либо maven либо Eclipse format. Ничего генерерованного, воспроизводимого, временного относящегося к среде в version control Обязательно code convention и автоформатирование (eclipse code formatter plugin). Ну честно, так корбит смотреть на разные отступы или искать в куче пробелов реальные изменения. Если у вас есть sonar - настройте правило
  11. Мы используем SVN :( Девелопмент идет в trunk, который бранчуется в бету и релизится Частые фокусированные комиты - разделение по действию, подсистеме Behaviour commit comments - пишите, что делает теперь приложение, а не то что сделали вы И не забываем простые правила - не заливаем не полные изменения, обновится до коммита, резолвим конфликты, запускаем тесты
  12. Растите культуру чистого кода Читабельный код Тестируемый код Опытный бекенд разработчик в мобильной команде отлично вправляет мозги мобильным разработчикам Скажите нет препроцессору и предоптимизациям Комментарии только для workarounds багов телефонных прошивок  
  13. Писать хорошие тесты сложно, писать хорошие тесты под мобильные еще сложнее. Как результат - многие/очень многие мобильные разработчики не пишут тестов Покажите/научите как тесты влияют на дизайн, на качество и скорость проекта Дебаг и логгирование становятся редким развлеченим В этом вам конечно поможет засланец из страны бекенда
  14. Добивайтесь как можно быстрого фидбека от тестов - большинство функционала должно тестировать на десктопе (junit, fest assert, mockito) Используйте решения эмулирующие апи платформы (robolectric, microemulator) Все остальное тестируется на симуляторе/емуляторе с обязательной интеграцией с CI (fledge, instrumental tests, j2meunit)    Ищите/пробуйте свое решение, часто фрейморки активно подменяющие ClassLoader и использующие Reflection конфликтуют между собой
  15. Разделяйте создание объектов и их использование Мы не нашли хорошего фреймворка для j2me/blackberry, используем самописный контейнер Спасибо Dalvik есть хорошие DI решения - RoboGuice и  сравнительно новый Dagger
  16. Очень много времени уходит на regression. Срочно автоматизируйте! Мы используем sikuli для j2me, bb и android. Но смотрим в сторону RoboGuice   MonkeyRunner полезная штука для проверки стабильности приложения
  17. Парное программирование полезная штука, особено когда в команде люди с разным багажом Мы создаем тикет-напоминание в jira для парного программирования и обмена знаниями. Переключение обычно происходит после коммита Код ревью происходит в течении дня независимо в комманде В конце стори происходит коммандный код ревью, а если стори была 8+, то в начале происходит коммандный дизайн митинг Информация хранится в вики, эта часть у нас страдает, но мы работаем над этим А также туда вносятся результаты спайков
  18. Очень важная практика, которая часто используется в компании - когда нет четкого понимания проблемы, ипользования бибилиотеки или есть не проясненые зависимости Перед стартом - обязательно понимание, что должно быть выходом Timeboxed - не более 12 часов (2 человека дня) Фиксируется в вики и обязательно презентуется ПО
  19. Несколько фич выросло из личных проектов - location based discovery, stamps Каждый имеет право на два личных проекта в году. Каждый проект не более одного спринта Отличная возможность попробовать новое, интересное или закодить важное для себя
  20. Живите и болейте своими продуктами, страдайте умеренным перфекционизмом, помните, что команда ответсвенна за качество и вы в первую очередь Не переставайте учится и искать более оптимальные процессы и решения Читайте, смотрите, общайтесь с коллеками, конкурентами и единомышленниками Энергии и удачи вам