In today’s business world, software is an indispensable part of business operations. Deciding whether your business should buy off-the-shelf software or develop your own can be a difficult decision.
Do it yourself! Developing a software is relatively expensive, but off-the-shelf software is inflexible. But why do companies still develop their own software? This article will give you some insight by comparing off-the-shelf software and home-grown software in seven aspects.
1. Suitability:
The most important benefit of developing a set of software for enterprises, is that it is tailored by the developers according to your needs and requirements. It is the best way to meet your business needs. It is common for companies to purchase off-the-shelf software from a software vendor and soon discover that the software is simply not fit for their business, and businesses are often forced to use the unfit software just not to waste resources. With home-grown software, you can be sure that the software is tailored to your business needs during the time of software development.
2. Scalability:
Home-grown software is more scalable than off-the-shelf packages. For home-grown software, the developer designs the software according to the basic operational and business logic of the business. The developer will be able to maintain and extend the functionality of the software as the business expands. However, for using off-the-shelf software, companies often encounter maintenance problems when part of their business needs change due to their changes in business scope. As the changes are not covered by the off-the-shelf software, the business may end up needing to purchase another off-the-shelf software to remedy the situation. Home-grown business software can meet your business needs while allowing your business to continue growing without being bound by software limitations.
3. Security:
Home-grown software can help protect your business from external threats. Hackers to enterprise software mostly exploit known vulnerabilities in commonly used software. For hackers, home-grown enterprise software is not a vulnerable target because it takes relatively more time and effort in hacking. The software developer can tailor hacker protection for the business, making it much more secure than off-the-shelf software.
4. Enterprise productivity:
Using the right software can have a huge positive impact on productivity. Self-developed enterprise software can simplify the operations according to the enterprise’s operation mode to increase enterprise productivity. Developers can also tailor the job analysis reports to display the work performance graphically based on the data. The management team will have a clear understanding of the company’s operations. In this sense, you can set the direction for your business more efficiently.
There are only a few off-the-shelf software that can share data easily, and since off-the-shelf software isn’t tailored to your business operations, you will not be able to share your data more efficiently. This may result in a decrease in the overall productivity as employees have to adapt using the software. For off-the-shelf software to analyse the work data, they often need to integrate data from different softwares, which may be more prone to errors and not able to get the job done effectively. While self-developed enterprise software can avoid this kind of integration problems because it is designed to fit in your business operations.
5. Maintenance efficiency:
Self-developed enterprise software can be properly maintained as required. When using off-the-shelf software, a business customer is only one of those thousand customers using the software, the software developer can only provide limited support for each case. As the initiative of supporting software fixes is taken by the software developer, as a business customer, you have no control on the problems you encountered and finding a way to fix them. Software developers take the control and you could only depend on them providing the fixes. If the software developer decided not to maintain the software, there is a chance your business may need to source and replace the software immediately, and costs your business additional time, effort and money. There is also a chance that there will be a window of time when the software does not work properly.
There is no doubt that self-developed enterprise software has the leading edge in maintenance, software development companies provide one-to-one maintenance services for their customers. You can be sure that your business and fixes you need is properly taken care of with prompt and tailored maintenance services.
6. Additional costs:
Home-grown enterprise software can help you save money on hardware purchases. Off-the-shelf software often has specific hardware requirements, which means that your business may need to purchase additional hardware to run the software effectively. Home-grown enterprise software works the opposite way, the software can be programmed to work with the existing hardware and functionality in your business, saving your money from procuring additional hardware just to meet the compatibility requirement in running the off-the-shelf software.
7. Intellectual Property:
The intellectual property of self-developed enterprise software can be fully owned by the enterprise. With home-grown software, there is no need to work with any particular vendor, as you are the legal owner of the product. For off-the-shelf software, you will be required to pay a recurring fee for each user license to obtain access to the software.
Conclusion
Self-developed enterprise software may seem to be more expensive than off-the-shelf software on the surface, however when considering the additional cost in hardware procurement, or the risk of software developers stop providing maintenance for the software, self-developed enterprise software is definitely a more secured and wise choice for enterprise customers.
It is also worth noting that, for self-developed software, software development and maintenance can be carried out in phase according to the development of the enterprise in terms of scalability. In general, self-developed enterprise software can provide a solid software foundation for your business and support the continued software needs during your growth.
Different Types of Mobile Applications Development and Evolution in 2019Photo by Yura Fresh on Unsplash
Since the opening of iOS App Store in 2008, the number of mobile applications (‘apps’) available on Android and iOS platforms has already showed an exponential growth beyond 2 million. Nowadays, city dwellers manage all kinds of matters through their mobile phones, from online banking, social media accounts, gaming, video-shooting to daily transaction. Some may even choose mobile phones over their wallets if they have to leave home. When it comes to connection, mobile apps become indispensable to clients and staff of enterprises of all sizes.
Your mobile device has quickly become the easiest portal into your digital self. — — Phil Nickinson, Editor of Android Central
Mobile apps development was a craze before and after 2012. All you needed to make your first bucket of gold is to develop a convenient and user friendly app at that time. But modern-day companies can select suitable types of mobile apps to be developed according to their own business needs, resources and time constraints by drawing reference from the flourishing apps market. To help you narrow down your choices and find the right one, we will briefly explain to you different types of mobile apps development.
Native app is written in the same set of native code language used in writing the mobile phone system. From the earliest iOS’s Objective C to Swift and Android’s Java to Kotlin, writing apps in the native language is regarded as the most direct way in apps development. In theory, native app makes the most efficient use of all features in a mobile phone and provides the best user experience.
Native app has an edge over other types of applications in utilizing the features of a mobile phone, in the sense that native app could adapt the changeCost matters and time is tight, the market always automatically adjusts and seeks new paths in apps development. The hybrid apps were born.. Native app is the first to use and adopt new features, such as the popular Machine Learning and Augmented Reality (AR) in recent years.
On the contrary, developing native apps incurs a comparatively high cost. Considering that the market is a blend of products out on iOS, Android and Windows, the app you developed is generally expected to support users from multiple platforms at the same time. Otherwise, writing the apps in separate sets of native code languages for different platforms may properly double the cost and duration required for apps development.
Examples of native apps include: Camera+, iCalender
From Hybrid Apps to Cross-platform Apps
Cost matters and time is tight, the market always automatically adjusts and seeks new paths in apps development. The hybrid apps were born.
Imagine that hybrid app installs a web browser in your mobile phone, as web browser is in nature universal among various mobile phones, so you can open a simulation of mobile app in the form of website through this browser. That’s how the primary shareable coding of an app could be displayed in the form of website. For the remaining features of an application that could not be displayed on a website, the parts must be written in the native code language of respective platforms. If you have to launch an application for both Android and iOS platforms, choosing hybrid over native app saves around 25% cost and duration of development to create the same effect.
In 2105, apps written in Iconic based on AngularJS and Cordova had bloomed and swept the world. However, the core problem of hybrid apps is the deficiency in user interfaces performance. In view of the very limited capability of Android and iOS browsers at that time, the user experience of hybrid apps was much worse than those native apps offer. For the experienced mobile phone users, a glance is enough to tell whether an app is hybrid. Corporate images may be adversely affected when clients had a bad experience on their hybrid apps.
But you don’t have to give up user experience for the sake of paying less with cross-platform app as a successor of hybrid created by mobile apps development companies. The biggest difference between cross-platform and hybrid is the improvement made on user interfaces experience. Cross-platform is no longer browser-based, indeed, it provides a common set of framework for user interface development, within which native user interface could be written, greatly rectifies the deficiencies of hybrid app in user experience. Development frameworks for cross-platform apps, for example, include React native of Facebook, Xamarin of Microsoft, Flutter and Vue Native of Google.
Although these development frameworks claim themselves to be development tools for native apps, being able to create a comparable user experience and efficiently utilize mobile phone features like native apps do, it still takes months for cross-platform apps to support the latest features added to mobile devices, falling way behind native apps do. If your business pursues timely support for the latest mobile phone features in your app, you may think twice if cross-platform is the best choice for you.
Even so, cross-platform apps have already met over 90% of user requirements. Popular apps we use in everyday life such as Instagram, Evernote, UBER, Twitter and Netflix are all cross-platform, without doubt cross-platform apps have mainstreamed in the mode of apps development.
From Web Apps to Progressive Web Application (PWA)
Web apps are, simply defined, webpages. But most of these webpages are built under the framework of Single Page Applications (SPA) and could bring users an impression and feeling similar to mobile apps, along with the improving technical capability of mobile browsers in recent years.
When it comes to user interface experience, web apps still perform below the before mentioned apps even with the improvement in current mobile browsers. Web apps also face limitations in function diversity, like failing to read QR codes, receive messages from Bluetooth devices and process payment through Apple Store/Play Store. But if you are planning to launch an app featured with simple data like text and images, web app is definitely the one for you.
Based on the characteristics of web apps, iOS and Android took corresponding actions in enhancing their capabilities and bring Progressive Web App (“PWA”) to the world. When you browse through iOS’s Safari or of Android’s Chrome, you can select and add any webpage to the screen of your mobile phone, and the webpage will then pop up in a look similar to mobile app. PWA looks exactly the same as other apps in the eyes of general users, with PWA, you can even use the features originally provided by native apps only, such as pushing messages, retrieving coordinates, taking photos and making use of the mobile compass function.
Another breakthrough achieved by web apps and PWA is that no download from App Store is required. Users have thousands reasons refusing to download an app, say limited Internet access, inadequate phone memory or having too many apps and one more is just too much. Web apps and PWA kick all these concerns out, to start with, users simply need a second to scan a QR code or search on Google. Such a fast and convenient experience in starting an app is definitely enjoyable to customers when promoting your new products.
Perhaps the most surprising thing is that web apps take the least time and cost among all types of apps development. Web apps support nearly all mobile phone platforms and desktop computers at minimum cost, are well-suited for services such as online shopping and room booking that do not engage exclusive features or functions of mobile phones. To get a taste of PWA, try Starbuck’s website at https://app.starbucks.com.
PowerApps
Besides apps designed for the public, many enterprises actively seek apps designed for internal use to facilitate corporate management and operation, particularly in supporting staff to claim reimbursement and apply for leave. PowerApps of Microsoft is what you are searching for.
PowerApps are affiliated to Microsoft Office 365. To begin with, staff only needs to download PowerApps from Apple Store/Play Store and login their accounts to a simplified user interface provided by PowerApps, on which staff could manage daily office matters through the small-sized applications pre-installed by administrators. PowerApps also collaborate and couple with OneDrive, SharePoint and Power BI of Office 365 to form an integral system, facilitating administrators and managers to extract data and reports for better understanding on the operation of the whole company.
The development cost of PowerApps is around 20% of general software applications, however the bundled cost of regular subscription fee for Microsoft Office 365 counts, as every PowerApps account must be linked to an Office 365 account. That’s a generous sum of money. But if your business is an existing customer of Office 365 and you are looking for applications to facilitate daily office operation, PowerApps works for you.
Game Development Engine
Unity and Unreal Engine are specifically designed for game development, supporting mobile apps as well as gaming platforms like PlayStation, Switch and Steam, commonly used in developing cross-platform games. Unity and Unreal Engine are strong in 3D presentation and game computing that are compatible with both game development and mobile apps, their hottest game creations include Minecraft and PUBG.
Yes, we know, there are many choices. To find out the one that suits you best, making the most efficient use of your precious time and money, feel free to contact us ONES Software for enquiries. We are here to provide our expertise in mobile apps development.
To find out more features and details of
Bookings ONE, contact us at:
All enterprises, big and small, wish to turn themselves into a smart office to fully utilize their resources. But, what is a smart office?
Smart office, based on leading-edge Internet technology that centralizes the control of crucial operation and services of an enterprise through data collection, creates a more advanced and people-oriented workplace under collaborative workings of Internet technology. While the enhanced user experience in smart office settings facilitates staff productivity and helps to attract and retain talents, businesses also enjoy savings in cost and boost in brand values through a more flexible and efficient deployment of existing office space.
The application of electronic devices and tools, such as iBeacon, sensors and mobile phone applications (“mobile apps”) are typical in smart office settings, saving staff from routine office chores and increasing their focus on business activities. One of the key elements of smart office is the adoption of room booking system. Room booking system allows users to identify the best suitable room for meetings and complete the booking in a few clicks independently of time and location with mobile apps supporting various platforms. Fast and easy room booking are available at fingertips. By providing a comprehensive range of room information and centralizing the scheduling of rooms on a common platform, room booking system provides the know-how for better resources utilization for the management.
The rollout of our company featured product – Bookings ONE, aims at providing an entire new experience in room booking to make the best use of office resources. Booking ONE stands out for its features below:
Room Booking Schedule
The basics of room booking system rooted in the booking schedule. Bookings ONE strives to create a concise and clear schedule presentation and support all operations in computers interfaces and mobile devices. You can browse the latest schedule and manage room booking, wherever you happen to be, just a few clicks on your mobile phone.
Room Display
Display mounted outside the room shows clearly the current booking status and operating condition of the room, creating an energizing image for the company while gently reminding staff and guests of the meeting location.
The design of room display under Bookings ONE seamlessly supports tablet devices under various operation platforms, including iOS, Android and Windows. Users can make an instant booking simply by tapping on the display mounted outside the room. Bookings ONE also supports display devices with LED indicators, which enables users to identify the status of rooms easily from a distance through color variation. The indicators included three colors: the green represents the room is available, orange represents reserved and red means currently being occupied.
When you have a sudden need for a meeting room, and are uncertain about which rooms have been booked already, the LED indicators will definitely brighten up your mind and show you the way.
3D Floor Plan
A well-designed interface of the booking system is essential in supporting the management to devise strategies for resources allocation. Considering that there are 50 conference rooms in a company, for most of the booking systems, the data of booking status and appointment details of the 50 rooms would be tabulated plainly on a list, providing you a comprehensive set of data. However, extracting useful information from such a large volume of data could be both time-and-energy consuming, managers may be tricked into overlooking important information and even resulting in mismatch of resources.
That’s why Bookings ONE has additionally placed emphasis on the 3D floor plan of each floor, besides providing standard lists of data-set. We visualize all booking status on a map, you will be informed of dozens room status at a glance. Easily readable and understandable.
Real Time Analytics
Another effective tool for the management to optimize resources utilization is real time data analytics. Cost of conference rooms, directly or indirectly, is expensive considering the spiraling rental cost.
In order for the management to utilize and allocate company resources efficiently, conference rooms in particular, Bookings ONE generates graphical analytics and reports that could be exported to Excel file to facilitate readability and better understanding on information such as utilization rate of rooms, the length of booking and absence rate to use a room of respective users at different times.
Calendar Integration
Using calendars of Google and Outlook to coordinate booking schedule has often been the norm in companies before the presence of room booking system. We understand that it takes time for users to adapt new booking technology and be familiar with a new interface before enjoying the benefits Bookings ONE offers.
Therefore, we devoted time in developing seamless integration with calendar systems including Google Calendar, Exchange server and Office 365 that are commonly used in the business sector, and succeeded in synchronizing bookings made through a third-party system into Bookings ONE simultaneously. New users of Bookings ONE could continue to book through the calendars they are used to, while enjoying the features and benefits offered by Bookings ONE during the transitional period.
Angel in Details
We strive to offer the best user
experience to our business partners while fulfilling the needs of both management and
staff. Bookings ONE can upgrade corporate image and improve staff
efficiency.
To find out more features and details of
Bookings ONE, contact us at:
Google和Outlook的日曆系統相當深入民心,在未有會議室預約系統的公司裡面,主要都是用這些日曆系統去作出管理。我司理解,縱使 Bookings ONE 能夠提供更好的用戶體驗給各個用家,但要所有使用者短期內放棄使用多年的日曆系統,改用 Bookings ONE 的界面的話,很多用戶一下子難以適應。
為此, 我司花了不少開發時間,成功無痕連接上 Google Calendar / Exchange server / Office 365 這些主要在公司會使用的日曆系統,能夠即時將第三方系統的預約,同步到 Bookings ONE 裡頭。這樣新用戶在未熟悉我們的界面前,可以繼續使用他們本來一直使用的日曆系統作出預約,也能夠同時間使用 Bookings ONE 裡頭的各種功能。
更多在細節
除了以上所提到的功能外,Bookings ONE 還有更多的功能與細節,務求提供最好的用戶體驗給企業,不論是管理層還是員工的需求都能一一滿足,從而提升公司形象和員工整體工作效率。
IT部門的同事間可能經常遇到這種問題,「究竟應該花多點時間去寫好編碼,還是應該快快寫好新的功能,往後才改善編碼的質素」,雖然大家心裏面都希望花時間寫好每一個功能的編碼,但面對開發時間永遠不足、上司的壓力,很多時就會無視編碼的質素,來成就新功能/新產品可以及早推出,然後就安慰自己之後才執拾殘局。不過程式員都是人類,難以敵不過「Later means never」這個定律,所以質素往往成為節省開發時間、成本下的犧牲品。
即使我們知道應該花時間一開始就寫好一點,但我們怎麼說服你自己、你的上司、你的老闆一開始的編碼質素是何其重要?寫下軟件工程界的大作之一《Refactoring – Improving the Design of Existing Code》的Martin Fowler 近日一篇文章《Is High Quality Software Worth the Cost?》就為我們提供了清晰的解答,軟件的質素其實是牽引住各種層面。
Martin Fowler指出,即使最好的開發隊伍,亦難免有技術債項的產生,皆因開發的時候很多時處於不確定的未知狀態,開發成員亦只有大概的概念去知道軟件需要什麼,只能夠見步行步,越後期迷霧才越散去,加上軟件所用的開發語言、資源庫、平台亦在開發期間不斷變更,就如興建大廈時,在興建好一半後大改圖則、建築材料一樣。
We made good decisions, but only now do we understand how we should have built it.
You can mass-produce hardware; you cannot mass-produce software — you cannot mass-produce the human mind — — Michio Kaku, American theoretical physicist
自從 2006 年 Amazon 推出自家的雲端運算服務 AWS 開始,雲端運算徹底改變了傳統伺服器架構的使用方法。由每一次都要購買或租借一臺伺服器主機,變成想用多少伺服器資源都可以即時得到,並採納按照實際使用時間來計算收費的資源訂閱 (Subscription) 模式,大大提升架構系統的靈活度和資源分配效率。這種伺服器架構上的革命,造就了 Software as a Service (SaaS) 的興起。
雲端運算經歷了十餘年的發展,隨著各大科技巨頭如 Microsoft Azure、Google Cloud 紛紛加入戰團,今時今日雲端運算服務已經發展得非常成熟。雲端運算能提供到一些普通伺服器不容易做到的功能,如專門處理大數據的資料庫 (Big data Database),以及針對地域問題的災難恢復 (Disaster recovery)。這些服務提供極高的彈性,方便了不少軟件開發商去開發新的軟件,而訂閱收費模式亦大大降低了初創企業入場的門檻。
由於雲端運算採取了訂閲收費,軟件的收費模式亦跟隨著由一次性 (one-off) 收費趨向以訂閲收費的形式來供客戶選擇。這個顯然是整個軟件業界的發展方向,例如 Microsoft 和 Adobe, 都將旗下歷史悠久的 Microsoft Office 和 Adobe Photo 分別轉為 Office 365 和 Creative Cloud 這種訂閲式收費軟件。 新的訂閲模式的娛樂服務如 Netflix / Disney+ / Apple TV + 也不斷興起,而Google 最近發佈的 Stadia 更是企圖用訂閲收費的模式,來衝擊整個遊戲業界。
Every customer interaction is a marketing opportunity. If you go above and beyond on the customer service side, people are much more likely to recommend you. — — Stewart Butterfield, co-founder of Slack