Archive for the ‘Online Technologies’ Category

Why is the Development of Custom Technology so Complex?

September 14th, 2021 by Heather Maloney

why is custom technology so complex to build

Or maybe you are asking, “why doesn’t the IT team, or the company from whom I bought my software, get it right the first time?”

The fact is, custom technology really is complex. You’d think that with the number of years we all have under our belts, creating custom solutions to run in web browsers and on mobile devices, that it should be really quick and easy now to create something new. But in fact, the opposite it true. So, let me help you understand why that is the case by taking you through all the different facets that need to be addressed by that simple piece of custom technology you have in mind.

User Interface Design and User Experience … the way it looks, and the way people interact with it
To be successful, there’s no doubt that your custom technology needs to look good – modern, delightful, familiar but also match your brand so that it doesn’t jar with how your organisation appears in other places. Familiarity is important, so that your user doesn’t have to think too hard about how to achieve a particular task, but you don’t want your software to look the same as every other application so that your users don’t remember which software they are using.

User Experience can be constrained by the platform on which your application is to run. Is it operating within the constraints of a browser, or the constraints of a mobile app running on Apple’s operating system? Browsers have always been a source of angst for software developers. They are (now) free, but they come from different creators, and so have their own nuances. They are meant to follow standards, and these days generally do, but some browsers have implemented more of the standards than others. So you may find that one piece of functionality works perfectly in browser x, but is broken in browser y. There are usually ways around the problem, even if that way is to degrade gracefully, but they all require effort to resolve.

User Experience also needs to cater for different types of devices – mobile devices with touch screens provide a different mechanism for users to interact with the interface compared to people using your software on a desktop computer. Watches, digital pens, tablets … they all have quirks that your software needs to be aware of if it is going to run successfully on those devices.

Caters for Every Scenario, and does what it is meant to do
One of the most difficult tasks in creating custom software is ensuring that it caters for every scenario. The person who describes how the software needs to operate has to think about not just the right way that a task should be done, but also all the variations that might occur, and how to handles those. For example, say you are building a To Do List application (because we absolutely need another one of those!), will your users want sub-tasks, will they always want to automatically tick off the main task once all the sub-tasks are done … the questions can sometimes feel endless.

When building software, it must help the user to know the right way to use the software, help them when, for whatever reason, they can’t follow the “right” way, and give them clear error messages and instructions on how to solve those errors when they get something wrong. We call this “data validation”.

Device and Platform Constraints
You may be of the view that whatever you can conceptualise can be built in software. That’s true to a degree, but unfortunately the device upon which your software will run comes with constraints. If you choose to have you software deployed as widely as possible, you might decide to build for both Apple devices and Android devices. These devices, particularly Apple, place many constraints on what the software can and can’t do. In some cases, only Apple itself can take advantage of some of the hardware features, so just because an app that comes on your phone can do a particular thing, doesn’t mean that you can achieve the same feature.

An example constraint is that you can only pair with a small number of other devices for the purpose of sending constant information between your mobile phone and the device you have paired with e.g. a watch, a watering system, a temperature thermometer. So if your software idea for a mobile device was resting on pairing with unlimited numbers of other devices, you wouldn’t be able to do that, and we would need to devise another way of achieving your idea.

There are many other constraints for not only mobile devices, the more common being:

  • screen real estate: how much you can fit on a screen and still be able to read / interact with it
  • memory: how much processing power at the disposal of your software before the computer appears to grind to a halt while carrying out a task
  • disk space: how much information you can store locally on the computer your software is using

Easy to Use
Ease of use was touched on above, but is an important characteristic in its own right. Ease of use is partly achieved by a familiar user interface design, and a well laid out set of interface components. But ease of use also relates to the task at hand, and how most people would normally think about a task they need to achieve via a computer screen. It may be impacted by the user’s environment, and also the information that they need or actions that they may have had to take before they needed to use your software.

Ease of use also considers factors such as whether the user can tab from one form field to the next, can use keyboard shortcuts, or whether they have to use a mouse to carry out certain tasks.

People have never taken in large numbers to reading help manuals, so strategically placed tool tips and text instructions / placeholder text are very handy ways to improve usability. Error messages, strategically placed, and delivered early (for example immediately after entering something wrong) will often help with usability.

Accessible (WCAG)
Accessibility, while not mandated, is a very important consideration. It takes ease of use about 3 steps forward, incorporating into your user interface a range of attributes that enable people with disabilities to use every aspect of your software just as if they didn’t have that disability. For example, transcripts for video or audio content provides those without hearing access to the spoken content in those digital assets. You can read more about accessibility in our blog post about the topic of accessibility in web browsers.

Caters for Future Uses
When we build custom software it is always important for us to understand the roadmap of features planned or hoped for a future version of the application. This helps us to cater for that future in the architecture of the first version of the software. That’s not to say that you can’t later go in a completely different direction, but knowing where you are heading means that we can allow for the expansion of the features to be more easily incorporated late.

This is most often felt in the area of the data and navigational structures of your application, where, without forward planning, your software can start to feel like a collection of functions that have been bolted together disjointedly … because that’s actually what happened!

Integrates with 3rd party solutions
Integration with other software solutions provides many benefits including:

  • you don’t have to build everything from scratch.
  • you can take advantage of the pre-existing user base of the software you are integrating with, potentially providing your software as an add-on to their toolset.
  • your software is more useful to your users because it is operating in an ecosystem.

Reasons why you might want to integrate with other systems include:

  1. marketing automation purposes – triggering email marketing to a new user, for example
  2. analysing the behaviour of users – what areas of your system are getting the most use, which ones are generating errors
  3. sharing data with other processes, your accounting function, for example
  4. adding data from other systems, such as the current weather, postcode and address lookups … the options are endless
  5. triggering additional processes, such as ordering components, setting up a meeting …
  6. notification purposes – keeping people involved in your work in the loop
  7. and much more!

Integrating with other software requires work, and careful thought. Where your integration involves 2 way data sharing, you need to identify where the master source of information is going to reside. You will also need to determine what happens when data comes back, if something has changed in the interim in your software? And there are many more questions to be answered with regard to integration.

Secure
The proliferation of cyber attacks on software means that security of your software solution is paramount. However, there’s a cost with the implementation of security, as well as usability trade-offs. It is important to understand upfront the level of security you need to build into your application, which will be different for a banking application compared to a To Do List application.

For example, secure applications interrogate every piece of data that is submitted into it, checking that it is of the allowed type, length and does not contain a malicious payload. Secure applications store and pass all data in encrypted form. Secure applications have a layered approach, adding extra checks for access between the layers.

An application that is secure one day may not be the next … hackers are continually looking for ways to break into systems. A code library that has been built into your software may tomorrow be exploited for the first time by a hacker, and then the creator of that code library (assuming they know about the hack) will need to close out the vulnerability and distribute a new version of their code library. It’s then up to the development team to bring in the new version of the code library, ensure that your software still operates correctly, and then re-deploy the new version. It’s a bit of a cat and mouse game unfortunately.

Keeping your application secure is one of the reasons that regular maintenance is required for all software applications.

Scalable
The ability for your software to be used by large numbers of people simultaneously also needs to be built into the architecture upfront, if that’s the intention. Scalability comes at a cost, although cloud application platforms such as AWS, Azure and Google Cloud have made it more easy to scale up your processing power, and distribute your solution across multiple servers and geographic locations, with greater ease.

Easy to Maintain
The first version of your software will not be the last. Usually a person with an idea for software determines the features that comprise their “minimum viable product” – enough functionality to inspire someone to use and pay for the software, or switch from a competitor product to yours – and then has that built and launched as quickly as possible. After that, continued investment is made in improving features to keep ahead of any competitive changes, and also to keep users happy that they can see improvements over time. Decades ago people were content with the software they bought on day 1 and didn’t expect (or want) any changes. Those days are gone!

Therefore, it is very important that your software is easy to maintain into the future. This characteristic is determined by things like: what language is my software written in – is that easy for developers, well-known in case I need more developers, as well as the platform that your solution is built and deployed on. Some platforms make it easy to make incremental changes and deploy those quickly.

You may also want to be able to update the content within your application – enabling this requires extra work to be done during the build of the application, as well as having security implications.

Documented
Finally, are partly to assist with some of the factors mentioned above, it is very important that your software is fully documented as it is being built. This can be a time consuming task, but it is vital for future ease of maintenance and enhancements. It will help you, developers and support teams to remember how the software is constructed, and efficiently deal with issues or correctly implement enhancements into the future.

As part of developing software, it is also important to keep version history on the development of your software overtime. This provides peace of mind that it is possible to revert to a previous version, should the need arise. Backups of the software are also important.

Solutions to the Complexity

The complexity described above means that creating custom software is not for the faint hearted! There is definitely a case for using pre-built / off-the-shelf software which you can read more about here.

There are also many ways to help reduce the effort required to deal with the above, for example:

  • Design frameworks. Material design is a prime example, where the team at Microsoft have created a collection of user interface components for icons, buttons, forms, cards and other user interface devices, which you can pick up and re-use in your own branding colours. These collections are often used as the starting point for a user interface design, with uniqueness added for more special functions of your particular application, as well as differentiation through your brand.
  • Code frameworks. Similar to design frameworks, code frameworks help for faster development by having commonly required features available pre-built. Things like standard animations, sorting elements, working with collections of elements. Without code frameworks the effort required to build custom software would be massively bigger. The choice of code framework employed for a particular software solution will depend on the type of application being built, and therefore the components likely to be the most handy to get the job done. Coding frameworks also assist in the implementation of security, with most frameworks being structured with maintaining security in mind.
  • Cloud development environments. This is similar to code frameworks, except that the development environment provide different types of pre-built component. For example, Amazon Web Services (AWS), Azure and Google Cloud, all provide a platform for hosting online software, along with components that are pre-built ready for use within your solution. Cognito is an example of a component available through AWS, which is used by many applications to handle to job of authenticating users into your application.
  • Integration middleware. To help integrate your software with another online solution, it might be expedient to use a middleware platform such as Zapier or Automate.io (there are others) to use their middleware to connect to the destination application. This will definitely be faster during an application prototype phase, even if it doesn’t get you everything you need into the future.
  • NO SQL / Document databases. These modern database platforms allow more flexibility to easily grow your data model to cope with any type of data you decide to add in future, which can require more work if you are using a relational database, although they have their place depending on your application.

If you are considering engaging a development team to build custom software for use by your organisation, or for the purpose of selling to other organisations (or maybe both!) please get in contact so that we can help you plan the successful development of your idea.

We’ve been designing and building custom software for more than 15 years, so we’re up for the challenge! Below are links to just a couple of examples of our work, if you would like to read more:
Scinogy Centrifuge Protocol Builder desktop application
Toll Group – Toll Transitions Pre-Removal Visit and Carrier Inspection Android App

Facebooktwitterredditpinterestlinkedinmailby feather

Technology updates for mobile apps

June 25th, 2021 by Ishan Geeganage

The iOS operating system for Apple devices, and the Android operating system for Samsung and many other brands of mobile devices, are constantly being updated to provide tools to allow developers to implement new features supported by new hardware, and to improve the performance and security of apps on iTunes and the Google Play store.

This article provides an overview of some recent enhancements to the operating systems and developer environments, which will flow through to app features and opportunities for your future mobile apps.

Wearables

Both Apple and Google have recently enhanced the libraries and opportunities available for developers to provide richer experiences on wearables, such as the Galaxy watch and the Apple iWatch. This is in response to the increase in proliferation of wearables (watches, rings, fitbits etc) and the internet of things, whereby devices such as TVs, motor vehicles, gas meters, watering systems and the like are internet enabled.

Now 3rd party apps are able to add tiles to the watches bringing to the front of the user experience information from your app, where that was previously only available to proprietary apps. In addition, 3rd party apps have more access to notifications, including the ability to break through “do not disturb” features. However, we need to bear in mind that, particularly in the case of Apple, the review process is very stringent and Apple will be guarding the use of these features very carefully to ensure that they are only used in the most appropriate circumstances.

App Store Promotion

Apple, which lags behind Android with regard to the ease with which apps can be promoted, have announced that they are improving the Apple Store Connect to allow app owners to test images used within the app store, to select those that attract the most downloads, and promote events related to their apps also from within the app store.

Apple are now supporting promotion codes to be used by app purchasers in order for app owners to run promotions to provide a discount or free app usage for a period of time. However, Apple and Google continue to have differences in the way promotions run (Google being more flexible) which ultimately constrains the marketing of apps particularly when you want to be “fair” to all segments of the market. Google Play Store’s promotion code and discount functionality offers more flexibility than iTunes, and in fact Apple will no longer allow you to build in your own promotion code facility, even when all payment for the app is taking place via the Apple payment system.

Apple do like to promote their own ecosystem at the expense of others – not surprising really! Another example of this is if you allow users to sign in to your app using a 3rd party authentication mechanism such as a Google account or Facebook account, you must also allow them to use their Apple ID to login. This means that you require custom code in your cross platform app to remove the Apple ID login for Android users, and you need to support Apple ID login even if you aren’t expecting many users to want to login this way.

Google are also planning improvements to the Google Play Store with regard to promoting apps for wearables, and making it easier for people with wearables to install apps on their watch or other devices.

Privacy

Both Apple and Google are focusing on enforcing privacy for users of apps. We discuss the privacy changes on the Apple platform in another blog post about the launch of iOS version 14.5. Google’s Android version 12 (still in beta) is also giving privacy a boost in what it calls “Private by Design”. A few of the changes include Bluetooth scanning for nearby devices no longer requiring location services to be switched on, and where location services are required, allowing the user to only report an “approximate location”. In addition, users will be able to permit an app to take an action “this time only” instead of for all time.

Concurrency Supported Natively

Apple have released an updated version of Swift – the language in which developers now build iOS Apps – which allows concurrency (the app executing more than one command simultaneously) within the language. This is a big win for future app performance, for example, depending on your app concurrency could allow the user interface to continue to present new information to the user, while their previously submitted information is being processed. Kotlin – the language of choice for native Android development – has supported concurrency and threading for some time.

Compiling iOS Apps in the Cloud

Another important step forward in the iOS app development ecosystem is the announcement of XCode Cloud. Whilst still in beta, Xcode Cloud will facilitate continuous integration and continuous delivery for building apps and automatically send notifications to testers. This will be possible when XCode Cloud is used in conjunction with a git source code repository. It will also allow developers to compile the app in the cloud, rather than taking minutes / hours to compile on the developer’s computer, effectively preventing them from doing any work while that is happening.

Both Apple and Google are improving developer tooling to help developers test parts of their application through better emulators e.g. the new CarPlay simulator for Mac, and the new virtual heart rate sensor in the Google emulator.

Better support for Augmented Reality (‘AR’)

Google announced in March an overhaul of their Google Maps functionality, including the improvement of their Live View Augmented Reality feature which allows you to point your phone at the surrounding buildings (in large cities that have been mapped) or within buildings (such as inside airports) in order to figure out where you are, and get live on screen directions pointing you to where you need to go.

Apple has recently launched the RealityKit 2 library, in order to allow the creation of high-quality, photo-realistic 3D models of real-world objects in minutes by taking photos shot on iPhone, iPad, or DSLR and transforming them into 3D models optimized for AR. Google also has made recent improvements to the app developer environment for easier implementation of AR within Android apps.

AR is clearly an area where both platforms are keen to press forward and provide richer user experiences, and not just for gaming!

Foldables

With the release of foldable mobile devices such as the Galaxy Z Fold 2, the Android development libraries have been enhanced to allow developers to customise the user interface in different ways for foldable devices, and mobile devices with larger screen sizes.

All the above changes are welcome enhancements, but many of the features rely on users updating their phone operating systems or hardware. Still it is good to keep the above improvements in mind when considering functionality for your new app, or upgrades to an existing app.

If you would like to discuss your app idea, don’t hesitate to get in touch.

Facebooktwitterredditpinterestlinkedinmailby feather

Custom Technology or Packaged Solution – which path should I take?

March 14th, 2021 by Heather Maloney

Contactpoint has always operated in the custom technology space, helping our clients with ideas for unique technology solutions to marketplace challenges, to make those ideas a reality. We are currently in the middle of building some significant pieces of custom tech, and we have just finished the complete re-build of a custom solution for Deaths and Funerals (we built the previous version of the solution many years ago, and the requirements had changed significantly).

However, not all of our work involves custom technology, and as much as possible we utilise pre-existing, proven technology and components to reduce the cost of custom development and ongoing maintenance. In addition, we are currently assisting several long term clients to move away from their own custom technology which we built for them, over to a packaged (aka ‘off-the-shelf’ solution). At the time when we built their original solution, that was the right option.

We recently discarded a custom technology that we had built for ourselves over many years in favour of a packaged solution – that technology is our project management software. On the other hand, we continue to support and enhance another custom technology solutionEnudge – which we built to service a very particular need in the marketplace, and of course we continue to use it for ourselves. You are probably reading this blog because we emailed you about it using Enudge.

All of the above begs the question: when should a business choose to develop a custom technology solution, and when should they choose a packaged solution?

To answer that question, I will take you through the advantages and disadvantages of custom technology.

Advantages of Custom Technology

Own the space
Creating your own custom technology, if successful, can allow you to be the dominant player in a particular market; that’s what I mean by owning the space. Your solution is unique to the particular problem you are solving, allowing you to do it better than your competitors, and therefore to stand out from your competitors. If you are using a packaged solution purpose built for your industry, then it will not be a factor in your market differentiation … you will have to look elsewhere for uniqueness.

Innovate
Most likely you will choose to build a custom solution because there’s nothing on the market that does exactly what you want – you want to innovate compared to what is already available because you have worked out a way to do it better, to achieve better business outcomes and better results for your customers.

Having control of the solution you are using gives you the opportunity to continue to innovate. Many of the packaged solutions that are available for your purchase were originally developed by a business who wanted to operate better, and then they realised that the solution they had made had widespread appeal for other businesses, so they pivoted (or spun off) into a software company instead of their original business.

Competitive Advantage
Innovating / improving the standard way things are done can give you a competitive advantage. Perhaps you can operate cheaper than your competitors, allowing you to perform the same service for a lower cost, and still achieve the same level of profit, or you can achieve a better / quicker result at the same price.

Where most businesses in a particular industry are using the same processes and technology solutions, then you can’t gain a competitive advantage from your technology.

A warning though: when your uniqueness in the marketplace is largely delivered through your software solution, you need to keep on your toes as many software solutions which just involve what is known in the industry as CRUD operations (create, read, update and delete) are relatively easy for a competitor to copy. In this situation, continually innovating will be essential to keep you ahead of your competitors.

Packaged solutions also continue to innovate, but every business using that solution will gain access to the same innovation at the same time. You might have the opportunity to pitch an innovation to the packaged software vendor, but they will have a very long list of planned features – whether your suggestion is ever implemented will be unknown. And if they do, all your competitors using the solution receive the advantage as well.

Agility in the Marketplace
The economic and legislative landscape in which you operate will change over time. Customer behaviour will change with fads and trends. If you control your technology, and if you have the funds, you can be the first to take advantage of a new opportunity that arises as the result of a new trend.

Reliability into the future
Finally, and something I expect businesses are thinking less and less about that the moment because of the largescale move to cloud technologies which force you to rely on the big tech companies, owning the technology, and having control over it’s future, gives you certainty for the future operation of your organisation.

I don’t expect the big tech companies to disappear anytime soon. However, what about the packaged solution you are using for, say, your project management. What would be the business impact of your organisation if that company decided to sell or close down? This is a factor you need to consider when choosing a packaged solution and is largely resolved by building your own.

Disadvantages of Custom Technology

Expense
There’s no getting around it; building your own software, even if you hired a teams of designers and developers directly, will cost considerably more than buying a packaged solution.

Nearly all software runs on hardware and/or platforms that are built and managed by other businesses. That means that your custom-built software solution will need to be continually maintained in order to ensure it will run on newer hardware and will continue to operate correctly when the platform is updated including web browsers (where your software is run through a browser).

When you are the only organisation using your software you may not be able to achieve the economy of scale that a packaged solution can. Selling the one solution to a large number of companies is a way to amortise the cost of the development and ongoing maintenance.

Organisations for whom we build custom software will often have the potential to apply their custom software to multiple businesses, or to a franchise, or are indeed intending to have a significant share of a large market.

An Ongoing Project

I’ve already touched on this under the topic of Expense, however, the other disadvantage of custom software is that you can’t just build it, and then enjoy using it. You have to be committed to the software over the long term. You have to be willing to dedicate time and effort to maintaining the solution to keep the benefits you have gained from your investment – this time and effort may be a distraction from your core business.

As a minimum, your software will need to be maintained to continue to work with new versions of the hardware and/or platforms upon which the software is running. You will need a good software partner (like us!) to continue to maintain and support your solution on an ongoing basis.

If you have moved into the business of delivering a software solution to other organisations, then you need to continue to innovate in order to stay at the top of the list of solutions. Similarly, if your technology solution is your competitive advantage, you will want to focus on ongoing improvements to keep your competitors at bay.

In conclusion …

By way of summary, the advantages are all about opportunity, and the disadvantages all relate to investment (time and money).

It is my view that you should embark on creating custom technology when both of the following are true:

  1. There is no well-supported packaged solution that fulfils all your most important requirements or complete ownership of the solution is vital for your competitive advantage, and
  2. You have the ability to fund not only the initial development but also ongoing maintenance and enhancements. This might include revenue generated from the sale of the solution if that’s part of your strategy, or it might be that your solution will reduce your costs, or enable you to expand into new markets without increasing your costs.

Where our clients are now moving away from their own custom technology to a packaged solution, it is because there is now available sufficiently robust solutions to meet their key requirements, and / or they no longer have a good enough reason to maintain their own solution. In addition their custom solution no longer provides a competitive advantage and is not their core differentiation in the marketplace. It may also be too expensive to maintain, or too distracting from their core business.

There is one other alternative that should also be considered for creating a custom technology solution: using a configurable platform, instead of building from scratch. A platform that enables you to combine components which, together with an underlying data store and workflow rules, creates your required technology. Often these platforms are low code or no-code solutions, providing drag and drop user interfaces to create the system. There are myriad models for such solutions. WordPress is a kind of this solution, whereby you can add plugins to your existing WordPress website to achieve additional functionality often without needing to write any code. Hosted form builders, including Microsoft’s Sharepoint combined with Power Automate and Power Apps, is another example applicable to organisations using Office365.

Cloud platforms such as AWS, Microsoft Azure, and Google Cloud Computing are also helping the development of custom software solutions more accessible to small business via the pre-built components they provide in their cloud platforms – we make use of these for many of our clients to reduce the cost of development of custom solutions.

Making the right choice of platform on which to build your custom technology solution, or choosing the right packaged solution, is a very important decision. Making the wrong decision can be very costly, either in opportunity and position in the marketplace or in dollar terms. If you would like to discuss your idea for custom technology, don’t hesitate to get in touch. We are invested in your success, whether that’s pointing you to a packaged solution or helping you create the technology to underpin your invention.

Facebooktwitterredditpinterestlinkedinmailby feather

The Winds of Change Howling around Big Tech

January 26th, 2021 by Heather Maloney

Big Tech – namely Google, Apple, Amazon and Facebook – are increasingly under pressure due to their vast impact on our lives. The way they exercise their impact and influence is coming under pressure in many ways, including the following:

  1. Privacy concerns surrounding the sale or misuse of personal data.
  2. Monopolistic concerns, including their control over digital advertising and the digital landscape, and their control over retail.
  3. Free speech and dissemination of information, particularly with regard to the influence of social media, censorship and algorithms that fuel division rather than understanding and unity.

The above points may sound negative or alarmist, however, it is important to see that all change provides opportunity, so let’s look at each of the above and the potential opportunities they present to Australian businesses.

Privacy Concerns

The GDPR (General Data Protection Regulation) is a prime example of strong pushback against the use of private data by the big tech companies. Prior to the GDPR coming in across Europe, Facebook and Google seemed unabashed in their use of data they had captured from people using their platforms to specifically tailor ads and recommend content.

The pressure they are being put under with regard to privacy, and their various breaches of privacy for which they are being sued, has made the general public more aware of concerns about privacy. This can only be a good thing, particularly for the younger generations who embraced social media and other apps in which they shared their personal information seemingly without concern for how their personal information could be used.

The outcome of the use of browsing behaviour by Facebook algorithms to continue to feed people with more and more sensational articles that agree with their perceived view, has caused greater polarisation of viewpoints between two sides of an argument, less empathy between opposing sides, and provided the opportunity for digital terrorism in the form of de-stablisation of western democratic countries by nations who stand to benefit. Interference in elections, using stolen electoral information, is of particular concern.

Opportunities:

  • Peer to peer solutions that allow individuals to benefit from the collaborative nature of cloud technology, at the same time as keeping their data away from big tech.
  • Providing alternate digital solutions that keep data firmly in Australia, away from the big tech companies. This is a strategy that we have employed for Enudge – our in-house built email and SMS marketing platform.
  • Alternate platforms for groups that wish to deliberately avoid using big tech platforms and any potential control they may have in future over their data.
  • Anti-cybercrime solutions.
  • Online voting solutions that can be relied upon!
  • Online community that brings people of different views together to develop empathy rather than division, and to take positive steps forward to improve the lives of all.

Monopolistic Concerns

As the world has become increasingly reliant on the internet to find products and answers to questions, Google in particular has gained a huge percentage of the market share of advertising budgets across the globe. Competition between advertisers has naturally driven up the cost of advertising on digital platforms. With such a monopoly, it is easy to see how Google could significantly increase it’s revenue by a small change in pricing. Advertisers may feel that they have no real alternative to be found online.

In 2019, research confirmed that out of every $100 spent on digital advertising by Australian businesses, $53 went to Google, $28 to Facebook and $19 to all other websites and ad tech. Last year, Google made $4.3bn in advertising revenue in Australia, and Facebook made $0.7bn.

With a monopoly situation, malicious actors can have a much faster and more detrimental impact on an organisation. There are many publicised cases of businesses being the recipient of fake, nasty Google Reviews – presumably by competitors – even for businesses that have not yet launched. Google isn’t always very fast in taking down even the really obvious fake reviews. The damage on businesses can be significant, and requires better responsibility to be taken by the platform to support the reputation of businesses.

Aside from professionally, and accurately, responding to all reviews, a way to reduce the impact of malicious negative reviews is to ensure that you have a large number of reviews from happy customers, so that one or two bad ones will be diluted by the good.

Even within the USA there are concerns with regard to the monopoly held by each of the 4 big tech companies. Most states of America want to see Facebook split off Whats App and Instagram to reduce their monopoly.

Multiple lawsuits have recently been commenced in the USA against Google in relation to anti-trust – basically anti-competitive behaviour, misusing it’s stronghold on search advertising and other online advertising to retain it’s stranglehold on the market share. An interesting article in Business Insider describes the impact of a similar court case against Microsoft 22 years ago, which Bill Gates has given for the reason that the Windows phone did not succeed, and he ultimately stepped down as CEO.

In 2020, Apple was forced to payout millions of dollars to iPhone customers due to slowing down older phones via software updates, without telling customers that is what their updates were going to do, which resulted in many customers purchasing newer phones.

In August 2020, litigation against Apple was commenced for antitrust violations and anti-competitive behaviour in relation to removing the game Fortnight from their app stores. Apple took this action when Epic Games launched a new version of their game app which processed payments for in-app purchases on their own platform, rather than using Apple in-app purchasing, in contravention of Apple’s terms and conditions. Epic Games has been pushing back against the 30% cut of sales that Google and Apple take from purchases made through the app stores. Apple has since announced a reduction of the commission to 20% for small businesses.

Amazon is under fire for the way it allows harmful products to be sold through it’s marketplace, and then claims that they are a mere facilitator of a sale, despite the fact that they promote the product, warehouse the product, take the order, and deliver it to the customer. Though perhaps Amazon isn’t too concerned given the significant increase in revenue they achieved on the back of the pandemic.

Opportunities:

  • Make sure that you capture information about your contacts, such as their phone number and email address, so that you can market to your audience outside of social media and Google remarketing – thus controlling your message and reducing your advertising spend.
  • Stand out by advertising in lesser known digital locations to reduce your dependence on Google, which will also reduce the monopoly of Google.
  • Keep a close watch on your Google and Facebook PPC configuration and level of spend, to ensure you are getting the best ROI.
  • Stand out by advertising your products and services is non-digital ways – consider local radio and billboards – these may also be cheaper forms of advertising right now with the reduced number of commuters on our roads.
  • Build a local, physical community around your products and services, focusing again on grass roots and communities, rather than the masses.
  • Build an application that provides an alternate to the USA hosted big tech solutions, for a niche market.
  • Ensure that the way you describe your products and services makes it clear where they are made, what they are made from, who its sales are supporting etc.

Free Speech and Accurate Reporting

Newspapers have all but been replaced by digital versions. Media organisations around the world are under continual pressure to retain their place in society, with everyone having a voice in social media, and “social influencers” having potentially more sway than the voice of soundly researched news.

The more recent censorship of Donald Trump by social media giants should send fear into the hearts of any advocate of free speech and democracy. This was perhaps a result of the July 2020 boycott of Facebook by many large advertisers as a protest against hate speech and misinformation published on the platform. The boycott by mostly very large advertisers only reduced Facebook’s revenue by around 12% for that month, and the linked article mentions that many of those who boycotted will be back at the same level of advertising after July because they are so reliant on the traffic it brings them.

Amazon is also involved in the furore, having terminated the web hosting services provided to Parler, an alternative social media platform also around the events leading up to the inauguration of Joe Biden.

The Australian government is seeking to force Google and Facebook to negotiate a fair payment with news organisations for using their content in Facebook’s newsfeed and Google’s search, rather than just benefiting from these news sources and using them as a free service. The Treasury Laws Amendment (News Media and Digital Platforms Mandatory Bargaining Code) Bill 2020 was tabled by the treasurer, Josh Frydenberg, in the last sitting week of 2020. It is hoped that the required payment from Google and Facebook for using the news, will help the media companies make up for their dramatic loss of income from the sale of ads, which has moved largely over to Google and Facebook, and sure up the ongoing provision of quality local news. France and the UK have similar changes underway. You can read more about the code that is seeking to give Australian News Media Companies a framework within which to negotiate with the tech giants via this article: Australia is making Google and Facebook pay for News – what difference will the code make?

Opportunities:

  • Niche community building tools that don’t require Facebook membership to operate.
  • Build relationships with local media and journalists to make it easier for your news to reach the world through traditional media channels.
  • A potential backlash against Google and Facebook advertising may see a return to Australians consuming more online news, and therefore more likely to see your ads within their publications.
  • Don’t be afraid to advertise in lesser known platforms – these may give you more cut through of your message, and give you access to new audiences.

A replacement internet?

As this article in the India Times states, Tim Berners-Lee (father of the internet) has expressed his distaste at how major corporations have taken what was supposed to be a free environment and placed restrictions on it. He doesn’t like how groups like Facebook, Google, and Amazon have effectively centralized the Internet, nor how they control people’s data. So he’s instead working on a new platform and startup that’s declaring war on Big Tech. The new platform is called Inrupt, and is based on people who use it controlling all their own data via a pod rather than having your data harvested and controlled by the big tech companies.

Berners-Lee is making the platform open source and isn’t looking to make money out of it. He plans to tour across the globe over the next few months, tutoring developers on how to build their own decentralized apps using Inrupt. So here’s another opportunity waiting for startups!

Where else do you see opportunity arising from the pressures being applied to big tech?

Facebooktwitterredditpinterestlinkedinmailby feather

Business Changes that will remain post pandemic

December 8th, 2020 by Heather Maloney

I have been thinking about all the changes business has experienced this year due to the pandemic, and which changes I expect to stay with us, impacting business in the years to come. These are my thoughts – I look forward to hearing yours as well, so please add your comments below.

Ecommerce

Ecommerce has not just increased in volume, out of necessity, it has reached many new categories and people who weren’t comfortable with it before, are now buying online as their default method. I expect that we will still revert to preferring physical shopping for some things – clothing, for example (at least until you know your size in a particular brand), and when we want to have the “experience” of shopping. Bustling in amongst all the goodies, playing with potential gifts, admiring beautiful Christmas windows, and stopping for a coffee and something sweet in a cafe just can’t be replaced by online. Well, not yet anyway!

As a stop gap measure while international travel is nearly non-existent, some tourist destinations have ramped up their use of virtual reality to promote the destination and/or promote the safety of travel to their location, to would-be travellers. Of course, you need to own a VR headset in order to watch e.g. an Oculus Rift headset and HTC VIVE are popular. You can read more about tourism’s use of VR in this article: Coronavirus: Is virtual reality tourism about to take off?. I am not expecting everyone to rush out and start enjoying virtual reality, regardless of the pandemic [the surge in sales over the last year has been mostly driven by the release of a VR game, rather than the general public seeking out the technology]. I expect to see ecommerce websites will be seeking to bring as much of a feeling of having an “experience” into their online stores as they possibly can, to bring back the shopper again and again. This is particularly key for online stores with large numbers of items for sale.

Consolidation of brands (due to smaller businesses closing down as a result of the pandemic), and the move of consumers to online stores selling a wide range of products (e.g. Amazon) is being discussed as an outcome of the pandemic, particularly in America. However, that means your more tailored, unique, one-of-a-kind products will stand out much more than before.

The increase in ecommerce will also drive greater activity in all areas of digital marketingemail marketing, pay-per-click (PPC) ads, social media events and advertising. PPC was already increasing in price, I don’t expect that to change anytime soon. It will be important to continue to innovate in your use of digital marketing. Whether that’s introducing video into your ads to stand out from your competitors, looking for smaller keyword niches, targeting your ad spend more carefully…

Postal / Courier Delivery

The use of postal and courier services has also escalated alongside the rise in ecommerce, and we have become much more used to concepts such as click and collect, and ring and collect, options. Having parcels dropped at your home without signature is also very convenient. Unfortunately I expect that we will keep being impacted by slow mail deliveries for awhile to come, so we need to be more organised, planning further ahead for the things we need, if we don’t intend to go to the store.

Businesses will need to focus even more on delivery of their product, not just attracting buyers and getting the sale. Speedy delivery will stand out.

Shopping locally, as in really local, has gained more importance and people are more connected to the shops that are close to their homes, and wanting to support them. I expect people will continue to source staples as close to home as possible and support local traders.

How we Meet and Work

The rapid uptake of video conferencing for business meetings has been well documented, as is how sick people have become of being on yet another Zoom meeting. Whilst it is better to have video conferencing, rather than just a phone call, I expect that as soon as we can get back to physical meetings, we will. I believe that the long lasting effect of the pandemic is a greater acceptance of being able to meeting using video, rather than needing to fly to meet with someone. Travel bills for organisations should stay much lower than pre-pandemic levels. More people will be able to present over video, rather than in person at events. We will just accept video as a viable alternative.

Along similar lines, I expect to see greater support for employees who want to work from home, but most likely a hybrid model will operate, where all employees are at least a few days per week in the office. Whilst there are benefits to be enjoyed by working from home, I believe that the ideal for both work-life balance, and for productivity, is for everyone to be together in the one place. Gaining hours back in your day by avoiding a long commute is the most obvious benefit of working from home; I expect we will see a trend to choosing to live closer to work.

Prevailing Kindness

I have always tried to be kind and compassionate in business, and have from time to time been shocked into reality when others have operated in a very different way. However, I have noticed since the pandemic, a much greater dose of kindness and consideration in dealings with other businesses. People have been forced to take stock of what is really important in their lives, and relationships and their loved ones, and just looking out for one another, have come up trumps.

Of course, I want kindness and compassion to continue after the pandemic, and I definitely don’t want anyone to try and manufacture this into their DNA as part of a shallow marketing strategy. However, I do expect that organisations will do well when they operate with kindness, real feeling, treating people as people who might be having a difficult time of it …

I expect that relationships between people in businesses will again be given more importance when deciding who you want to work with as a client or as an employee.

Scrappiness – doing things with more speed, heart, and a little less professional finish – has become much more acceptable, even welcomed, by people both in B2C as well as B2B environments. Scrappiness enables businesses to be faster to market, and is often cheaper to execute.

Hygiene

I expect it will eventually wear off, but for the next 6 to 12 months (timeline depending on how long we continue to see big spikes in covid cases) people will continue to be mindful of hygiene – not touching anything and everything; regularly sanitising their hands when they enter stores; no handshakes / kisses on the cheek. Businesses will continue to build a good reputation by supporting people’s focus on hygiene – keep it top of mind and be considerate, provide the opportunity to use sanitiser at business entrance, lift wells and in toilets. Practice elbow bumps in favour of handshakes.

Focus on Innovation / Comfort with Change

As the saying goes, necessity is the mother of invention. Businesses who pivoted during the pandemic will now be even more agile into the future, and more willing to implement significant change, quickly. Responding to the pandemic has helped business leaders and employees to build resilience and cope with change. The pandemic has also made it very clear how unexpected events, and government / societal response to them, can affect your ability to trade.

I expect that business leaders and employees alike will be more focused on innovation, and more willing to try something new and radical.

What else do you expect to remain as a result of the pandemic? Please add your thoughts via the comment form below.

Facebooktwitterredditpinterestlinkedinmailby feather

Cloud Middleware for APIs Supporting Multiple Goals

October 23rd, 2020 by Heather Maloney

There’s no getting around it – businesses are increasingly using many different apps to handle specific tasks. Accounting, marketing, order fulfillment, sales, project management, the list goes on. Each application chosen by a business performs important tasks very well, but adds to the complexity of the business operations, particularly when information needs to be shared between the applications. Manually moving data between the applications takes precious time and is mundane work, and therefore runs the risk of not being done or being done poorly (with errors) or late.

cloud-based middleware for integrating applications

For many years, we have assisted our clients to solve these problems by implementing integrations between their websites / web applications / SaaS products and other business applications. The upfront cost of the integration has paid for itself many times over in time saving for the business, however, when the 3rd party application changes functionality or changes the API exposed to the public to allow the integration, then the integration can break and requiring rework.

Enudge email and SMS marketing app, designed and built by Contactpoint in 2006, has been enhanced to integrate with many different applications over the years. Enudge is presently integrated with Pipedrive (a deal management app), Gmail, Outlook, Xero and Salesforce, making it easy for people using these apps to send contact data to and from their Enudge account. These integrations can be costly to build and maintain, and there is always another app on our list, waiting for our team to integrate with!

We are always looking for ways to help our clients grow using technology, and doing that in ways that are cost effective, robust, secure and scalable.

A better solution to Integration.
The maturity of cloud-based middleware services that support application integration has led us to recently explore how these can be employed for our clients, to solve the problems I’ve described and support the following 3 Use Cases / business goals:

  1. Automating routine business tasks to save time e.g. creating an invoice in your online accounting system whenever a sale is made in your online store, adding a new customer of your online store into your email marketing platform.
  2. Ensuring integrations keep running, and are easy to maintain.
  3. Enabling other applications to integrate with your application in a cost-effective way, providing greater marketing reach for your application, and making it easier for your customers to use your solution.

Cloud-based middleware services, such as Zapier and Automate.io, act like the glue between applications or a marketplace where any app can connect with any app.

For the 1st goal – automating routine tasks – the ability to shift data around is significantly easier when your apps are supported by a middleware service. As a very simple example, you can set up the task of adding a new customer (in your online store) into your marketing platform, which then sends out a welcome email and ensures future email campaigns are sent to that new customer as well, all without you needing to do anything.

For the 2nd goal – easy to maintain integrations – the applications who enabled the middleware platform to integrate with their application are motivated to ensure the integration keeps running, and will ensure that it does, or give you plenty of warning that you need to update your integration.

For the 3rd goal – making it easy for others to integrate with your application, and all the advantages that brings – the middleware solves the huge problem of how to have enough resources (time & money) to enable integration with the vast array of applications that logically have a need to integrate with your application. Enudge, for example, should logically integrate with every CRM and ecommerce platform, as well as every lead generation solution. Using a middleware means that the effort to implement the integration can be carried out once, and support potentially thousands of applications. In addition, there will be automations required by our clients that can be supported by the middleware service, that we would never have thought of and therefore never supported. For example, what if an Enudge user needs to print name tags for every customer who indicated they would attend an event by clicking on the “I will attend” link in their Enudge Action Responder email campaign, and that name tag is created by a special name tag app? If the name tag app is available in the middleware service, receiving contact names, and Enudge has a trigger of “Clicked Yes” exposed in the middleware service, then suddenly integrating the two applications is available, without either application needing to know about the other.

It is perhaps the “marketplace” nature of the cloud-based middleware that is the most exciting aspect. It gives you the ability to quickly integrate two or more apps together to mimic your workflow, saving you time and money, and freeing up your time to get on with your core business.

So what is the downside; there’s always a catch, right?
Well, you need to have and pay for the account with the middleware service. The cost usually depends on the number of integrations you have in place, and how many times these are used on a monthly basis. These services aren’t prohibitively expensive compared to building and maintaining individual integrations yourself. It is not hard to calculate the return on investment provided by a service, based on the time it saves you.

The other issue you need to address is whether the business apps you have selected are available on your choice of middleware service.

Ideas worth Exploring?
If there are aspects of your business operations that are impacting on your time, feel free to get in touch so that we can explore together how they might be cost effectively solved using integrations.

If you are using Enudge and would like to integrate your account with another application, please get in touch. We are currently building integrations into the Zapier platform for Enudge, preparing for public launch, and would love to talk with you about being part of the beta testing phase.

Facebooktwitterredditpinterestlinkedinmailby feather

Embracing Serverless Cloud Technology

July 23rd, 2020 by Pavithra Kameswaran

In this article I will describe how serverless cloud architecture for a modern digital application provides Contactpoint clients with the opportunity for quicker time to market, less dependence of a particular technology and lower hosting costs.

When we say that a software application is running in the cloud, we mean that all the resources and services that the application utilises are hosted on the Internet. The internet is a mass combination of connected computing servers processing some 98,038Gb worth of traffic per second (at the time of writing!).

Accessing an application, and data it creates, which is hosted in the cloud simply requires a device (PC, tablet, mobile phone …) that a browser runs on, and a connection to the internet. As an example, all of the business software that Contactpoint use is running in the cloud, so that we no longer need to have those applications stored on physical servers in our office. This has meant that moving to everyone working from home during the COVID-19 pandemic has been relatively easy. We simply took our devices home, and continued to have access to all the resources we need, including our telephone system.

So what’s the big deal about serverless cloud?

The term ‘serverless’ cloud refers to technology architecture where the developers of a software application do not need to concern themselves with the underlying servers upon which the technology is operating. It is yet a further level of abstraction, compared to provisioning private servers in the cloud, or virtual private servers that are then allocated to particular applications and maintained with regard to software versions, security updates, disk space, performance and physical hardware that needs to be replaced over time.

Our most recent serverless technology implementation for a client’s SaaS product (soon to be launched) comprises a back-end using AWS Amplify, AWS Appsync, AWS DynamoDB and AWS Lambda – more about these components in a moment. As stated by AWS (Amazon Web Services; one of the most popular and comprehensive cloud computing platforms) using a serverless architecture allows you to “build and run applications and services without thinking about servers. It eliminates infrastructure management tasks such as server or cluster provisioning, patching, operating system maintenance, and capacity provisioning … everything required to run and scale your application with high availability is handled for you.”

It is still vital that as developers we plan, architect and provision resources appropriate for the application being developed, but the serverless architecture reduces much of the issues and workload (both upfront and long-term) associated with managing servers in the cloud. Even more importantly for our clients, serverless architecture allows you to only pay for those services that are used by your application and only when those services are actually used. Depending on the payment option selected by you, payment can be down to the millisecond of processing power used by your application.

The competition between the main cloud providers – AWS, Microsoft Azure and Google Cloud – is fierce as they are vying for share of market, and our clients are often able to secure generous incentives to build on a particular platform such as free services for a year.

It is important to note that a serverless application has a very different architecture compared to a traditional application, in order to take advantage of the benefits of serverless. As developers we need to give much more weight to considering how often each function within an application will be invoked, how long the process will run for, and how much data will be transferred, as these will all have an effect on the costs of running the serverless application as it scales, as well as the performance of the application. Serverless application development also requires the use of components provided by the cloud provider in order to achieve the ability for the application to scale – underneath the covers these components take care of provisioning more physical servers and computing power to meet the demand of the application.

For our client’s SaaS product, choosing serverless architecture is the right choice as their app is destined for use by millions of people across the globe, but will start small. Using serverless means that they will only pay for the small amount of usage upfront, but the application will automatically scale as demand grows.

A brief summary of the main components used for the backend of our client’s application are as follows:

AWS Amplify is a framework and toolset within which mobile apps and web apps can be built. It facilitates the development of UI-driven, highly scalable applications and provides access to a large number of AWS cloud services.

AWS Appsync allows us to write GraphQL APIs in the cloud. GraphQL is a trending, flexible and a fast API query language. The choice between a REST API and GraphQL API, their respective advantages and trade-offs, is a topic for another blog! With directives such as @auth and @model, Appsync generates queries, mutations and resolvers for us, which we can then customise to the application requirements. It also provisions tables in the DynamoDB automatically, and both these put together, provides significant time saving in the app development. It helps developers focus more on core functionality of the app, business logic and front end.

AWS DynamoDB is a NOSQL database which continuously backs up the data, and automatically scales as required. Being a NOSQL database provides great performance for fast return of data.

AWS Lambda provides us with a platform to write microservices that will compute as required and only incur costs per computation. With the right usage, Lambda is very effective due to its nature of continuous scalability and zero administration required.

When should I choose serverless architecture for my application?

The general factors to consider when choosing serverless architecture are:

  1. Quick and continuous scalability – auto-scaling is an important attribute of serverless architecture. If your app is targeting a large user base e.g. the general public, then the number of your users, and their demands for resources, can grow very quickly. For example, a new online health magazine could grow to a million readers, but might start very small. If you were to allocate resources and services to cater for a million users right at the beginning, you would have lots of idle resources and need to maintain those as well as cover the cost until the readership grew. Using architecture that isn’t auto-scaling would involve much effort by the hardware, software and security teams to keep us as you grow. Auto-scaling solves these problems.
  2. Effective Cost Management – as mentioned above, building and provisioning resources with a million readers in mind right from the beginning could incur huge costs until the app makes it to a million readers. Instead, by developing serverless we will use resources and services as needed by the n number of users currently, and will scale up as the number of readers grow to a million (or more). Thereby, we will incur costs for the infrastructure only as it is used and presumably paid for by the users.
  3. High Availability – AWS components like Amplify and Appsync provide offline data access and conflict resolved synchronisation when back online. The databases and storage also tout high availability of data since distribution of servers in the cloud has facilitated almost zero downtime and 24/7 availability. This is why many organisations are migrating legacy applications to the cloud, and converting them to serverless applications.
  4. Low Maintenance – AWS databases such as DynamoDB and storage systems such as AWS S3 are so low in maintenance that we can almost term them as zero maintenance. AWS claims that DynamoDB requires absolutely no maintenance at all. Once setup properly, it can keep operating continually, scaling as required, and performing as designed and intended. Even the relational databases provided by AWS, such AWS Aurora, require very less maintenance (updates and patching) when compared to other non-serverless databases.
  5. Performance – last but not least, one of the most important factors for all applications is performance. We can have an online health magazine app that has the content and potential to become the most popular app ever, but if it cannot deliver content quickly for a million or more readers, it is bound to fail. By performance, we are referring to the speed of data retrieval, data submission, loading of the user interface (where that is part of the server-side application) and the speed of functions that process the data and business rules / programming logic of the application.

What languages does serverless architecture support?

When building an app within a serverless infrastructure such as the AWS platform described above, you still need to choose the programming language within which you will write the application that lives on the device of your end user, or is accessed via the cloud by the end user. This programming language then needs to be able to interact with the components above. AWS provides many options in this regard including NodeJS, Java, Go, PowerShell, JavaScript, C# and .Net framework, C++, Ruby and Python.

For our most recent application we chose NodeJS for the backend code, and ReactNative combined with NativeBase for the mobile apps. This choice allows for similar languages to be used across the frontend and backend of the SaaS product, providing for a simpler implementation, and easier application maintenance over time. However, some components of the AWS environment support Javascript, and Javascript libraries and frameworks better than others – like all cloud platforms, they are ever expanding and improving the functionality that they make available to developers to speed up development. We needed to switch choices of libraries several times to resolve unexpected issues with parts of our app due to less support for ReactNative compared to native mobile application languages (Java for Android and Swift for Apple).

Depending on the way your application is constructed, the serverless architecture also makes it easier for you to mix code implemented in different languages, allowing you to use best of breed for each function within your application.

Should I move my legacy or web application to serverless?

As I mentioned above, many organisations are moving their applications which were built and deployed on a dedicated server (either on-premise or in the cloud) to serverless architecture to gain one or more of the benefits. Before deciding to move an application to the cloud, you will need to consider the effort involved – you will only achieve some of the available benefits if you simply “lift and shift” your existing application. To fully benefit from the move, your application will need to be re-built in the new architecture. For this reason, organisations often put off a transition until their application is sufficiently in need of a re-build before making the move.

As a developer, I look forward to working on applications which help our clients grow, through the amazing scale possible via serverless cloud architecture.

Facebooktwitterredditpinterestlinkedinmailby feather

Adding Voice Control to your Mobile App

February 11th, 2020 by Ishan Geeganage

Allowing the user of your mobile app to instruct it via Google Voice Assistant or Siri is a great way of making it easier for your user to get on with their day, and get the answers or action they need to accomplish done quickly, or when their hands aren’t free or glasses nowhere in sight.

Access to Google Voice Assistant (Android) or Siri (Apple) are governed by the methods available to interact with these APIs, and that means voice control is constrained to very particular functions – although the available functions has been significantly extended since we last wrote on this topic back in 2016. Below is a list of the areas in which we can currently use voice activation / control:

Google Voice Assistant

Domain Supported Actions
Alarm Set Alarm
Set Timer
Communication Initiate a phone call
Fitness Start/Stop a bike ride
Start/Stop a run
Start/Stop a workout
Show heart rate
Show step count
Location Book a Cab
Media Play music from search
Take a picture
Record a video
Open Open URL
Open App
Productivity Take a Note
Search Search using a specific app

Siri

Domain Supported Actions
VoIP calling Initiate Call
Search the call history
Messaging Send Message
Payments Send payments.
Request payments.
Pay bills.
Search for bills.
Search for and view account information, including balances, points, and miles.
Transfer money between accounts.
Photos management Search for photo and show them in the app
Fitness activities Start, pause, resume, end and cancel workout
Ride Booking Book rides
Provide ride status information
CarPlay integration (not supported on watchOS) Activate and save a drivers setting
Change the cars audio source
Change the cars climate
Change the cars defroster settings.
Change the cars seat settings.
Change the cars radio station.
Vehicle integration Activate hazard light or honk the horn
Lock and unlock the doors.
Check the current fuel or power level.
List and Notes Create to-do lists and items.
Search for to-do lists and items.
Mark to-do list items as complete.
Create reminders based on a date, time, and/or location.
Create notes.
Search for notes.
Modify notes.
Media Search for and play music, audiobooks, and podcasts.
Like or dislike items.
Add items to a library or playlist
Restaurant Reservation Create and manage restaurant reservations
Visual Codes Show a visual code, like a QR code or bar code

In every main OS version release, we expect there will be new opportunities added into these services. This blog was written based on:

  • Sirikit support iOS version 10.0
  • Google Voice Action support version 21

It is also important to note that some actions can only be implemented in either Android or Apple, but not both e.g. search can only be carried out in your Android app not in your iOS app. In iOS you can scan a QR code with your voice, but in Android you cannot.

How is Voice Control added to my App?
In order to allow voice control of your app, the app must be programmed specifically to be accessible by voice control and particular Actions listed above. When a person downloads your app and installs it on their device, they must agree to voice control being allowed. Then when a voice command is received by your phone that relates to one of the domains & supported actions listed above, and which has a responding activity within your app, then the functionality of your app can be triggered.

What Can I Make My App Do After Receiving a Voice Command?
If your app wants to access any of the standard apps that can be controlled by voice, then your app can be programmed to interact with those standard apps upon receiving a voice command. For example, in your custom app, if you wanted to take a piece of content from that app and save it to a Note (in-built device app), that can be achieved using voice commands.

You can’t talk to your app about something entirely outside the voice controls mentioned above. For example, you can’t say “Hey Google, in >mobile app name< open my transaction history.”

In some cases, your app will ask for confirmation before taking an action e.g. making payments, confirming you would like to make a particular booking, and so on. This is to ensure that the voice interpretation has correctly understood your request.

What Happens if there are Multiple Options?
Just say your mobile app contains a search feature, and you want to allow the user to use a voice command such as “Hey Siri, search for xyz”. Simultaneously of course your phone will also have at least one other search application. When your phone receives a search command, it will then ask you which app would you like to use for your search: x or y? Once you have answered that question, your search will be performed via the selected app. Alternatively, you could ask “Hey Siri, search >mobile app name< for xyz”.

Can I add a Custom Voice Command?
You might be tempted to try and work around the limited number of voice commands currently available e.g. “oh, I will use the ‘Book a Cab’ voice command, and have that do something completely different instead”. Both Google and Apple check your app before publishing it in the app stores, and we expect that they will reject your app if it has been programmed in this manner. In addition, if your app is not in the category of ride sharing, your app will not be accepted if it contains voice controls in the Ride Sharing App domain.

If you are looking to add voice control to your app, let’s have a chat!

Facebooktwitterredditpinterestlinkedinmailby feather

When to Use a WordPress Multisite

February 3rd, 2020 by Pavithra Kameswaran

WordPress Multisites might sound a bit scary when you think of the potential issues that can occur with multiple websites being handled under a single umbrella with regard to setup, migration, updates, etc. But in reality, multisites are not that difficult to deal with once you understand the underlying mechanisms.

Often, it is assumed that a multisite is required when an organisation has multiple websites, or sites with similar design patterns, or multiple sites that differ only in content, etc. While it is true that for such scenarios we might use a multisite, it is not a mandatory choice. Such scenarios may be better served by individual single sites. In this article we will discuss when we should, and when we should not, utilise a WordPress Multisite.

So what is a WordPress Multisite?

A multisite is a collection of websites, with one primary website and the others being subsites, within a single instance of WordPress. Enabling the multisite structure within your WordPress website requires a small amount of configuration in order for it to be available, so you won’t see the option in a standard WordPress install.

With a multisite, you can allow the certain users to create subsites. It is up to the network administrator to configure which users can create websites, what themes and plugins are available across each newly created website, and how much control is given to each user.

The fact that a multisite means that the primary and all the subsites underneath it share the same WordPress codebase, allows the system administrator to update and maintain the site codebase in a single operation.

In general, a WordPress Multisite:

  • Has single point of top control.
  • Has a primary site.
  • All other sites are subsites of the primary site.
  • Has a super admin user (network admin) which will have control over all the sites.
  • Has a single instance of WordPress shared by all sites, thereby sharing plugins, themes and content.
  • Each site will have its own media content.
  • All subsites will share a common database, but will have their own tables as well within the database to contain their content.
  • The subsites can be setup as subdomains (e.g. subsite.mymaindomain.com) or sub-directories of the primary site, which can be mapped to another URL using a special Multisite plugin for this purpose.
  • All websites within the multisite will share the same IP address.
  • Registered users are shared across all sites (though not necessarily all having permissions for each site).

When to use a Multisite:

The following are common reasons to use a multisite.

  • In a logical sense, if your websites fall under a single umbrella, then it is best to setup as a multisite. For example, if your business has several locations or branches and each location needs to have its own subdomain or folder off your main domain, display different content but still pertain to the business overall theme and pattern, a multisite will be an efficient option.
  • Similarly, where an organisation requires separate websites per product, but wants to retain control of each of those websites in the one environment and set of users.
  • Having an organisation wide intranet, where individual divisions can setup their own intranet.
  • Having development and test sites within the one network, thus ensuring that the environment for both are identical.
  • For personal sites, where you want to have multiple personal sites within the one hosting and codebase.
  • You want to allow other users to create websites in your network.

Advantages

One advantage of a multisite is that all your websites are contained within the one web hosting account, saving you cost. However, a multisite will likely require more bandwidth and disk space than a single website, and therefore depending on your traffic and content, the hosting cost may not be too different from a collection of individual hosting plans. Shared hosting is not recommended for WordPress Multisites, and in fact some shared hosting platforms will not allow a multisite setup.

Another advantage is that once your WordPress theme is stable, it is easy to let another person create a new website employing that theme.

I believe the most important advantage of a multisite is that maintenance, upgrades, security, performance monitoring, etc. can be performed for several sites from a single point of access in one step, rather than needing to carry out these tasks over and over for each website.

When NOT to use a multisite:

  • If managing websites is the only concern, there are other automated tools such as Manage WP. You do not need a multisite for this reason, and in fact it could lead to issues.
  • If the sites are totally unrelated to each other, even though they share the same design, it is better to keep them as separate websites to allow flexibility with regard to the functionality available for each site, and to reduce the impact of any change across unrelated sites.
  • When each site needs to have its own IP address, you cannot use a multisite.
  • If the super admin is not comfortable dealing with the monitoring, configuration and maintenance of a multisite, which can get a little complex when you have several sites under the hood, a collection of individual websites will be easier for the admin to handle.

Disadvantages

One disadvantage of a multisite is that if the primary site is down for some reason, usually the other websites are down as well, and will need to wait for the primary site to be up and running again.


Deciding on whether a multisite is right for your purposes needs to take all the factors mentioned above into account. At Contactpoint we are happy to assist you in making that decision, and also helping you to maintain your WordPress Multisite. Please call or email to discuss your requirements.

Facebooktwitterredditpinterestlinkedinmailby feather

Contactpoint Switches Project Management Tools

January 14th, 2020 by Heather Maloney

When Contactpoint started back in 2006, there were no internet-based technologies for meeting a core need of our organisation; that of managing the ad hoc requests from our clients for modifications to their websites, as well as project management of new websites and software development. Consequently we built our own solution, which we named the Contactpoint Client Area – exciting name, I know! – we had no intention of marketing it to anyone :-).

Over the years, regularly updated our client area to keep up with the growing needs of our organisation and our team members. For example, we added kanban boards to help manage workflow as our team grew in size. We expanded it to associate tickets and project tasks to standard process checklists to help with quality control. We added a prospect section to help us keep track of enquiries which then could be easily associated with a new client. Anything we wanted to improve about how we worked could be embodied into our online tool to help us achieve it, and clients also were able to see the details of the work. Needless to say, we revelled in our work on the client area.

As the architect of the client area, I was very proud and, yes, attached to our client area. Not only had it served us well, it also contains 13 years of client history, which is a valuable resource for all sorts of reasons.

Roll forward to 2019, it had become clear that there were now many commercial project management tools with price tags that made them very attractive for SMEs, some of which came with features that we had not had time to build. Our team – a mixture of developers, project co-ordinators, designers, and digital marketers – were needing our work management tool to better support their work practices and workflows.

Over the past 18 months I have reviewed more than 50 project management tools to try and find a solution that had everything our client area included, as well as the better features that we were hoping to take advantage of, so we can focus more on what’s of prime importance to us – our client work – without having to tend to regular updates to meet our ever growing needs or having to compromise on the features that are essential in helping us deliver quality work. Unfortunately I didn’t quite find that; all of them called for compromises. Yes, our client area was full of useful features that were hard to be substituted, but I continued my research until in the end, I zeroed in on Goodday.work – a cloud solution built by an organisation dedicated to producing the best possible work management solution for businesses of all sizes.

We cut over to the new software on the 1st November, 2019. It was a big change for us, and not something we took lightly. Initially we planned to import our historical records, but in the end we took across only current tickets and projects.

Online solutions constantly evolve, so we are confident that the few pieces of functionality we are missing compared to our in-house built solution will be provided in the relatively near future. The benefits we have gained from the new solution are substantial making it easier for us to manage team workflow. One the of biggest benefits is the concept being able to assign a task to the person who is ultimately responsible for its delivery, while being marked as action required by another team member. The tool allows you to view work in lists, table views, kanban views and gantt charts, allowing our different teams (particularly digital marketing compared to software developers) to work in the way that best fits the type of work they are performing, thereby achieving something that was always high on our client area wish list. It also supports tagging, filtering, customised views, and a powerful search facility across all types of information. It also has a great name – nice to think of having a good day at work, everytime you use it. 🙂

We are still only using part of the functionality it offers, and look forward to using more as we continue to discover how it can help us.

The change our clients will see are as follows:

  • Ticket numbers, which had reached over 11,000 in our client area, have been started again from zero in the new system. To help differentiate, we now refer to them as tasks, as this is actually the naming convention used by Goodday.work.
  • While we wait for a more feature-rich client-facing view of the information, we won’t be providing access to the project management tool for our clients. However, it is quicker for us to produce a gantt chart view of a particular project, and predict completion dates.
  • Automated ticket update emails will not be generated to our clients from the solution for the time being. However, as always, we will provide updates by phone or email.
  • It will now be easier for us to quickly determine when a particular piece of work will be able to be completed, with workload easier to view per team member, including scheduled future work.

Because our in-house built client area resides on our own servers, we can keep it indefinitely as a source of the historical records for as long as required.

If you have any questions about the process we undertook to review the extensive list of work management tools, or our transition to the new tool, please don’t hesitate to get in contact.

Facebooktwitterredditpinterestlinkedinmailby feather

Subscribe to our monthly

Contactpoint Email News

Our enews is sent out approximately monthly, and contains information on latest digital technologies, and how these can be used to help your organisation grow.

To subscribe, simply fill in your details below: