An Array of Tech

An ever-expanding array of tech

Narrowing the options when making technology decisions

Business leaders face an overwhelming number of decisions to make and options to choose from when selecting technology. Many can experience analysis paralysis, given all the options and considerations. Smart Business spoke with the software development team at Rivers Agile to get tips on how to break down this complex process to achieve your organizational goals.

After deciding to build new software rather than buy it, what should companies do next?

Having custom software can give companies strategic advantage, new capabilities, improved efficiencies, and many other benefits. The process of building this software is gratifying yet daunting. Early in the process a company should consider the options on who should build it.

  • In-house – use and/or hire full-time employees to design, build, test, and manage the development effort
  • Outsource – select a trusted vendor to manage and execute the effort with oversight from your organization
  • Co-source – two common hybrid models are to select a vendor to develop a defined portion of the software, or have a vendor provide staff augmentation resources that your organization manages

Making this decision should take these three factors into account:

  • Capacity – does the organization have enough resources and can those resources be allocated where and when they’re needed?
  • Capability – does the organization have resources with all the relevant skills and experience in the technology expected to be used?
  • Confidence – does the organization have the experience or have they executed and managed something like this before?

Should a company be building a responsible mobile site, native mobile app, or hybrid mobile app?

As mobile now accounts for approximately half of web traffic worldwide, it is wise to decide on a mobile technology approach before starting to build new custom software. Retrofitting to mobile will always be more costly than including mobile in the upfront design. The first option to consider is developing web software that runs in the browser and will responsively render on desktop browser or mobile browser. This approach is more costly than supporting desktop-only but is less costly than maintaining a separate mobile app. Many end users prefer to engage this way as it avoids the hassle of needing to install an app.

Companies who desire a mobile app should consider that there are an estimated 2-3 million mobile apps in the Apple and iOS stores, many of them unnecessary and regrettable by the developers and/or sponsors. The rule of thumb is to avoid building one unless it is necessary technologically or strategically. For companies who do make the decision to have a mobile app, the next decision is whether to develop native apps that are platform-specific or a hybrid app. Native apps are written with a specific platform or device in mind. If a company wants native apps for iOS and Android, it essentially requires developing the same piece of software twice, and then maintaining two separate code bases. The tradeoff is that native apps offer fast performance and a high level of reliability. Hybrid apps are available for download on a variety of devices–build once and deploy to both app stores. Hybrid development generally has a quicker turnaround time since it’s deployed across multi-platforms.

Because of the large difference in cost between native and hybrid, we recommend hybrid unless there are specific technological reasons that would cause hybrid to perform poorly or compromise the user experience.

What is the reality of low-code or no-code options?

Yes, vendors present low-code platforms as perfect, low cost solutions, yet they are not always “as advertised”. That’s because they are closed ecosystems. By choosing a no-/low-code development option, you become locked into a platform, a platform in which you are entirely dependent on a vendor’s services. The reality is that no-/low-code applications are inflexible and brittle. In the beginning, most features are “out-of-the-box” functional and easily manipulated, like drag and drop. Yet, more complex ideas and features generally cannot be created using these simplified coding tools. This is a trend that tends to stifle teams and necessitating a move towards more custom code. The fact is low-code platforms are extremely basic and not compatible with professional software engineering standards – making their output unsustainable.

Plus, these enterprise low-code platforms aren’t being taught in Computer Science (or Bootcamp) programs, so you run the risk of leaving your developer(s) without a network of resources. Resources they’ll need – in order to learn, add custom features, or in worst case scenarios, rectify issues. It also makes it difficult to hire from a pool of developers familiar with the platform. And if your low-code vendor vanishes tomorrow, you (and your company) could be left out in the cold.

We only recommend low-code solutions for software that performs simple back office functions that are expected to remain simple and non-mission critical, with a small user base under direct control of the organization.

This process is nuanced and complex, how can a company ensure momentum and alignment?

It is a lot to consider when evaluating new technology projects as they require process, discipline, and a framework for collaboration. Your organization could be in need of a user interface overhaul, but concurrently you may be adopting a new development methodology, migrating to cloud infrastructure, retiring a legacy system, and on-boarding a large customer. Every organization will differ on how these are related to each other, as well as how they are related to desirable and undesirable outcomes. Keep in mind you may want to use an approach that evaluates developer experience, adaptability, support for integration as well as your long-term goals. In most cases, it comes down to weighing performance vs. cost. With the ever-expanding array of options, it can be challenging to make a firm decision. Consider utilizing a technology consultant, like Rivers Agile, to help you navigate the decision-making process. Reach out to our team of experts today!