Internal applications – the (often) neglected child of software development
Internal tools are custom software applications designed for internal users of an organization. These apps mostly have CRUD functionality and are designed by engineers for users such as sales, support, finance, human resources, engineering and all others. For example, here is an example of a tool we created to interact with our users using Mixpanel, Reply and ActiveCampaign. Each company has internal tools to meet its specific needs and unique processes. Like Michael Novati on Facebook writing while talking about a corporate communications dashboard he was in the process of creating, âwe learned that effective corporate communications tools need to be designed specifically for our employees, because our employee base and our business needs are very unique. “
Internal tools end up taking a decent amount of engineering time. Over time, these tools require more functionality, or more tools are built (which is always the case). This also includes scaling and tracking outdated tools. It ends up becoming a significant contributor to the engineering workload.
The most common approach to creating internal tools is to use an open source framework like React or Angular or Flutter. These are powerful frameworks, but maintaining them takes a lot of work. So every new tool is created from scratch. As Novati writes in the same blog post, âOne problem we have at Facebook is that there are so many requests for in-house custom tools (from engineers and non-engineers) that our engineers internal tools find it difficult to keep up. He then explains how Facebook created reusable “widgets” or UI components so that users can build tools faster. Now imagine doing this if you are not part of a company like Facebook with all of its technical staff.
Internal tools, like any other software, require collaboration and feedback between builders and users. These comments are often found in several places like Slack, emails, Word documents. The internal user and engineer together end up donning the hat of product manager and end up going back and forth trying to define the application.
Internal tools often don’t have the best UX. There are several reasons for this. Some are related to bandwidth, others to expertise. Also, it may be because internal tools may not have the priority that consumer apps get. Additionally, there is virtually no design bandwidth allocated to these tools, as most designers want to work on consumer-oriented applications.
Like Hannah Mari-Kris, product manager at neo-banking giant Monese, reflects, âThe trickier parts are usually when a particular view needs to meet the needs of multiple teams. This is because internal tools often deal with a lot of sensitive data and, as the owner of the tool, you want to be very sure who gets what type of access, whether it’s write access. or in reading.
Low code as an alternative?
Low-code frameworks or platforms today offer a good alternative to the creation of internal applications.
These frameworks help reduce the amount of engineering effort required to build in-house tools through a reusable and ever-growing list of user interface components, connectors or native integrations to data sources, collaborative features, and complete documentation.
Thus, the engineering team creates multiple custom apps on a single platform without having to manage multiple React or Angular apps.
Here’s how to choose a good low code framework
Check if these platforms include any developer friendly features, such as a good code editor with linting capabilities, as well as version control and Git sync, or an IDE-like experience in the editor. code with a native debugger.
Collaboration is another important factor to consider. One of our most requested features has been a real-time feedback system similar to what you see in Figma, which can help relay feedback between developers as well as between end user teams, thereby shortening the development cycle.
Check if the low code framework comes with robust and granular access control features, as this in most cases becomes a deciding factor when evaluating these tools for use in enterprises.
Often times, the low code platform replaces an open source framework like React. Fortunately, there are low code open source frameworks today. Open source low code frameworks give your team the power to control the speed of your development by reporting bugs and having a community member fixed, if not the maintainers. Or, if there’s a critical feature you want that isn’t on the roadmap yet, you can just develop it or contribute to the main source code or contact the maintainers.
Check if the low code platform you are using has a self-hosted version. This becomes more important when you are dealing with sensitive data and want to add an extra layer of security by hosting your applications on your own servers.