The example of Flash
Adobe Flash has been around for a number of years. The technology allowed for animation, drawing of vector graphics and excellent interactivity in the age of Web 2.0. Many companies built their systems on this platform using ActionScript.
Sadly, Apple decided to not allow Flash to run on their mobile devices.
Android soon followed suit.
Software development trends follow the consumer – and flash perished in the process.
The options are endless
According to Ray Kurzweil, computers double their capabilities every twelve to eighteen months. Coding and information technology follow suit. We see advancements in cloud computing (such as Azure) that constantly pushes out new features and new coding languages that makes the tech stack of today look outdated.
Businesses tend to choose their developers carefully. They put them through rigorous tests, white board problem solving and interviews. Sadly, most startups and small businesses don’t actually choose their technology, architecture and coding frameworks in the same way.
It is therefore important that we have a careful consideration when choosing the tech stack and architecture for a solution.
Without further ado, let’s jump into the definitions and examples.
If you only have a hammer, every problem looks like a nail
Taking time to analyse client requirements will assist in making an informed decision in making the right technology decisions. It’s worth taking the time to investigate the pro’s and cons of a few different technologies.
For example, a client might require a website that needs ot be updated regularly for their business. As this is not a large component of their core lead generation method, it would not make sense to have a custom web application developed. It would also not make sense to get a developer to regularly update the website on their behalf. Though it might be frowned upon, for something so simple it might be worth using WordPress.
Some clients require a custom solution with API integrations, custom business logic, data warehousing and machine learning.
The technologies used for this will be much different.
Frameworks and languages
Software developers have an array of languages to choose from. Some are widely used, others are specialised. Here are some examples of languages and their strong points:
- Python tends to handle spatial and geolocation well.
- C# and Java have big companies backing the technology and tend to be used for business applications
Coding languages have frameworks that can be used to accelerate development. A framework contains pre-written code with functionality that is often required in developing solutions.
- C# and VB.NET use the .NET framework
- PHP uses Symfony and Laravel
Technology stack: a tech stack refers to the full stack of technology that is used to create software. Here are some examples of the most well known stacks:
- Microsoft stack (.NET Framework with C# of VB.NET, SQL Server) – This stack is trusted by businesses as stable and accurate, as Microsoft is backing the technology.
- LAMP stack (Linux, Apache, MySQL and PHP): This is often used as a more cost effective alternative. As the whole stack is open source. The developer has a lot more control over settings and the finer detail.
It’s noteworthy that these stacks aren’t clear cut. You could, for example use C# .NET with RavenDB. This flexibility allows for companies to have a more flexible solution that suits their needs.
Solutions and software architecture
Software architecture has to do with how the code is structured and strategic optimisations (performance, maintainability, stability). Code could either be optimised performance, making it more extendable, maintainability.
It can never be optimised for everything at the same time.
Solution architecture has to do with how the software solutions will interact and how the systems will communicate with each other. When starting a new project, the whole ecosystem needs to be understood. This will avoid unnecessary duplication of information, issues in systems integration and reporting problems.
Platforms and external services
It’s worth noting that with the growth of cloud computing, AI, machine learning and mobile applications that the above needs to be considered in the scope of the greater vision of the company.
As we have learnt from Flash, It might not be in your best interest to grow your business on a technology, service or external party in the long run. Yet, large companies like Microsoft and Amazon have a strong move to digital transformation. These technological giants are enabling business to move forward with them by using Azure or AWS – cloud based solutions.
Mobile, web or both?
Web technology has matured well over the last 25 years and the frameworks and languages have adapted to cater for browser incompatibilities and slow connection speeds.
As mobile apps are still a fairly new channel, it’s not at the point yet where there’s a widespread adoption of a main software development methodology and technology. This fragmentation can cause issues in finding developers to develop features or maintain an existing app.
For example, PhoneGap, Flutter and Xamarin do publish cross mobile, but there are a lot of native developers that develop specifically for Android or iOs. If we compare this with how jQuery/Angular as the main trending technology for application front ends, it does call for investigation.
For startups, it’s often not wise to go all out and have a cross platform mobile app and web application at the same time. This might cause over-extending. For a large corporate it’s important to have a presence and often to have mobile apps on Android, iOS and the newest platforms.
- Testing: do the technology choices allow the tester or end-user to test the process thoroughly before releasing, or do I need to trust the word of the developer?
- Incident handling: Am I able to become aware of issues before they become an incident? How will this happen?
- Scalability: will the technology allow for scaling the business? For example, document databases are cool, but start becoming slow when doing complicated index queries on hundreds of millions of documents
- Security: Will my solution have the necessary security in place and adhere to legal requirements? Does the chosen technology allow for this?
When developing a new green fields solution, one needs to consider the language and frameworks, technology stack and architecture.
These decisions could affect performance, reporting, cost and future expansion.
Do sufficient research.
Chat with a specialist to confirm that you’re on the right track.
Don’t over engineer.
Simply be effective.