Wednesday, 23 November 2016

Getting started with Acumatica xRP Platform

Hi All,

Sometimes I get a questions like this:
  • How to start development with Acumatica xRP platform? 
  • How complex is it? 
  • Where we can get some guidance?
So here I want to summarize all thoughts that I have about it.

I would select these steps that i would recommend you to do:
  1. Ensure Pre-Requisites
  2. Get Acumatica 
  3. Prepare Development Environment
  4. Learn Acumatica xRP Platform
  5. Do Development
  6. Communicate & Support
Lets go though each of these steps in details under the cut.

Knowledge Pre-Requisites
To be able to do development you need to have a knowledge of technology and programming language used in Acumatica. This knowledge outside of Acumatica training course:
  • Proficiency with C# language, including but not limited to the following language features: classes, OOP, custom attributes, generics, delegates, anonymous methods and lambda expressions. You can find more here.
  • Knowledge of the main concepts of ASP.NET and Web Development: application state, debugging ASP.NET applications using Visual Studio, client and server-side development, Web Forms structure, Web Services. You can find more here.
  • Experience with SQL Server: SQL queries (where clause, aggregates, sub-queries), database structure (primary keys, data types, denormalization). You can find more here.
  • Expericence with IIS
Get Acumatica
You can develop new solution on Acumatica for free, however to download installation wizard, receive updates, use support and get access to all latest news you need to register as ISV developer.
You can do it on Acumatica Development Network
Upon registration and confirmation you should be able to access Acumatica Partners Portal where you can finally download the latest version of installer and all required documents.
Link to download latest version: https://portal.acumatica.com/downloads/acumatica-6-0/

Also on Acumatica Partner Portal you find all documentation that is related to product and platform.
I recommend you download and check: Installation, Customization and Development guides.

Prepare Development Environment
When you got Acumatica Installer should install it on every development machine.
Each of developers in your team should have a local  own Acumatica instance. This will help to do developing and debugging in parallel.
Please find more details about installation in the Acumatica Installation Guide.

Please note several important things:
  • If you want to save some local computer resources, you can have a centralized database server for all developers, but developers still should have own dev instances.
  • You do not need to have a license for development - you can use Trial Mode with not restrictions.
  • During installation of Acumatica i would recommend to install debugging tools, that would help you to debug Acumatica code later. But do this only for development environment.
To do a custom development you also should have these programs that you can get separately:
  • Microsoft SQL Server Management Studio or My SQL
  • Microsoft Visual Studio
  • Git or other source control system.
Read more about tools that Acumatica uses internally here.

Learn Acumatica xRP Platform
As soon as you decided to do any development you automatically have chosen Customization/ISV developer path on Acumatica Learning Paths.

This part of preparation is most important. Investing your time and focus here would really help you in further development. Or training materials are really designed to have step by step learning, but each new step is much more complex than the previous one, so keep attention and you will learn a lot.
Also you may notice that you do not need to learn any product knowledge if you want to be a developer, however I think really need to spend some time to lean product UI and some features before going to development, as it will help you to understand what are you doing.

I recommend you to keep this learning path:
  1. E150 Introduction to Acumatica Product (4 hours)
  2. F100 Financials Basics (3 days) This course is designed for consultants and takes 3 days totally, but i recommend you at least to go though GL part, as you will be more confident with system functions.
  3. Acumatica Framework Architecture here.
  4. T100 Acumatica Framework Fundamentals (2 days)
  5. T200 Acumatica Framework Intermediate (3 days)
  6. T300 Acumatica Customization Platform (2.5 days)
  7. Customization and Development Guides. Please note that Acumatica has these guides as a PDF books that you can download from partner portal (as show above), but you also can find it in Acumatica itself. 
  8. S130 Reports Inquiries Dashboards (2 days)
  9. I100 Integration Scenarios (1 day)
  10. I210 Contract-Based API (1 day)
In case you want to do integration development only you might skip technical and reporting courses. In case you want to do only development you can skip integration courses, but I would still recommend you to check it at least briefly. 

Also do not expect that yo can do any level of development right after the training if will take a month to learn and few more months to get up to speed.

Do Development
When you do real development ensure that you have:
  • Clear specification - preparing of specification helps you to thing about better approach and re-usage of standard functionality. In the end better specification will save a lot of time for you. Do not hesitate to involve Acumatica experts in the review process
  • Source Control System - it will help you to keep changes and work together.
  • Code Review - this practice can help you to learn faster and do less mistakes. Contact Acumatica experts and they help you there.
  • Automatic Build Process - Continues Integration and Agile can help you to control development process. If you automate build process from the first days it will help you to do continues regression and acceptance testing and review of completed steps.
    • Note that Acumatica has tools that can help you to pack customization project zip file from projects located in source control.
  •  Automatic Regression Testing - the best way to ensure that you do not brake existing functionality by new development are regression tests. Acumatica Testing Framework is really easy to use tool that can automate this process form very first days of your project.
  • Have a Code style - you might thing that it is useless to have it from the beginning, but in general it helps you to be more organized. Use standard one or ask Acumatica for advise.
  • Keep your knowledge - have an internal knowledge base that can help you to maintain accumulated expertise even with high stuff turnover. However it is better to not have stuff turnover at all. ERP and Acumatica is not simple, so you will lose a lot of time on education of your team.
Also remember that development of something new is not a job just for developers. Involve your consultants to prepare specifications, testing and other processes. 
Many things that you can prepare does not require any development knowledge. So have in your mind how you can split the work between your team members.


Communicate & Support
You do not do development alone. Acumatica is here to help you. Have a regular calls with Acumatica experts to catch up on new updates or questions. I would really recommend you to insist on it wherever where it is possible.

Join our community to get free communications and support:
  • Stack Overflow - Use it to ask all possible question and share your knowledge.
  • Git Hub - Check Acumatica Git Hub to get free examples.
  • Acumatica Code - Debug and learn Acumatica open source code to understand how does it work.
  • Technical Blog - Google topics and questions that has been answered already.
  • Partner Portal - Access portal to get updates and support.
  • Have your own contact from Acumatica team.

Have a nice development!

No comments: