Erbis stands with Ukraine
Building logistics software for the future: choosing platforms.

If you invested in logistics technology a decade ago, you probably lost the shirt off your back, but that has recently changed with cloud computing, IoT, and blockchain. A lot of that has to do with the companies like Amazon continuously disrupting the market, and other companies like Flexport becoming a unicorn with a $1B investment from Softbank.

COVID times have pushed supply chains to the edge of economic prosperity, being the hunting field for investors. Dave Anderson of Supply Chain Ventures says that recently they look at around 300 startups a year. Once high-end software becomes the need of the hour for your logistics company, you should decide where to stick: buy ready-made software or build from scratch. Let’s weigh the options.

How is bespoke software different from ready-made software?

Let’s define the terms from the start:

Ready-made software is something you can purchase, install, and begin to use instantly, like Jira or Photoshop. Such programs are made for general use and aren’t supposed to adjust to your needs. Also, you’ll never own such software.

Bespoke software is a product delivered by the development team particularly for your business and based on your company requirements. It can be modified and updated at any stage of the software lifecycle to meet changing business demands.

  • Framework: As commercial software is targeted at a wide range of consumers, it has a unified design and a standard frame. The main disadvantage here is that it might not meet your company’s unique needs or won’t be able to distinguish your products/services. A ready-made solution may oblige you to change your workflow to fit in. 

  • Cost: The cost for ready-made apps is divided among many users, while the bespoke solutions are paid by the Product Owner. That’s why prices for commercial software are significantly lower than for the development of custom software.

  • Updates: In the case of ready-made software, be prepared to pay for future updates. Unfortunately, you can’t regulate the price and amount of such updates and may end up with an outdated product in case of non-payment. On the other hand, bespoke software updates are shaped according to your budget and needs.

How to choose a framework

Analyze your workforce availability and pick a framework according to available human resources.

What developers do you have on your side? Suppose you have to decide on a front-end technology, and you have two strong Angular developers. In that case, you should probably work with those. Moving fast can be valuable, and it’s an advantage to have people who are in their comfort zone instead of learning new technology. Also, actual knowledge of the ecosystem is an additional benefit.

Another approach is to discuss your technology with a generalist. Because if you talk about your project with a Node.js expert, guess what they’ll recommend? 

  • Analyze the challenge.

The chosen technology should depend on the problem you’re solving. Are you a technical innovator, or are you building an innovative business solution? If Facebook is built with PHP – that doesn’t mean you should use it too.

Some things are better function with one language than another — for example, Python is excellent for computation and statistics. The majority of software projects can be addressed with a variety of technology stacks. Only a few tasks require specific approaches to succeed. 

  • Examine IT trends and adopt a long-lasting technology.  

Be aware of industry trends, but don’t select them blindlyCheck websites like hotframeworks.com, trends.builtwith.com, and Google Trends to understand where various technologies stand, in terms of popularity over time.

Some huge companies – including Facebook, Netflix, Dropbox, Airbnb, and Reddit – use React for their front-end to scale and handle millions of views per day. Apple Music, LinkedIn, and Square use Ember to convert their native applications.

  • Look for support as the framework should be actively backed by the community or a tech giant for mitigating risks. 

Every technology embraces an ecosystem composed of people and tools. Facebook and the open-source community keep investing in the growth of React, and Google is behind Angular. This means that there should be long-term vendor support until the drop (yes, this happens). But the bigger is the community, the bigger is the chance that things will stay around for some time.

  • Read the Docs for better immersion. 

Choose frameworks with plenty and actual documentation. Start with checking the technology’s webpage for how-to videos and blog: how are updates handled? How easy is the update or to migrate? Have there been incompatible versions (like Angular 1 & Angular 2)?

As a modern developer, you should adopt a mindset of a constant learner and continually improve the delivery model to meet your customers’ increasing demands.

The synergy of front-end, back-end, and accelerators such as cloud, open-source tools, DevOps, and security will give you the edge you need. But in many ways, the most critical accelerator is your mindset.  

How to choose a technology stack for supply chain software: Erbis approach

Aftermarket validation, the most complex part of the project is selecting tools. Often clients turn to our software development company with a vision of what languages and frameworks they want to use. This would be helpful if they were IT engineers, but they aren’t.

Our 10+ years of experience in custom software development allows us to share our thoughts on the topic.

Framework features that matter: 

  • multi-threading & concurrency

  • scalability & clusterization

  • persistence and ORM

  • transaction support

  • inversion of control and dependency injection concepts and practices

  • batch, scheduled and async processing

  • aspect-oriented programming

  • convenient and standard ways of REST services development 

  • security management inside business logic. 

Java

Over the last decades, Java and Java-based frameworks have been a top choice for complex systems development. Java-based back-end applications possess good qualities in extensibility and supportability. Sophisticated TMS and ERP systems may serve for decades, with the owner’s intellectual property well protected and maintained.

Mature Java application frameworks like Spring or Jakarta EE (former Java EE) include all features listed above to build complex logistic solutions.

Java Script

In the last few years, we’ve seen a rise in JS frameworks on the frontend – and, consequently, on the backend. Using the same language on both sides helps to consolidate the team and balance human resources between tiers when needed. Adopting feature-driven development, you can omit bottlenecks when the frontend waits for the backend, and vice versa. 

Choosing popular JS frameworks will probably speed up the creation of your MVP, but sacrifice the functionality Java has. JS frameworks are still getting these functionality implemented, but they’re not mature enough to rely on when developing the Supply Chain management platform. 

Python

Another player on the market is Python. It is an up-and-coming language that has the power to push Java to second place in this decade. Python’s Django framework holds many of the mentioned above features for developing supply chain software. If you want to put on Python for the perspective – this might be the proper choice.

Conclusion

Things are changing quicker than they did 20 years ago. Your chosen technology will probably stay with you for 5 to 10 years: this is a long time, but you need to prepare to switch technologies when the need arises.

That’s why you should think granular, in little packages. To avoid putting eggs in one basket, we at Erbis consider separating services, back-ends, and front-ends into smaller applications and microservices. Contact us to discuss the bespoke solution that can solve your supply chain’s particular difficulties or benefit from a ready-made solution from our partner.

August 17, 2020