aimprosoft

Alfresco Excellence Lab

Blog Post created by aimprosoft on Mar 1, 2019

   Why do software developers want to be Alfresco developers? It’s obvious: high employability, a decent salary, membership in the world growing community and advanced technologies.

   In Ukraine, a demand for Alfresco developers is growing. Over 450 hot vacancies are open for now in LinkedIn with an interest for specialists in Alfresco platform development or related skills. Alfresco developer in Worldwide search demonstrates 60,512 results with around 14, 000 Alfresco Developer jobs in the US.

   At the same time, there is a lack of highly tailored specialists. They are mostly Java developers of middle and senior level who can grasp with Alfresco if necessary. We see this niche potential to fill this gap with dedicated developers who are able to work with platforms. According to our clients, they often agree on multi-skilled Java developers experienced to varying degrees with the platform.

   We think that educational centers like ours should arise in companies that are keen on their business and are interested in growing narrow-skilled developers to cover market needs.

   We’ve been working with Alfresco platform over 10 years. During this time we have turned dozens of Java developers into Alfresco geeks. In this article, we’d like to share with you our way of teaching.

   Falling in love with Java. We call upon trying the diversity of Java. Being static destructs. We at Aimprosoft aim at moving forward instead of staying too long with achieved. Stack Overflow Developer Survey 2018 shows that 45.4% of respondents speak of the popularity Java placing it in the fifth place. It’s getting obvious that Java is one of the most demanded and universal programming languages that will stay relevant in a fast-pacing IT world.

   Getting acquainted with technology. To start a career of Alfresco developer, every trainee has to master certain technologies, services like Git, GitHub and others, know working principles and what tools (libraries and frameworks for Java) to choose in order to avoid inventing the wheel. We put it into the educational plan to immerse trainees systematically.

   Exploring the open source. Daily trainees get acquainted with high-value information that is a novelty to them. Open source solutions, up to our mind, is the best way for IT newcomers to learn programming skills while gaining working experience. Young developers read the code and brush development skills up. Even if someone doesn’t feel like writing code right now, they can learn from the experienced.

   Making a test project. During training, all trainees get acquainted with DMS and purposes of them, fields of application, what clients’ challenges they solve. It’s not enough to be coder only. Software developer in our understanding is a customer-focused and business-oriented specialist in addition development skills.

   Getting closer to the Alfresco platform. Young developers make it out how to use the platform from the end-user perspective to understand client’s use cases and put themselves into user’s shoes solving issues.

   Every trainee passes the two-step way from Java to Alfresco immersion. A test project covers the popular range of key system elements that clients ask to modify (customize or add features) most often.

  1. We instruct on creating modules properly in order to make them with Alfresco. Trainees figure out on their structure and what every functional part is for.
  2. Work is proceeding on studying one of the most popular entities in Alfresco — Content models — and creating custom models. At this stage, guys touch the concept of Alfresco data structure.
  3. Extension of standard REST API (adding new features to the Alfresco out-of-the-box toolset to use external 3rd-party apps). At this step, trainees get closer with private and public REST API structure of the Alfresco platform; then they create REST APIs themselves based on the test project.
  4. Here it is time to learn internal Alfresco services, concerns how to run custom code with Policies when different events happen, how Behaviors work and make steps towards creating customized. Before going ahead, young developers should learn how to assist in the maintenance of a production environment with Scheduled jobs and get an understanding of Actions in Alfresco Content Services.
  5. We take enough time for interface and Alfresco Share architecture learning. It is one of the most significant scopes of learning before developers will move on to the next phase. Here, at last, everyone can know principles of work of Alfresco Share and Alfresco Repository, create own dashlets, pages, and forms.
  6. We are to set ourselves the objective that trainees get in the head of users, explore in depth workflows to know how their thoughts run in real use cases. To make custom workflows, we explain how business processes are executed with Activiti Engine and ways Alfresco interacts with it. We appreciate a zeal guys get to create custom workflows based on the requirements of the test project.
  7. Finally, Alfresco Application Development Framework (ADF) and a set of Angular components come. Usually, trainees come to us with Angular.js basic knowledge; many of them consider this framework as the most perspective in the raw of React.js. We see the enthusiasm when they can work with modern technologies and drive progress. It pleases.

   Mentoring. Our goal is to grow a developer as a valuable and marketable professional in his area. Training for Alfresco newcomers at Aimprosoft includes a lot of directions such as:

  • tutorials on key aspects of development such as agile methodologies, task trackers and task managers, code managers(VCS), CI/CD systems, working on the projects as a part of the dedicated team and others;
  • coding — we start with a standard Java stack as a mainstay in enterprise app development and move forward with Alfresco technologies that matter most in the app development process;
  • writing documentation — we pay attention to it because a good programmer has to convey the message to their international colleagues and clients clearly and be able to maintain technical documentation;
  • time management — as a proverb says “a stitch in time saves nine”; from the early beginning we accustom trainees to self-organization, planning, prioritization, estimating tasks, setting S.M.A.R.T. goals, working with deadlines, self-control of spent time;
  • customer service for international clients is a kind of soft skill we care for; it is utterly important to be able to connect with global clients via messaging apps and VoIP solutions.

Contributing. This goes toe-to-toe with the point test project. The project is intended to become a full-fledged ready-to-use addon for the Alfresco community. Agree, it’s much more pleasant to work on something that will go live and is useful for people. It is definitely rewarding.

Everybody warmly accepts an opportunity to contribute to the Alfresco community and real commercial users. There are some ready-to-use addons made by our trainees we can boast.

   User Account Switcher allows a user with admin permissions to log in under another account registered in Alfresco without any password. Debug Level Extension fit for 5.2.x Community and Enterprise Editions was made to change a debug level of any Alfresco class in runtime. With a Simple Template Processor plugin, users can fill in pdf-document with metadata which streamlines tracking and working with specific data. For users of Community 6.0 and higher User Session Manager has been released recently by our newly-baked Alfresco developers to allow seeing administrators all active sessions in Alfresco and how to integrate the React frontend with the Alfresco backend parts.

   Controlling. We don’t use any specific evaluation system like in schools — we at Aimprosoft practice an andragogy approach in the education of adult students. Personal growth and educational achievement are assessed by daily performance of each.

   We are interested in prospering Alfresco platform and growing Alfresco community. It is a perfect way to boost up a career in business process automation area with practitioners. We are open to having fresh talents from our city and the relocated onboard at the Aimporosoft Alfresco excellence lab. Also, this year we will participate Alfresco DevCon 2019 as a Silver partner to support community growth and share our experience in developing Alfresco environment in Ukraine.

 

   Igor Zaporozhets

   Co-Founder and CTO at Aimprosoft

   Bio

   Igor Zaporozhets is a Co-Founder and CTO at Aimprosoft and leads Alfresco excellence lab to grow niche Alfresco developers in Kharkiv, Ukraine. Apart from being an inspirer and senior supervisor of the educational program, he works with clients to deal with high-level technical concerns on digital transformation with Alfresco Digital Business Platform.

i.zaporozhets@aimprosoft.com

Outcomes