Learn how to sail in still waters before braving the rough sea

Photo by Ronald Schmidt

So you suddenly have some free time on your hands, heard about OutSystems, and how it disrupts software development and decided to give it a go?

OutSystems is a Low-Code software development platform that is slowly being sprinkled with dashes of No-Code (features like the Experience Builder and Workflow Builder tools are good examples of a marriage seemingly made in heaven between No-Code and Low-Code).

The platform boasts a huge productivity increase, better quality, and easier to maintain software, no vendor lock-in, and all this while making DevOps a breeze. These benefits seem too good to be true but also come with a hefty price tag. Fortunately, as an aspiring developer, you can explore it all on your own personal free environment for as long as you like.

For many, the hardest was simply taking the first step, and deciding to learn something new and challenging.

Leaving the University where I was teaching, and starting ITUp back in 2015 to help people learn how to sail through the OutSystems sea, was humbling: so many people, from diverse cultures and backgrounds, and so many approaches to learning and life… a lot of my preconceptions were challenged, and I’m better for it.

I have since lent a hand to many developers on their journeys, both in the more standard classroom setting (and the new normal virtual-classroom) as through the many channels that OutSystems makes available to empower its community. For many, the hardest was simply taking the first step, and deciding to learn something new and challenging.

. . .

Let’s jump right in and get you started! First things first, if you want to get your hands dirty with the OutSystems platform, you need to register: head to the Get Started page and register with your email or with your Google or LinkedIn account.

This will create a new OutSystems Personal Environment in the cloud, where the applications you develop will live, and is your own personal sandbox to play around with OutSystems for free¹.

Next, you will be able to download and install the integrated software development environment (IDE) that will allow you to create web and mobile applications using the platform².

You are all set, with your own personal environment to run OutSystems applications and the IDE to develop them, the next question is… what do you want to build today?

. . .

What application you want to develop first is the next big question!… Would you want to start by building a web application that you access from a browser or a mobile app you can publish on the mobile stores and install on your devices?

If you chose a web application, the next question is what kind of web application. Late last year, OutSystems unveiled their new take on web applications — reactive web apps — that borrow a lot from OutSystems mobile apps and are touted to be the way forward. But you may prefer to go for the tried and tested traditional web applications, still broadly used by many in the industry.

Before rushing to build the application of your dreams, you need to have a basic understanding of the tool you are going to use to do it, and these courses do a great job.

Once the choice has been made, it’s time to prepare for the journey ahead! OutSystems provides many learning resources at their training site, targeting both different skill sets and prior knowledge you may already possess:

  • free complete guided paths towards becoming a full-fledged mobile developer, tech lead, etc.;
  • a free training planner that, based on your development needs, will tailor a custom training plan for you and/or your team;
  • classroom training, for those that are willing to invest in dedicated training, delivered by OutSystems and/or its Training Partners.

Advanced Developer classroom training details

Classroom training (including remote classrooms) is always a favorite of mine, but not everyone has the financial and/or calendar availability for it. I personally learn better with face-to-face engagement. An experienced instructor also knows how to adapt the content to the audience and deliver a lot more useful and actionable information than is on the streamlined documentation and videos.

However, if you feel confident enough to give it a try by yourself and since you are just beginning with OutSystems, depending on your choice of application you should start by following one of these free online training courses:

And when I say start by following one of those trainings… I mean it! Before rushing to build the application of your dreams, you need to have a basic understanding of the tool you are going to use to do it, and these courses do a great job of going through all you need to know to start being productive. Even if you are in a tight spot and need to deliver a running app ASAP, this initial time investment will pay dividends very quickly. Don’t. Skip. Initial. Training.

Each of these courses has been designed for people new to OutSystems like you, that want to get up to speed with developing a specific kind of application. That means they are fairly accessible and with regular checkpoints to reinforce your understanding, either via quizzes or guided exercises (or both). And it also means you will struggle, eventually trip, miss out on some detail and generally face issues moving forward — but what is life without a good challenge?!

Sample course breakdown: presentations, demos, quizzes and hands-on exercises

In a classroom setting, you would have an instructor to help you further piece things together and unblock your progress… with free online training, you are limited to the online resources without a dedicated instructor but fret not, you have the next best thing: an enthusiastic and helpful community that will try their best to quickly put you back on track. If you face difficulties during your training, don’t hesitate and head to the dedicated OutSystems Forum in search of enlightenment!

. . .

Asking a question on the forums is easy: you just type what you want to know and post a new topic. Making good use of the forums takes a little bit more effort, but also improves your experience greatly.

Forum question with marked solution

Start by checking if there’s documentation for it, or if someone else already struggled with the same issue and got a solution you can understand and use to move forward (searching is helpful, and if you’re not happy with the forums’ search you can always use your favorite search engine!³)

If you cannot find anything that helps you solve your issues, then create a new topic and try to provide as much context in your question as possible: the more useful information you provide upfront, the likelier it is for someone to be able to give you a short, to the point answer (and saves you a long back-and-forth of posts trying to clarify it).

A friendly question that will not result in any useful answer to your problem would be something like “In my OutSystems app I can’t sort my table by year. Can you provide step-by-step instructions on how to do this?”. From it, a reader cannot tell which kind of application the poster is developing, what is the concrete difficulty identified, and what steps have been already attempted in order to solve it.

If you face difficulties during your training, don’t hesitate and head to the dedicated OutSystems Forum in search of enlightenment!

A better question would be “I’m reimplementing the Reactive Web training exercise on my own, and am trying to sort the Movies table by year of theatrical release. When the user clicks the table’s Year header it doesn’t do anything, but if they click on the Title header it works as expected…. What am I missing?”. Here the poster gives readers direct actionable information: a reactive web application, sorting is working for another column but not for that specific one, and the application context (in case someone is familiar with the training exercise).

Uppy and a close friend of any developer

On top of crafting your question to get faster and better answers, clearly stating your problem to others is a very useful troubleshooting technique (often called rubber ducking) that may lead you to solve your issue without even posting your question.

“Can you provide step-by instructions on how to do this?” is really a matter of tone… asking for detailed instructions upfront will send the wrong message: that you are lazy and expect others to do your work for you (and no one likes to feel that their effort is not being valued). Show that you put the effort in as well, engage with people that answer you, and collaborate towards a solution instead. You will learn more, and readers will be more likely to try and help you.

. . .

Once you’ve completed the initial training, you should be familiar enough with the platform, the development process, and the tools to begin your promising career on your way to becoming an OutSystems guru!

But the journey is just starting, small steps (and applications) are a solid way to build your understanding and proficiency. Having more experienced colleagues as mentors you can turn to on a bind or when you have a doubt helps you grow faster. And as you build increasingly more complex applications, new and different challenges will arise: remember there is lots of content on the Learn page, from beginner to advanced practices; on development process or DevOps, and the platform’s evolution doesn’t stop. There’s also more advanced classroom training and OutSystems-certified extended courses like the ones we developed to help smooth the journey.

Life is a never-ending story of learning and sharing that knowledge with others…

Some of the OutSystems user groups around the world

Engage with the community in any way you feel comfortable: help newcomers into this brave new world; engage with others discussing the pros and cons of solutions to more complex development problems; attend user group events and learn new things from others; share your own experiences; maybe even collaborate with your local user group!

Something I’ve learned over the years is that life is a never-ending story of learning and sharing that knowledge with others… and all those experiences will enrich you, and make you a better professional (maybe even land you the coveted MVP badge?).

Safe journeys!…

. . .

¹ Personal Environments are free and hosted in shared instances of the OutSystems Cloud. They are best suited for small applications with less than 100 users, and the only hard limitations are: the database size (2GB for applications and their data), a single developer and, continuous usage — check the full details here.

² Currently there’s no version of the IDE that runs on the macOS 10.15, but OutSystems has big plans there, so hopefully, non-Windows users will feel the love soon.

³ The de facto standard community-based knowledge base for OutSystems is still the OutSystems Forums, which is why I restricted searches to outsystems.com (forums, forge, documentation, blog posts). As more people join the community this may change and simply adding outsystems as one of the search keywords might be better (there’s already a good set of articles on Medium for instance).

Jorge Martins is one of ITUp’s Founders and a seasoned OutSystems Trainer