SlideShare a Scribd company logo
Igor Bondarenko
Process organization of the Magento
modules development.
About Myself
• 10 years in IT
• 2 years in Magento
Development
• Head of Business
Development in Neklo
What would I talking
about?
• How to choose an idea
• Selecting a tools
• How to prepare a team
• Development processes
• Advises to developers
• QA and Testing
• How to release an extension
Assign choosing of
ideas to the business
development team
After choosing the idea,
calculate the economic
feasibility of extension
development
Do NOT delegate
choosing of the idea to
developer
The idea is chosen, it's time to start developing. But
before you start designing, you must define the tools
Self-developed tools
• Mageinstall
• Cloud VM Server
• “Custom Store”
• QA Test Scripts
Available for all tools
• VCS
• Developer Toolbar
• Log Popup
• Turn Developer Mode On
• Setup Issue Tracker
Formation of the team.
Use narrowly skilled
professionals.
Working with a team of 2
or more people
• Select Team lead
• Split Magento Versions
• Tasks decomposition
• Assign tasks to skilled person
Team of one developer
• Start working with minor Magento versions
• Develop extension sequentially:
• Backend
• Admin part
• Frontend
How to provide compatibility
with third-party extensions?
What should developers
team do?
• Use integration through events
• Do not use Rewrite
• Use frontend integration life
hacks:
• Layout substitution
• JS Injection
What should QA team do?
• Test on “working” Magento
• Test compatibility with top
rated extensions
• Do NOT test compatibility with
all of extensions
• Code Review
• Use Code Style
• Pair Programming
Testing of extensions
Key points of
testing process
• Stop development until the end of
first QA iteration
• Switch project during first
iteration of testing
• Starting from the second iteration
of testing start to work in parallel
with the QA team
Test Automation
• Tests should be written by QA
Team
• Don’t use complex
frameworks:
• Short-term activity
• Skilled QA
• Negative ROI
What to use for test automation?
Use Selenium IDE or SpiderTest:
•Powerful test recorder
•Testers should not have
programming skills
•Developers could use any
programming language
•Lightweight scripts
•Easy to attach scripts to defects
•Free tools
Ready for release?
But don’t you forgot nothing?
Forgot to test readiness
for loading in Magento
Connect
• Build a package
• First load and wait for
approve, then promote
• Test installation file per
file
Key success factors
• Perform business analysis
• Using high-quality and thoughtful
tools
• Using narrowly skilled
professionals
• Don’t forgot testing
Thank you for attention!
Skype: igor.bondarenko1
E-mail: igor.bondarenko@neklo.com

More Related Content

PPTX
Continuous Integration and Continuous Deployment in Enterprise scenario
PDF
Continuous Integration
ODP
Dedicated QA person in scrum team
PPTX
Introduction to Continuous Delivery (BBWorld/DevCon 2013)
PPTX
QA Automation testing online training
PDF
Put "fast" back in "fast feedback"
PDF
Drulenium - Testing Made Easy
PPTX
Continuous Delivery
Continuous Integration and Continuous Deployment in Enterprise scenario
Continuous Integration
Dedicated QA person in scrum team
Introduction to Continuous Delivery (BBWorld/DevCon 2013)
QA Automation testing online training
Put "fast" back in "fast feedback"
Drulenium - Testing Made Easy
Continuous Delivery

What's hot (20)

PPTX
Cloud load testing with Visual Studio Team Services
PPTX
DevQAOps - Surviving in a DevOps World
PDF
Usg Web Tech Day 2016 - Continuous Integration, Deployment, and Delivery
PDF
Break Up the Monolith- Testing Microservices by Marcus Merrell
PPTX
Using Continuous Integration To Ensure Project Health New
PPTX
Continuous Integration as a Way of Life
PDF
Continuous integration (eng)
ZIP
Introduction To Continuous Integration
PPTX
Alm with tfs 2013
PPTX
Azure Integration DTAP Series, How to go from Development to Production – Par...
PDF
How to Measure Success in Continuous Testing by Fernando Vidal and Amir Rozen...
PDF
GTAC 2015
PPTX
Software engineering
PDF
Dev ops
PDF
Simple Continous Integration
PPT
Continous Integration: A Case Study
PDF
Overview the Challenges and Limitations of Android App Automation with Espres...
PDF
Training Webinars - Secret hacks for OutSystems 10
PDF
How Vanguard Got to a CD-CD World by Craig Schwarzwald
PPTX
Continuous integration
Cloud load testing with Visual Studio Team Services
DevQAOps - Surviving in a DevOps World
Usg Web Tech Day 2016 - Continuous Integration, Deployment, and Delivery
Break Up the Monolith- Testing Microservices by Marcus Merrell
Using Continuous Integration To Ensure Project Health New
Continuous Integration as a Way of Life
Continuous integration (eng)
Introduction To Continuous Integration
Alm with tfs 2013
Azure Integration DTAP Series, How to go from Development to Production – Par...
How to Measure Success in Continuous Testing by Fernando Vidal and Amir Rozen...
GTAC 2015
Software engineering
Dev ops
Simple Continous Integration
Continous Integration: A Case Study
Overview the Challenges and Limitations of Android App Automation with Espres...
Training Webinars - Secret hacks for OutSystems 10
How Vanguard Got to a CD-CD World by Craig Schwarzwald
Continuous integration
Ad

Viewers also liked (8)

PPT
Дмитрий Голубовский (TagesJump) - Как заказчику и разработчику не потерять св...
PDF
Александр Гальцов (aheadWorks) - Повышение эффективности сотрудничества в рам...
PPTX
Александр Усунов (TagesJump) - Magento в AWS
PDF
Илья Коган (Яндекс.Маркет) - Новые возможности сервиса
PDF
Ben Marks - Magento Inc.
PDF
Сергей Двоскин (ASTRIO) - Стратегия создания и развития успешного проекта на ...
PDF
Федор Вирин (Data Insight) - Ecommerce 2015
PDF
Андрей Татаранович (Amasty) - Секретные материалы техподдержки
Дмитрий Голубовский (TagesJump) - Как заказчику и разработчику не потерять св...
Александр Гальцов (aheadWorks) - Повышение эффективности сотрудничества в рам...
Александр Усунов (TagesJump) - Magento в AWS
Илья Коган (Яндекс.Маркет) - Новые возможности сервиса
Ben Marks - Magento Inc.
Сергей Двоскин (ASTRIO) - Стратегия создания и развития успешного проекта на ...
Федор Вирин (Data Insight) - Ecommerce 2015
Андрей Татаранович (Amasty) - Секретные материалы техподдержки
Ad

Similar to Игорь Бондаренко (Neklo) - Организация процесса разработки модулей для Magento (20)

PDF
Igor Bondarenko - Process organization of the development modules specific to...
PDF
High Performance Software Engineering Teams
PPTX
Jenkins an opensource CICD platform for all
PDF
Software Testing Basic Concepts
PPTX
How We Build Confidence with Continuous Integration and Automated Testing
PPTX
Presentation python Final2.pptx1[1].pptx
PPTX
Lean-Agile Development with SharePoint - Bill Ayers
PDF
Getting Started With Coded UI testing: Building Your First Automated Test
PDF
jenkins.pdf
PDF
Jenkins_1679702972.pdf
PPTX
Test automation proposal
PDF
End-end tests as first class citizens - SeleniumConf 2020
PPTX
Working Agile with Scrum and TFS 2013
PPTX
Making software development processes to work for you
PPTX
Continuous Integration
PPTX
Building environment of #UserDevOps and not only DevOps
PDF
Introduction to-automated-testing
PDF
Introduction to Automated Testing
PDF
Enter the mind of an Agile Developer
Igor Bondarenko - Process organization of the development modules specific to...
High Performance Software Engineering Teams
Jenkins an opensource CICD platform for all
Software Testing Basic Concepts
How We Build Confidence with Continuous Integration and Automated Testing
Presentation python Final2.pptx1[1].pptx
Lean-Agile Development with SharePoint - Bill Ayers
Getting Started With Coded UI testing: Building Your First Automated Test
jenkins.pdf
Jenkins_1679702972.pdf
Test automation proposal
End-end tests as first class citizens - SeleniumConf 2020
Working Agile with Scrum and TFS 2013
Making software development processes to work for you
Continuous Integration
Building environment of #UserDevOps and not only DevOps
Introduction to-automated-testing
Introduction to Automated Testing
Enter the mind of an Agile Developer

More from meet_magento (20)

PPT
Дмитрий Голубовский (TagesJump) - Финансовые и технологические преимущества M...
PDF
Олег Чеховский (Turnkey Ecommerce) - Magento в России
PDF
Мария Шульга (Яндекс) - Покупка на Маркете
PDF
Федор Вирин (Data Insight) - Исследование изменений потребительского поведения
PPTX
Данила Тарасов (MyGento) - Интеграция розницы в Magento
PPTX
Артем Игнатьев (Atalan) - Проектируем каталог интернет-магазина
PPT
Кирилл Голуб (aheadWorks) - Бизнес на Magento в 2015
PPT
Елена Ткачева (Magento) - Особенности Magento2
PDF
Thomas Fleck (Netresearch) - Meet magento ru 2014 - standardisation
PDF
Magento Live Germany
PDF
Turnkey Ecommerce - Сергей Двоскин
PDF
Turnkey Ecommerce - Олег Чеховский
PPTX
Magento - Каранда Александр, Кирилл Морозов
ODP
Atalan - Илья Зинченко
PPT
TagesJump - Дмитрий Голубовский
PPT
Atwix - Ярослав Рогоза
PDF
aheadWorks - Петр Самойлов
PPTX
CyberHULL - Вадим Сытников
PPT
aheadWorks - Кирилл Голуб
PDF
Magento - Антон Капля
Дмитрий Голубовский (TagesJump) - Финансовые и технологические преимущества M...
Олег Чеховский (Turnkey Ecommerce) - Magento в России
Мария Шульга (Яндекс) - Покупка на Маркете
Федор Вирин (Data Insight) - Исследование изменений потребительского поведения
Данила Тарасов (MyGento) - Интеграция розницы в Magento
Артем Игнатьев (Atalan) - Проектируем каталог интернет-магазина
Кирилл Голуб (aheadWorks) - Бизнес на Magento в 2015
Елена Ткачева (Magento) - Особенности Magento2
Thomas Fleck (Netresearch) - Meet magento ru 2014 - standardisation
Magento Live Germany
Turnkey Ecommerce - Сергей Двоскин
Turnkey Ecommerce - Олег Чеховский
Magento - Каранда Александр, Кирилл Морозов
Atalan - Илья Зинченко
TagesJump - Дмитрий Голубовский
Atwix - Ярослав Рогоза
aheadWorks - Петр Самойлов
CyberHULL - Вадим Сытников
aheadWorks - Кирилл Голуб
Magento - Антон Капля

Recently uploaded (20)

PDF
SASE Traffic Flow - ZTNA Connector-1.pdf
PPTX
Introduction to Information and Communication Technology
PPTX
SAP Ariba Sourcing PPT for learning material
PDF
WebRTC in SignalWire - troubleshooting media negotiation
PPTX
innovation process that make everything different.pptx
PPTX
Digital Literacy And Online Safety on internet
PPT
Design_with_Watersergyerge45hrbgre4top (1).ppt
PPTX
PptxGenJS_Demo_Chart_20250317130215833.pptx
PDF
Automated vs Manual WooCommerce to Shopify Migration_ Pros & Cons.pdf
PPTX
Introduction about ICD -10 and ICD11 on 5.8.25.pptx
PPTX
international classification of diseases ICD-10 review PPT.pptx
PDF
Sims 4 Historia para lo sims 4 para jugar
PPTX
June-4-Sermon-Powerpoint.pptx USE THIS FOR YOUR MOTIVATION
PDF
Vigrab.top – Online Tool for Downloading and Converting Social Media Videos a...
PPTX
QR Codes Qr codecodecodecodecocodedecodecode
PPTX
Module 1 - Cyber Law and Ethics 101.pptx
PDF
Triggering QUIC, presented by Geoff Huston at IETF 123
PPTX
Job_Card_System_Styled_lorem_ipsum_.pptx
PDF
The New Creative Director: How AI Tools for Social Media Content Creation Are...
PPTX
Introuction about ICD -10 and ICD-11 PPT.pptx
SASE Traffic Flow - ZTNA Connector-1.pdf
Introduction to Information and Communication Technology
SAP Ariba Sourcing PPT for learning material
WebRTC in SignalWire - troubleshooting media negotiation
innovation process that make everything different.pptx
Digital Literacy And Online Safety on internet
Design_with_Watersergyerge45hrbgre4top (1).ppt
PptxGenJS_Demo_Chart_20250317130215833.pptx
Automated vs Manual WooCommerce to Shopify Migration_ Pros & Cons.pdf
Introduction about ICD -10 and ICD11 on 5.8.25.pptx
international classification of diseases ICD-10 review PPT.pptx
Sims 4 Historia para lo sims 4 para jugar
June-4-Sermon-Powerpoint.pptx USE THIS FOR YOUR MOTIVATION
Vigrab.top – Online Tool for Downloading and Converting Social Media Videos a...
QR Codes Qr codecodecodecodecocodedecodecode
Module 1 - Cyber Law and Ethics 101.pptx
Triggering QUIC, presented by Geoff Huston at IETF 123
Job_Card_System_Styled_lorem_ipsum_.pptx
The New Creative Director: How AI Tools for Social Media Content Creation Are...
Introuction about ICD -10 and ICD-11 PPT.pptx

Игорь Бондаренко (Neklo) - Организация процесса разработки модулей для Magento

  • 1. Igor Bondarenko Process organization of the Magento modules development.
  • 2. About Myself • 10 years in IT • 2 years in Magento Development • Head of Business Development in Neklo
  • 3. What would I talking about? • How to choose an idea • Selecting a tools • How to prepare a team • Development processes • Advises to developers • QA and Testing • How to release an extension
  • 4. Assign choosing of ideas to the business development team
  • 5. After choosing the idea, calculate the economic feasibility of extension development
  • 6. Do NOT delegate choosing of the idea to developer
  • 7. The idea is chosen, it's time to start developing. But before you start designing, you must define the tools
  • 8. Self-developed tools • Mageinstall • Cloud VM Server • “Custom Store” • QA Test Scripts
  • 9. Available for all tools • VCS • Developer Toolbar • Log Popup • Turn Developer Mode On • Setup Issue Tracker
  • 10. Formation of the team. Use narrowly skilled professionals.
  • 11. Working with a team of 2 or more people • Select Team lead • Split Magento Versions • Tasks decomposition • Assign tasks to skilled person
  • 12. Team of one developer • Start working with minor Magento versions • Develop extension sequentially: • Backend • Admin part • Frontend
  • 13. How to provide compatibility with third-party extensions?
  • 14. What should developers team do? • Use integration through events • Do not use Rewrite • Use frontend integration life hacks: • Layout substitution • JS Injection
  • 15. What should QA team do? • Test on “working” Magento • Test compatibility with top rated extensions • Do NOT test compatibility with all of extensions
  • 16. • Code Review • Use Code Style • Pair Programming
  • 18. Key points of testing process • Stop development until the end of first QA iteration • Switch project during first iteration of testing • Starting from the second iteration of testing start to work in parallel with the QA team
  • 19. Test Automation • Tests should be written by QA Team • Don’t use complex frameworks: • Short-term activity • Skilled QA • Negative ROI
  • 20. What to use for test automation? Use Selenium IDE or SpiderTest: •Powerful test recorder •Testers should not have programming skills •Developers could use any programming language •Lightweight scripts •Easy to attach scripts to defects •Free tools
  • 21. Ready for release? But don’t you forgot nothing?
  • 22. Forgot to test readiness for loading in Magento Connect • Build a package • First load and wait for approve, then promote • Test installation file per file
  • 23. Key success factors • Perform business analysis • Using high-quality and thoughtful tools • Using narrowly skilled professionals • Don’t forgot testing
  • 24. Thank you for attention! Skype: igor.bondarenko1 E-mail: igor.bondarenko@neklo.com

Editor's Notes

  • #2: Greeting Hello everyone, my name is Igor Bondarenko. Stating the problem In my report I will speak upon how to organize the process of Magento extensions development.
  • #3: About Me A few words about me: 10 years in IT, for the last few years have been involved in Magento development, Head of Business development at Neklo
  • #4: Introduction to the topic Over the years of my working experience, I have faced the fact that the way development process is organized differs greatly from company to company. At the same time, if we take the development of extensions as a separate subject it may seem to be a short-term activity, which has no particular nuances. In practice, it turns out that the development of an extension is not at all that simple. Today I'll tell you how we have organized the process of extensions development at our company, and will give some recommendations on how to optimize the development process so that to reduce costs and improve your product quality.   Here I would like to note that we do not make any difference between processes that take place while we develop extensions for sale and those for custom development, so, everything I’ll be talking about works perfectly for both cases.   Listing the key points My report will cover the following aspects of the development process: getting prepared for development: what idea to choose and what to do next role separation within a team tools development of an extension testing All practices are divided into groups, so you can choose those of them that will harmoniously fit into your workflow.
  • #5: I am often asked what extension to develop. Well, the point is that it is impossible to predict whether an extension will be successful on the market or not. And even if somebody knew he wouldn’t tell you.   And that’s why: give this task to a business analyst, not a developer! business analyst studies current marker situation, analyzes it, defines crucial user problems that need to be solved and prepares technical requirements analyst handles the technical requirements to the development department for an assessment decide whether it pays to develop an extension (выгодно ли) gather a team
  • #6: If the development of the module turns out to be economically unjustified, then you should refuse the idea of such commercial extension. If it’s custom development, then find an analogue to use instead.
  • #7: So, what shall you do if there’s no business analyst in your team and you don’t have a possibility to hire one. Apologists of Agile Development: Lisa Crispin and Alistair Cockburn in their works recommend delegating the tasks of a business analyst to the QA department.   If you are using agile development methodologies, such as a whole team approach and self-organized team, then your QA specialists play the role of a mediate between business and the development team, as they are engaged in the negotiation with the customer on the requirements. If that is the approach you use, it makes sense for you to teach your QA the basics of business analysis and entrust him the task.
  • #8: I recommend you to split your developers between hostings + separate hostings for a support team and QAs. That is very handy as each developers uses his own Magento entities and they don’t impede anyone.
  • #9: one developer develops for the initial version and the second for the latest one automating process with the help of MageInstall: we easily deploy any Magento version needed there are other useful features MageInstall has: direct links to frontend and admin panel sessions cleanup cache cleunup cron starting direct link to database possibility to view already installed extensions extensions disabling with one click store deletion mass actions for all the above listed sometimes specific store is neeed, with specific data, in this case we use generator. This is an internal extension that is gradually improving and getting filled with new functionality. It allows you to generate orders, customers, products, etc. If you do not have enough time or resources to create such n extension, it makes sense to entrust your QA department with writing automated tests which will fill the store with necessary amount of data. This approach takes more time, but it is cheaper, and these tests can be run at night.
  • #10: I highly recommend you to use Version Control System (git or hg) Having all the extensions in your repository, you can easily install the extension you need along with the Magento version needed right from MageInstal: you won’t have to do it manually Use a development toolbar, which allows you to quickly view huge amount od useful data: additional information on a request layout handlers events triggered for the current request database requests and the time of their completion etc. use the Log Popup extension that shows new logs from the log file and will immediately signal in case there’s an error that should be fixed. Otherwise, log errors can stay unnoticed which will result in problems further on. enable developer mode! – this will also notify the developer on the code issues issue tracker and properly set up workflow. the detailing should be moderate – micromanagement doesn’t lead to good results
  • #11: During the development process, we came to a conclusion that the most advantageous is the approach when there are highly specialized experts engaged in development. Thus, Magento developers do the backend and admin panel, frontend developers write frontend, and system administrators deal with servers and configurations. Here i would like to mention the importance of the extensions testing, we do not put it to the shoulders of our end-users, so there’s always a QA specialist in our development team. At first glance it may seem that staff increase is a one-way ticket to the increase in the cost of development, but I’d like to note here that a significant reduction in development time allows, on the contrary, to reduce costs.   So, let’s summarize how the development process is organized in our particular case: For every extension to be developed there is a Lead assigned, who manages the development process, sets tasks and monitors their completion. there are separate developers to deal with the admin panel, frontend and backend if there are more than 3 developers in a team, we split them into smaller groups if there’s such a necessity we involve additional developers and QA specialists in the development At that, I understand that it is not always possible to each time allocate a separate team for the development of an extension, so I will touch upon it a little bit later and, when speaking on the technical details, I will dwell upon practices that are applicable for both teams and a single developer.
  • #12:   When developing within a team of 2 or more people: the first developer is developing on the initial version of Magento - we usually take 1.4.1.1 the second developer takes the latest version (1.9.2.0) if there are other developers involved, then we give them intermediate versions split tasks into a backend (instal scripts, models, collections), underlying implementation, admin panel and frontend.
  • #13: If there’s one developer: start from the initial version – in our case it’s 1.4.1.1 - and time to time check on the latest version - 1.9.2.0 start with the backend and then proceed to the admin panel and fontend
  • #14: An important issue is the compatibility of your extensions with the third-party extensions. Analyze how to integrate your extension to Magento with minimal problems in the future on the side of the developers, and, most importantly, of the support team.
  • #15: integrate through events avoid rewrite Frontend integration: layout substitution js injection at the end of the page, or any other place suitable, draw our block but do it hidden, and after its upload we move it to another place with a js, as the majority of Magento themes contain the same class and id name. Still, if they are different, I recommend you to write your own frontend part so that they will initiate(?»инититься») through the configuration, and then, after you changed the value of a selector or the option in the configuration, everything starts to work without code research and long debugging
  • #16: Also, we solve issues of a compatibility with popular third-party extensions at the design stage already, so that they work together seamlessly out of the box. To do this, we take the most popular extensions of the leading developers and the QA team checks our extensions compatibility with theirs.
  • #17: What should you remember: commits review – Leads and Seniors check the code of Junior specialists. Juniors check the code of their Leads and study the advanced methodologies of writing a code. codestyle – the use of a codestyle allows to reduce time on formatting other developer’s code give the extensions to the QA team for testing
  • #18: we do not put it to the shoulders of our end-users, so there’s always a QA specialist in our development team.
  • #19: During the first testing: do not lead the development switch to other tasks   After your extension returned from testing: fix the bugs found and pass them for testing work alongside with the developers to make the process faster
  • #21: + automated tests: help with the long-playing products a QA specialist can write tests during the development process and in it will reduce your future testing costs selenium ide + bugs
  • #23: In case with distributing paid extensions Magento Connect usually shows the link to the developer’s website. At that, the free extension needs to be packaged and uploaded on the Magento Connect website.   Do not forget to create product in the system and to install the published version of the extension before you start to promote it.   Note that not all the developers install extensions Magento Connect, so you should unpack it and try to install it file-by-file.
  • #24: Conclusion To sum up, I would like to list the key points of the development process that will help you to create high-quality extensions. These are the following: Business analysis prior to developing Using high-quality and thoughtful tools The principle of splitting duties between highly specialized professionals Profound testing All of the above named practices may seem expensive to implement, but I’d like to say that all of them can reduce the development time and overall labor costs.