Why you should develop your own software for your business now?

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.


Website: https://ones.software/
Email: hello@ones.software
Tel: (+852) 5538 3410


在數碼時代,企業如何提升效能?

智能辦公室為當代企業提供的各種效能指標
Photo by Brooke Cagle on Unsplash

近年科技的創新,大大改變了我們彼此互動的方式,而這些改變正在影響企業裏各人的角色。我們能夠看到,數碼設施與傳統工作環境已經漸漸融合,針對設施使用率、生產力和工作空間等等的管理工具日漸普及,企業能夠透過這類數碼平台,善用新的途徑得到往時無法輕易得到的工作數據。

這種結合線上線下的企業模式,不單止為企業管理如照明、網絡等日常環境的操作,也能夠提供有關各類設施的管理資訊,以助企業管理者訂立一些新的效能指標,促進整體工作效率。相比起以前要運用不少人力資源去記錄數據,每年列印數百份問卷去詢問每位員工對於公司設施的滿意度,數碼化的智能工作空間可謂大大減輕這裡繁瑣的工作,並能提供及時且客觀的數據分析。

那麼,有哪些指標是能夠幫助企業提升效能呢?

設施使用率

設施使用的數據不僅在工作空間使用初期有所幫助,亦能理解員工的日常行為和工作流程。 收集會議室使用率的數據,可以幫助企業以確保員工能夠充分利用所提供的空間,並在設施上進行相應的修改。 這不僅可以提高員工的工作體驗,還可以確保企業盡量將設施用得其所。

哪些日子最多人使用某些設施? 哪些工作空間過於繁忙? 而哪些工作空間沒員工肯利用?這些問題都能輕易用數據回答,省卻以往要處理大量的文書工作。

生產力管理

Photo by Scott Webb on Unsplash

現在很多公司都會使用Slack這類的即時通訊軟件,以作內部溝通之用。而這些軟件不但加強員工之間的溝通,提供如與日曆系統整合、工作活動提示、開支批核等等的流程管理,更能給予實質數據,供管理人員以作分析,清楚理解員工能否善用通訊軟件溝通,以及掌握其工作流程和進度。

工作空間管理

現在辦公室的租金飛騰,會議室的空間附帶著很多直接和間接的成本。工作空間管理工具則能夠為管理者提供數碼管理平台,有效為員工進行會議室的預約程序,並且結合日曆系統從而妥善安排往後的會議排程。

配合圖像化的數據分析,亦能為企業管理者理解各個時段的會議室使用率、各人的使用時間、 因失約導致房間空置的次數等等,從而讓企業更了解公司會議室有否被充分利用,並更有效運用、分配公司的空間資源,為員工提供更合適的工作環境。

小結

隨著企業環境不斷與時代變遷,透過智能化工具有助企業增強設施管理,以實質、客觀的數據作為效能指標,以助企業各部門之間的合作,加強管理水準。智能化除了協助企業與時並進,提升公司形象之餘,更能作出質素上的改變,當然重要的是清楚明白企業當前真正需要的智能化工具。

聯絡我們:
主頁: https://ones.software/hk/
電郵地址: hello@ones.software
電話號碼: (+852) 5538 3410
Contact us:
Homepage: https://ones.software/
Email address: hello@ones.software
Phone number: (+852) 5538 3410

]]>

好的房間預約系統有什麽重要元素?

之前的文章提過,一個智能辦公室的建立,會議室/房間預約系統是基本元素,那麼有市面上林林總總的房間預約系統,怎樣選擇那些是值得投放資金購入的軟件?

如何能夠令管理者對公司資源運籌帷幄,預約系統的界面設計至為重要。假設公司 有 50 間房間,一般坊間的預約系統就會把這 50 間房間的狀態、預約資料等,以列表的形式平白地列出。這樣的列表雖然能夠提供所有資訊,但是表現方式並不直觀, 管理者往往要消化大量數據,容易過於疲勞,甚或看漏一些資訊,導致資源錯配等問題。

我司經過多番研究,銳意打破傳統用列表數據的形式,採用全新的界面概念去管理房間,通過自家開發的 3D 地地圖引擎,讓用戶可以直接管理房間,毋須花費時間在 數百列數據中尋找所需的房間資訊。


傳統預約系統界面設計

如何能夠令管理者對公司資源運籌帷幄,預約系統的界面設計至為重要。假設公司 有 50 間房間,一般坊間的預約系統就會把這 50 間房間的狀態、預約資料等,以列表的形式平白地列出。這樣的列表雖然能夠提供所有資訊,但是表現方式並不直觀, 管理者往往要消化大量數據,容易過於疲勞,甚或看漏一些資訊,導致資源錯配等問題。

我司經過多番研究,銳意打破傳統用列表數據的形式,於Bookings ONE採用全新的界面概念去管理房間,通過自家開發的3D地圖引擎,讓用戶可以直接管理房間,毋須花費時間在數百列數據中尋找所需的房間資訊。

簡化地圖設計 

現時市面上普遍聲稱擁有地圖功能的軟件,都是利用客戶提供的圖片配合特定的軟件去製作地圖。我司認爲這些客制步驟過於耗時,亦牽涉不少人手操作,使製作這類地圖的成本大增。

爲減低企業使用 3D 地圖的成本,我司致力簡化地圖的製作步驟。我司成功研發出獨家技術,於 SVG 圖片中直接找出地圖以及房間的形狀,經過軟件處理後就能夠產生 3D 地圖。 

跨平臺支援 


Bookings ONE的地圖引擎硬件需求低,可在不同平台上運行,包括 iOS、Android、 Windows,以至 Smart TV,大大增加系統的應用範圍; 我們的管理頁面支援手機界面,管理員可通過手機,進行大量的房間管理; 

透過智能電視能夠顯示各樓層房間的狀態,例如使用狀況、房間容量等即時信息,用戶也能使用觸控式智能電視,透過地圖直接預約房間,使整體的預約過程更流暢直接;

Bookings ONE亦全面支援 IoT 儀器,通過與 IoT 儀器進行鏈接,顯示房間的即時資訊,例如溫度,濕度等。用戶能夠通過 3D 地圖,直接了解辦公室的實際環境情況 。


除了以上所提到的細節外,Bookings ONE 還有更多的功能和優勢,務求提供最好的用戶體驗給企業,不論是管理層還是員工的需求都能一一滿足,從而提升公司形象和員工整體工作效率。

欲免向隅,馬上聯繫我們: hello@ones.software / (+852) 5538 3410, 亦可到 Bookings ONE 官網了解更多 :https://ones.software/hk/bookings-one/

聯絡我們:
主頁: https://ones.software/hk/
電郵地址: hello@ones.software
電話號碼: (+852) 5538 3410
Contact us:
Homepage: https://ones.software/
Email address: hello@ones.software
Phone number: (+852) 5538 3410

]]>

What Kinds of Mobile Applications Enterprises Need in 2019

Different Types of Mobile Applications Development and Evolution in 2019

Photo 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

(Source:http://uatblog.nubizsol.com/index.php/2018/12/24/hybrid-mobile-app-development-by-nubiz-specific-to-the-time-and-customer-needs/

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)

(Source: https://developers.google.com/web/progressive-web-apps/)

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.


Summary

web software的圖片搜尋結果
(Source: https://collectivedata.com/technology/web-vs-web-enabled/ )

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:

Enquiry Hotline/Whatsapp: (+852) 5538 3410

Email: hello@ones.software

Website: https://ones.software/

]]>

Elements of a Smart Office: Room Booking System

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:

Enquiry Hotline/Whatsapp: (+852) 5538 3410

Email: hello@ones.software

Website: https://ones.software/

]]>

智能辦公室的基本元素:會議室預約系統

現在的企業不論規模大小,都希望將公司變為智能辦公室,以使公司的各種資源得以充分利用。 那麼怎樣才算是一個智能辦公室?

智能辦公室是一個以尖端的互聯網技術為基礎,透過收集數據,對企業中至為關鍵的操作系統和服務進行中央控制, 其一系列不同的協同工作得以創造一個更先進、以人為本的工作場所。而智能辦公室可以增強用戶體驗,有助於提高生產力,亦能吸引和留住企業人才,也可以更靈活、更有效地利用辦公室空間,降低企業成本,提升企業本身的品牌價值。

智能辦公室主要透過利用 iBeacon、感測器和電話應用程式等等電子工具,幫助員工處理公務上的瑣事,從而使他們能夠專注較重要的事務,而其中一個智能辦公室不可或缺的基本元素,就是會議室預約系統。會議室預約系統主要讓使用者能夠快捷地找出適合的會議室,並完成會議室的預訂,配合各平台上的應用程式,使員工可以在不同時間、地點,都能夠輕鬆安排會議。會議室預約系統亦能夠提供會議室的各種資訊,以作企業管理之用,並將會議室排程集中於同一個平台,使企業管理者能夠對公司資源運籌帷幄。

我司藉著推出的 Bookings ONE,希望提供一個嶄新的會議室預約系統,可以使企業能夠充分善用辦公室資源。 Bookings ONE 主要有以下功能:

會議室預約時間表

會議室預約系統的根本,莫過於預約時間表。 我司製作Bookings ONE時, 力求預約時間表達致清楚簡潔的要求,並且支援所有電腦界面和手機端的操作。無論你在哪裡,只要打開手機,都能輕易地管理到所有房間的狀態。

房間電子標牌

房間電子標牌安裝在房間門前,可以清楚地顯示房間現在的使用狀態,確保使用者不會不小心去錯別的房間之餘,也能透過展示適合的圖像,以提升公司形象。

Bookings ONE的房間電子標牌,支援 iOS, Android,Windows 這些不同作業系統的平板設備,使用者可以在輕鬆地走到房間門前,就能進行即時的房間預約,快捷方便。 我司同時支援附有指示燈的顯示設備,就算在遠處,使用者也能清楚地看見指示燈的顏色,從而得知哪些房間已被預約。指示燈的顏色主要分為三種:綠色代表可供使用,橙色代表已預約,而紅色代表正在使用。當你突然需要展開會議,又擔心不知道會不會有其他人已預約某些房間的話,指示燈絕對是你公司裏的明燈。

3D 平面圖

如何能夠令管理者對公司資源運籌帷幄,預約系統的界面設計至為重要。假設在公司有50間會議室,一般坊間的預約系統就會把這50間會議室的狀態、預約資料等,以列表的形式平白地列出。這樣的列表雖然能夠提供所有資訊,但是表現方式並不直觀, 管理者往往要從頭到尾消化大量數據,容易使管理者過於疲勞,甚或看漏一些資訊,導致資源錯配等問題。

有見及此,Bookings ONE在傳統的列表顯示外,銳意加入能夠顯示各個樓層的3D平面圖功能,用最容易理解的方法去顯示所有房間的狀態,即使一個樓層數十間房間也能一目了然, 管理者再也無需花時間去看每一個房間的預約狀態。

實時分析

另一個有效幫助企業管理者去利用公司資源的方法,就是實時的數據分析。現在租金飛騰,會議室的空間附帶著很多直接和間接的成本。通過我司的系統,管理者能以圖像化的分析,理解各個時段的會議室使用率、各人的使用時間、 因失約導致房間空置的次數等等,亦能匯出成為 Excel 形式的分析報告,從而讓企業更了解公司會議室有否被充分利用,從而更有效運用、分配公司的資源。

無瑕連接日曆系統

Google和Outlook的日曆系統相當深入民心,在未有會議室預約系統的公司裡面,主要都是用這些日曆系統去作出管理。我司理解,縱使 Bookings ONE 能夠提供更好的用戶體驗給各個用家,但要所有使用者短期內放棄使用多年的日曆系統,改用 Bookings ONE 的界面的話,很多用戶一下子難以適應。

為此, 我司花了不少開發時間,成功無痕連接上 Google Calendar / Exchange server / Office 365 這些主要在公司會使用的日曆系統,能夠即時將第三方系統的預約,同步到 Bookings ONE 裡頭。這樣新用戶在未熟悉我們的界面前,可以繼續使用他們本來一直使用的日曆系統作出預約,也能夠同時間使用 Bookings ONE 裡頭的各種功能。

更多在細節

除了以上所提到的功能外,Bookings ONE 還有更多的功能與細節,務求提供最好的用戶體驗給企業,不論是管理層還是員工的需求都能一一滿足,從而提升公司形象和員工整體工作效率。

欲免向隅,馬上聯繫我們: hello@ones.software / (+852) 5538 3410, 亦可到 Bookings ONE 官網了解更多 :https://ones.software/hk/bookings-one/

聯絡我們:
主頁: https://ones.software/hk/
電郵地址: hello@ones.software
電話號碼: (+852) 5538 3410
Contact us:
Homepage: https://ones.software/
Email address: hello@ones.software
Phone number: (+852) 5538 3410

]]>

Code 寫得好對公司有用嗎?

tl;dr, 絕對有用!

Photo by Nate Grant on Unsplash

IT部門的同事間可能經常遇到這種問題,「究竟應該花多點時間去寫好編碼,還是應該快快寫好新的功能,往後才改善編碼的質素」,雖然大家心裏面都希望花時間寫好每一個功能的編碼,但面對開發時間永遠不足、上司的壓力,很多時就會無視編碼的質素,來成就新功能/新產品可以及早推出,然後就安慰自己之後才執拾殘局。不過程式員都是人類,難以敵不過「Later means never」這個定律,所以質素往往成為節省開發時間、成本下的犧牲品。

即使我們知道應該花時間一開始就寫好一點,但我們怎麼說服你自己、你的上司、你的老闆一開始的編碼質素是何其重要?寫下軟件工程界的大作之一《Refactoring – Improving the Design of Existing Code》的Martin Fowler 近日一篇文章《Is High Quality Software Worth the Cost?》就為我們提供了清晰的解答,軟件的質素其實是牽引住各種層面。

外部質素(external quality)與內部質素(internal quality

Martin Fowler首先將軟件的質素分開為外部質素和內部質素,外部質素指的是用家能夠看得到的,例如UI和程式缺陷,而內部質素即是用家難以分辨好壞的部分,例如軟件結構。

現今不少公司都很注重UI、UX的設計,因為用家很容易因為用得不暢順而氣餒,投訴甚至放棄使用。程式缺陷亦固之然是要盡量避免,也是因為這直接影響用家的使用體驗。相對來說,編碼結構的好壞藏在華麗的UI之後,用家其實難以知道軟件內部的編碼究竟寫得好不好。Martin Fowler舉例說兩個軟件UI一樣好,亦沒太多的程式缺陷,一個內部編碼整潔有序,賣10美元,另一個內部編碼一團糟,但賣6美元。既然用家都不能看到內部編碼如何,編碼是否整潔有序亦看似無礙軟件運作,誰會花多4美元去買前者?軟件公司又為何要花資源在軟件的內部質素?

技術債項 Technical Debt

內部質素與軟件持續開發

作為一個程式員,最花時間的工作理應就是處理、改動程式編碼,即使是全新的軟件開發,程式員仍需要在已完成的程式基礎上去編寫源碼。要加一個新的功能,首先要知道如何將新功能放入原本程式的流程裡,然後改動現有流程並放置新功能。而由於通常會接觸到/使用到原本的程式編碼,程式員不得不先理解程式是如何編寫。

問題來了,如果原本程式的內部質素奇差,邏輯紊亂,數據難以跟隨,程式員就要花很多時間去理解、使用原本的程式。這種程式當下的狀態與其理應狀態之間其差異,Martin Fowler 稱之為 cruft, 一種程式上的冗餘。他提到另一位著名的程式設計師Ward Cunningham 對cruft所提出的一種隱喻,Technical Debt 技術債項,因為當一位程式員為了各種原因去無視內部質素,其產生出來的技術債項會導致將來所有有份涉足該源碼的程式員付出更多時間去進行程式上的修改,這些額外所費的時間可視為技術債項的利息

內部質素對開發時間的影響

雖然用家無法直接體會到軟件的內部質素,但用家卻在意軟件新功能開發的時間,這就直接受到內部質素的影響。技術債項多,每一項新功能的添加就會附上相應衍生出來的利息,亦即開發時間增加,用家亦要等待同樣的時間才能使用到新功能。在這個情況下,技術債項少的軟件會比債項多的軟件更快推出新功能,而用家相對之下很有可能會轉用較貴但功能更多的同類軟件。路遙知馬力,技術債項多的軟件可能可以很快跑出,但往往輸在持久力上。

債項多少的差異,使到軟件持續開發進度的交叉點數週就出現

Martin Fowler指出,即使最好的開發隊伍,亦難免有技術債項的產生,皆因開發的時候很多時處於不確定的未知狀態,開發成員亦只有大概的概念去知道軟件需要什麼,只能夠見步行步,越後期迷霧才越散去,加上軟件所用的開發語言、資源庫、平台亦在開發期間不斷變更,就如興建大廈時,在興建好一半後大改圖則、建築材料一樣。

We made good decisions, but only now do we understand how we should have built it.

而成功的開發隊伍就會透過寫自動化測試(automated test)、重構(refactoring)、持續整合(continuous integration),以積極清除足夠的冗餘,令到新功能開發時間減低。在這個意義底下,內部質素高的軟件也許一開始的開發成本較高。但以長遠發展,高內部質素的軟件開發成本卻是比較低廉。

所以,各位程式員應該知道如何和上司解釋軟件質素的重要,而各位老闆亦懂得怎樣分配時間、資源在軟件開發吧?

Ref:

https://martinfowler.com/articles/is-quality-worth-cost.html


我們 ONEs Software 是一家香港的軟件開發公司,致力於通過我們專業的技術,為企業設計出最合適的軟件。如果您有興趣,歡迎與我們聯繫一起探討,為您的企業成長注入新的源動力。 更多資訊可以留意 ONES Publication 定期發佈的文章,亦可以聯絡我們,我們的網址是: https://ones.software

ONES Publication
We share what we have learned about app and web development. Find us in ones.software. Email: hello@ones.software
]]>

現在還值得為企業開發一套自家軟件嗎?

現成軟件與自家軟件的七種比較

Photo by Samson Creative. on Unsplash

在現今的商業世界,軟件是企業營運中不可缺少的部份。要決定您的企業是否購買現成的軟件,還是自行開發一套軟件,這可能是一項艱鉅的決定:自行開發一套軟件相對昂貴,但現成的軟件卻缺乏彈性。但為什麼還會有企業自行開發軟件?以下是一些現成軟件和自家軟件的七種比較,應能為您帶來一點啟示:

1.適合性: 為企業開發一套軟件最重要的好處,是它由開發人員根據您的需要和要求度身定製,以便滿足您的業務需求。一般企業從軟件供應商那裡購買現成軟件之後,不久發現該軟件根本不太適合他們的業務,這種情況屢見不鮮。企業人員多為了不浪費資源,而強行使用。而使用企業自行開發的軟件,就可以在軟件開發時確保該軟件能夠適合您的業務需求


2. 可擴展性: 自家軟件比現成的軟件包更具可擴展性。在自家軟件方面,開發人員會根據企業的基礎運營、商務邏輯來作設計軟件。因此即使企業業務規模的擴大,開發人員將可隨之持續維護及擴展軟件的功能。使用現成的軟件的話,企業通常會遇到軟件的維護問題,或者是因業務範圍的改變,部份業務需求未受軟件涵蓋,結果要加購另一套現成軟件,以作補救。所以自行開發的商業軟件能夠滿足您的企業需求之餘,同時允許您的業務持續增長,而不受軟件限制


Photo by Paweł Czerwiński on Unsplash

3. 安全性: 自行開發的軟件可以幫助保護您的企業免受外部威脅。針對企業軟件的黑客,大多數都是利用常用軟件中已知軟件漏洞來進行攻擊。而對於黑客來說, 自行開發的企業軟件就不是一個太有吸引力的目標,因為它需要相當多的時間來了解系統運作,而軟件開發人員亦能專為企業來制定黑客防護工作,比起現成軟件更為安全


4. 企業生產力: 能否使用適當的軟件,對工作效率可以產生極大影響。自行開發的企業軟件可以根據企業的運行模式,簡化使用操作,從而提高企業的生產力。而且開發人員可以根據軟件內的數據,專門制定您所需要的工作分析報告,工作效能就能夠以圖像、數字等方式展示,讓企業的管理團隊清楚了解公司的運作。這樣你就可以更有效率為企業制定發展方向

巿面上幾乎難有多個現成的軟件能夠簡單地將數據共享,而由於現成軟件並非為您的企業營運度身定制的,可能會導致員工因要適應軟件運作而使整體工作效率下降。若要分析工作數據,他們往往需要從不同的軟件得到資料再進行整合分析,這樣比較容易出現錯誤,無法有效地完成工作。所以自行開發的企業軟件就能有效避免這個問題,皆因它是可以專門配合您的企業營運。


Photo by Kevin Ku on Unsplash

5. 維護效率: 自行開發的企業軟件可以根據需要進行合適的維護。使用現成的軟件,您的企業只是使用該軟件的數千甚至上萬人中的一員,並且只有有限的開發團隊可以支援軟件修復,企業反而會受到軟件開發一方的制肘。如果他們決定不再維護軟件,您的業務將有可能馬上需要更換軟件。這對您的企業來說可能會出現額外開支之餘,更會有機會出現軟件無法正常運用的空窗期。毫無疑問,自行開發的企業軟件在這方面有很大優勢,軟件開發公司理應提供一對一的維護服務,這樣你的企業就可以確定軟件能夠有合適而及時的維護。


6. 額外成本: 自行開發的企業軟件可幫助您節省硬件購置成本。現成的軟件通常有特定硬件要求,這意味著您可能需要購買額外的硬件,以便有效在企業內運行。自行開發的企業軟件可為現有的硬件及功能制定程式,最終反而可以幫助您的企業節省金錢,因為企業不需要購買額外的硬件


7. 知識產權: 自行開發的企業軟件的知識產權能夠受企業全權擁有。使用自家軟件的話,您沒有必要與任何特定供應商合作,因為您是該產品的合法擁有者。而對於現成的軟件,您需要為每個用戶支付定期的費用,以維持使用軟件的權利。


Photo by Adeolu Eletu on Unsplash

You can mass-produce hardware; you cannot mass-produce software — you cannot mass-produce the human mind — — Michio Kaku, American theoretical physicist

總結

自行開發的企業軟件與現成的軟件相比,表面上可能較為昂貴,但長遠考量如員工的工作需時、硬件添置、甚至開發企業停止維護軟件的風險,自行開發的企業軟件無疑是企業比較合適的選擇。值得注意的是,在可擴展性上,軟件的開發、維護可因應企業的發展,而分階段進行。總體而言,自行開發的企業軟件更能夠幫助您的業務持續發展,奠定良好的企業基礎。

我們 ONEs Software 是一家香港的軟件開發公司,致力於通過我們專業的技術,為企業設計出最合適的軟件。如果您有興趣,歡迎與我們聯繫一起探討,為您的企業成長注入新的源動力。 

更多資訊可以留意 ONES Publication 定期發佈的文章,亦可以聯絡我們,我們的網址是: https://ones.software

ONES Publication
We share what we have learned about app and web development. Find us in ones.software. Email: hello@ones.software
]]>

軟件可以即要即用?企業級軟件訂閲服務 (SaaS) 的開發 (1)


自從 2006 年 Amazon 推出自家的雲端運算服務 AWS 開始,雲端運算徹底改變了傳統伺服器架構的使用方法。由每一次都要購買或租借一臺伺服器主機,變成想用多少伺服器資源都可以即時得到,並採納按照實際使用時間來計算收費的資源訂閱 (Subscription) 模式,大大提升架構系統的靈活度和資源分配效率。這種伺服器架構上的革命,造就了 Software as a Service (SaaS) 的興起。

在這種交付模式(即 SaaS)中雲端集中式代管軟件及其相關的資料,軟件僅需透過網際網路,而不須透過安裝即可使用。用戶通常使用精簡用戶端經由一個網頁瀏覽器來存取軟件即服務。--維基百科

雲端運算經歷了十餘年的發展,隨著各大科技巨頭如 Microsoft AzureGoogle Cloud 紛紛加入戰團,今時今日雲端運算服務已經發展得非常成熟。雲端運算能提供到一些普通伺服器不容易做到的功能,如專門處理大數據的資料庫 (Big data Database),以及針對地域問題的災難恢復 (Disaster recovery)。這些服務提供極高的彈性,方便了不少軟件開發商去開發新的軟件,而訂閱收費模式亦大大降低了初創企業入場的門檻。

https://www.cio.com/article/2991767/10-tips-for-running-a-profitable-subscription-based-business.html

由於雲端運算採取了訂閲收費,軟件的收費模式亦跟隨著由一次性 (one-off) 收費趨向以訂閲收費的形式來供客戶選擇。這個顯然是整個軟件業界的發展方向,例如 Microsoft 和 Adobe, 都將旗下歷史悠久的 Microsoft Office 和 Adobe Photo 分別轉為 Office 365Creative 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


雖然說軟件訂閲是一個大趨勢,但如何去建立一個成功的系統,就需要相當多軟件工程上的學問。和對普羅大衆的軟件不同,企業對軟件的要求會更加嚴格,因爲整個服務會影響到他們自身的日常商業運作,所以在建立這種系統時,需要注意的項目就比平時更多。今後我會在這裡和大家由以下的方向出發,去探討怎樣去建立一個穩健的軟件訂閲服務。

  1. 系統架構 (System architecture)
  2. 可擴展性 (Scalability)
  3. 高可用性 (High availability)
  4. 安全性 (Security)
  5. 監察與維護 (Monitoring and Maintenance)
  6. 持續發展 (Continuous development)

那麼,讓我首先講解一下系統架構所需要留意的事項。


系統架構 (System architecture)

建立軟件系統的第一步是設計好適合的系統架構,根據不同的商業需求 (Business Requirement) 所設計出的系統架構也會不同。但歸納起來,訂閲服務的系統架構的可以分爲兩大類:單一租戶模式 (Single tenancy) 多租戶模式 (Multi-tenancy)


單一租戶模式 (Single tenancy)

單一租戶模式 是為各個客戶設立一套獨立的軟件系統,他們會有獨立的數據庫、服務器、文件存儲空間等等。

安全且穩定: 絕大部分企業都會重視資料的安全和保密。單一租戶模式的好處在於每個客戶都有完全獨立的系統,不會有用戶之間資料發生衝突的情況發生,也不會因爲其他客戶的使用量增加而影響到自身的系統。單一租戶對於企業來説會是一個極具說服力的方案。

有彈性及易於管理:所有數據庫備份、系統還原的工作,或者其他的定制服務,單一租戶模式都能夠提供給予客戶。系統也能夠根據客戶的要求更改域名,或者安裝在客戶指定的雲端服務上面。而因為每個服務器都是獨立運作的,用戶可以選擇在不影響業務的時間帶,來進行系統更新。

單一租戶模式是一個直觀的方案,和傳統的系統分別其實不大,只是將系統由傳統的數據中心轉移到雲端服務之上,而雲端服務的成本也就轉化為系統的訂閲收費。


租戶模式 (Multi-tenancy)

和單一租戶模式不同,多租戶模式是以共用系統資源爲主,多個用戶會同時使用同一套系統

經濟實惠:在商業角度來看,價錢是相當重要的考慮因素,多租戶模式就能通過分享各個用戶的用量,來分攤成本。這就能將現有的資源得到充分利用,以避免服務器資源上的浪費。按照不同服務的性質而有差別,但採取多租戶模式的話,往往就能夠將伺服器的成本降至一成以下

迅速提供服務:訂閲服務講求的是能否迅速提供服務,使客戶在短時間内就開始使用是重中之重。 單一住戶模式可能需要數天的設立時間,並對系統進行整合測試 (Integration test)、負載測試 (Load test)等等的測試,才能確保實際運行穩定。而多租戶模式則是在已經運行中的系統中,添加新的租戶 (Tenant) 給予客戶。添加用戶往往只要數分鐘便完成,而且系統的穩健程度就得到確保。

容易監察、維護及更新:完善系統的監察亦是確保服務質素的重要一環。在多租戶模式下,開發者只需要監測一組伺服器的狀態,便可知道所有客戶是否能正常使用系統。而當要修正系統時,只要將修正配置到一組伺服器上就能解決問題,不需要針對個別客戶進行修正。

用戶回饋和產品發展:多租戶模式往往可以使得產品有更高速的成長速度。每當新功能完成並配置到系統上,所有租戶也能即時受惠。而功能亦能啓發用戶提出新的需求,開發者能根據這衆多的用戶回饋去分析和開發新的功能。

雖然多租戶模式下的系統是分享了各種資源並降低成本,但要注意的是用戶的資料是必須做好區分。例如可以使用同一個數據庫伺服器,但每個客戶的數據庫必須分開。文件存儲亦是同等狀況,每個客戶儲存文件的文件夾必須分開。即使在資源共享的情況下,數據的安全和保密還是最重要的考慮。


如何取捨?

Photo by Victoriano Izquierdo on Unsplash

兩種都各有優點,但實際要建立一個系統的時候,到底應該如何取捨呢?恕我直言,我是傾向支持開發多租戶模式,原因是多租戶模式本身是可以作爲單一租戶模式來使用。

不同的客戶對系統會有不同的要求。如果有客戶提出必須有一個完全獨立的系統時,你可以爲一個客戶另外設立一組伺服器。這組伺服器只是爲了服務這客戶而設,並限制只有該客戶才能使用這個環境,不會添加新的租客。這樣多住戶模式就能簡單地變成單一租戶模式來使用,各取優點。

總結

現在多租戶模式的應用是大勢所趨,Slack、Office 365 ,這些軟件都是採用這種系統架構。這樣才可以控制成本,以維持市場上的競爭力。

多租戶模式似乎有絕對的優勢,但實際上做出一個穩健的多租戶模式系統並不容易,對開發者的系統架構能力也有很高的要求。而系統有任何問題也會影響到全部的客戶。例如系統如不採取一個有效的方法,去將用戶的流量分流到不同的數據庫的話,極有可能會令到系統本身出現混亂,往後亦難以作出維護。

我們之後會和大家介紹多租戶模式的實踐,由原始碼的層面出發,去看看如何做出一個穩健的多租戶模式架構。更多資訊可以留意 ONES Publication 定期發佈的文章,亦可以聯絡我們,
我們很樂意提供相關的專業意見:https://ones.software/hk/bookings-one/


ONEs software。香港軟件開發團隊,提供專業的軟件開發服務。包括手機應用程序開發,網頁開發和定制軟件開發。 https://ones.software/zh-hk

]]>