e-Business: Building online business solutions
by Robert Batzinger,Praeceptor Emeritus
Payap University Faculty of Science
Computer Science Department
Chiang Mai, Thailand 50000
© copyright 2020, Robert Batzinger. All rights reserved.
This edition was written in Bookdown Markup and compiled into PDF, EPUB , HTML, DOCx, and Markdown. As this is a work in progress, it is revised and uploaded to https://www.bookdown.org/rbatzing/ebusiness.
Feedback and suggestions are invited and welcomed as they are important part of the revision process. Please send all inquiries and comments to the author.
Traditionally, all business transactions start by crossing of the threshold and exploring the possibilities within. Regardless of whether the entrance is a physical door or the splash page of an online website, the initial contact plays an important role in helping the customer understand the nature of the business. Likewise, you are invited to explore this front matter section to better understand the context in which this book was written.
The cover is a photograph of the Financial District from the Marina Bay in Singapore. The amazing metamorphosis of this central business district from swamp land into a thriving financial center of the Region is representative of the current sea-changes in business driven by technological and social developments. Similarly, today’s developers of business systems are sowing seeds that will change the future, much like Sir Raffles’ vision for a seaport has grown into today’s Singapore.
Photos for cover(Goh 2014), front matter(tookapic 2015), and Chapter 4(Mark 2017) were downloaded from Pixabay. The extra reading, discussion and exercise sidebar icons were adapted from Freepik(Rawpixel.com 2015) and used as per the Creative Commons 3.0 License.(Commons 2007) Network and flow diagrams were created with yEd from yWorks.(yWorks 2018)
While early drafts of this book were written in Leanpub Flavored Markdown, this book was developed in RStudio using the bookdown package (Xie 2016) (which was built on top of R Markdown and knitr (Xie 2015).) It was edited in RStudio and later compiled and published online simultaneously as an HTML website, a printable document in PDF and electronic book EPUB format with only 3 clicks of the mouse. This current edition has been migrated to bookdown-plus.(Zhao 2017) The goal of this development was to produce a bilingual teaching resource useful for both Thai and International Students.
The content of this book continues to evolve in response to technical changes in the software industry, to emerging business trends, and to student feedback. The development of this book would not have been possible without the feedback and suggestions of colleagues and students. While we the authors are responsible for any remaining errors in this book, our students, referees, and readers have contributed immensely to the development of this book. The content and nature of this book was improved by meaningful feedback, consultation and conversations. The impact of suggestions and feedback from Ms. Phatnaree Srisomphan and Dr. Somboon Panyakom is particularly noted with gratitude.
At the same time, the authors are also grateful for the support and encouragement of family members and close friends throughout the long creative process that modeled and forged the manuscript of this text.
Robert P. Batzinger, Email: robert_b@payap.ac.th
Sirinna Sirinaphaphant, Email: sirinna@payap.ac.th
Surachet Wongchompooh, Email: eak@payap.ac.th
June 2022Advances and developments in Computer Science (CS) are driven by need to create applications that effectively address real-world problems. Successful software development starts with a deep understanding of the problem domain from the users perspective and leads to the development of applications that users find intuitive and easy to use. Breakthroughs in understanding the nature of problem being address create new opportunities for developing epic software solutions that address the needs of users. Thus, it is common practice to integrate end users into the IT teams that design, develop and test the software products. When developers and users communicate, the resulting products tend to be more intuitive and successful.
However, most universities tend to isolate business education from computer science even though in the real world, IT professionals generally create careers out of developing applications and solutions for clients who, for the most part, have not studied CS, but who are experts in other problem domains. This course is an attempt to help introduce IT/CS students to the basic issues in the business world in an attempt to help them more effectively in that market place. At the same time, the course is being developed as an elective for Business majors to help them appreciate the various resources and opportunities available for developing effective online business applications and services.
This is textbook was written for the Payap University course in E-Business offered by the Computer Science Department. This course is taught in Thai as an introduction to e-Business from the joint perspective of both IT and Business. The course description is shown below.
CS340 E-BUSINESS: Principles of business operations using information technology. This includes a discussion of Enterprise Resource Planning (ERP), Customer Relationship Management (CRM) and the use of social media to communicate both within and outside the organization.
CS340 ธุรกิจอิเล็กทรอนิกส์: หลักการการดำเนินธุรกิจโดยใช้สื่ออิเล็กทรอนิกส์ การวางแผนทรัพยากรขององค์กร (ERP) การบริหารความสัมพันธ์ลูกค้า (CRM) และการสื่อสารผ่านโซเซียลมีเดียทั้งภายในและภายนอกองค์กร
The goal of this course is to provide computer science majors insights about the underlying requirements of software designed to support business online. At the same time, this course is meant to provide a basis for business administrators in making wise choices as they navigate technical possibilities whilas they participate in the effort to develop, install and use software solutions designed to address their business needs.
This book was written as a guide and resource for that course. It attempts to describe best practices in the IT industry and draws on as decades of experience of the authors as a software developers and consultants in business operations management. This book will explore the context and use of common e-Business techniques and applications within modern business. This will lead to a detailed discussion of the basic principles, examples and relevant source code. Ultimately, the book is meant to provide a bridge by which IT specialists will understand enough about business to become an asset to business management. At the same, the book provides insights to business managers to help them manage e-Business development within their organizations.
This book started as a collection of class slides, notes, and exercises. The basic design of this book is meant to parallel the outline of the corresponding course, and is organized in the following way:
This text contains 3 types of sidebars that expand on the material described in the main text:
Relevant discussion topics for group consideration
Exercises to assess understanding of the material
Supplemental reading in the topic
The following typesetting conventions were used to enhance clarity.
Typesetting feature | Description | Example |
---|---|---|
Bold text | Package names | rmarkdown |
typewriter |
Inline/commandline code | puts 5 * 3 + 1 |
typewriter |
Filenames | hello.c |
() |
Functions | sqrt(25) |
[][] |
URL links and crossreference | http://www.ibm.com |
This chapter explores the nature, requirements and management of business processes and components as a means for introducing the context that surrounds business communications in general and e-Business in particular.
Business at its core is based on a network of contracts in which goods and services are provided and for which compensation is rendered. Businesses work towards establishing the means for acquiring marketable goods and services that customers will purchase in sufficient qualities to make the endeavor worthwhile. Ideally, all companies aim to seek fair compensation for goods and services rendered in the most efficient and effective manner. Businesses become sustainable when the compensation meets their short-term and long-term requirements. Conversely, businesses fail when they are unable to develop and maintain a market demand that leads to a level of sales that meets their expenses.
\(\blacktriangleright\) Exercise 1.1: Linking business principles to market characteristics
Match the business principles to their corresponding market characteristics. Determine how each principle contributes to the growth of a business. Also determine how the link changes as the business and the target community grow.
Principles | Characteristics |
---|---|
(A) Access to market | ___ Most customers order on Saturdays |
(B) Brand recognition | ___ Only dirt roads to market |
(C) Consumer pool | ___ Products made from seasonal crops |
(D) Investment capital | ___ Popular product reviews |
(E) Production capacity | ___ Decreasing stock price |
(F) Market value | ___ Stock is always sold out. |
Balancing the demands and requirements of each component of a business endeavor requires timely management decisions based on accurate information. As the speed and volume of businesses grow within the global market place, rapid communication and confirmation of detailed information is so crucial to successful business practice that many e-Business technologies and applications have emerged to support and facilitate the operation and growth of business activities. However, the philosophy of business managers effects the ethos of a corporation in a way that impacts potential for growth and survival.
\(\triangleright\) Exercise 1.2: Philosophy of Business
Discuss how each of the following premises impact the nature of a business, as well as the potential for short and long term success. Note how the philosophy impacts the focus and range of activities within the IT departments that support such businesses.
Because of its impact on the nature and growth of individual businesses, the philosophy of business has been the subject of many popular business books. The philosophy of a business also fuels and guides the growth of businesses as they evolve from small family businesses into small and medium-sized enterprises (SME) as well as the modern large-scale enterprises (LSE) as described in subsequent sections. In addition, large multinational enterprises (LME) take these principles to even higher levels as they harness these principles on a global scale.
While a full study of the implications of the different business philosophies (See Exercise 1.2: Philosophy of Business) is beyond the scope of this book, this introduction focuses on how IT Departments act as an integrated component within a business, forging a relationship with management that amplifies and supports the shared vision and mission of the business. At each stage of business development, IT departments must reflect, project and support the prevailing philosophy within the business it supports.
\(\triangleright\) Discussion 1.1: Study of vision and mission statements
Appendix Discussion 1.1: Study of vision and mission statements contains the mission and vision statements of a wide range of organizations. A quick scan of these statements reveals the diverse range of interaction between customers, suppliers, investors and employees among the businesses cited. Each statement reflects how the business has been designed and crafted to appeal to their constituencies in some specific way. Also, it is easy to compare the level of corporate social responsibility expressed within the various vision and mission statements.
The mission and vision statements capture the philosophy of the business and reflect the ethos, activities and aspirations of individual businesses. These statements were written or commissioned by the founders to inspire and guide the evolution of the business well into the future. Thus, these statements have been used motivate business activities, often forming the heart of employee orientation programs and establishing the basis for corporate decisions. Once the vision and mission has been communicated, IT departments are expected to develop systems and services that fully support these statements and provide services that help the businesses achieve these goals.
\(\triangleright\) Discussion 1.2: A vision and mission for Payap University
Payap University (PYU) has from the beginning adopted the motto: “Truth and Service.” While over the years core values and other guiding statements have been proposed, there is currently no widely accepted mission and vision statement for PYU. Suggest a mission statement not exceeding 30 words that describes how students, donors, staff and alumni might work together to carry out the motto to build a sustainable and distinctive future despite growing competition for fewer and fewer high school students. Also, write a vision statement not exceeding 20 words that describes your aspiration for Payap University in the future.
At the core, a business is a set of goods and services that derive their value from addressing specific needs of clients in accordance with its vision and mission. Good design and pre-market testing help define the nature and production of these products and services. Careful control of production and distribution costs make it possible to deliver the goods and services at a suitable price point suitable. Managers of the supply chain and operations use a web of contracts and business transactions with suppliers and distributors to ensure a reliable flow of materials, resources and cash needed to deliver product on time and on budget. When all components of this supply chain work together, the business is able to create a sustainable profit and revenue stream. However, many things can go wrong and even simple mistakes and minor communication breakdowns can disrupt this flow and reduce customer satisfaction and revenue.
The information and distributed at each stage of production and between links of the supply chain form the intellectual property critical to both the product design and business success. IT departments in turn must develop systems to that capture, support and implement this information within the controls and operations of the enterprise.
However, target audiences are constantly evolving and the nature of this information is also not static. Regardless of whether this critical information is highly protected as intellectual propriety or shared within an open development community, effective development depends of the ability to collect, access, apply, and revise this information in order to better ascertain the needs and changing trends of the target audience.
When a business is just a small shop of only 1 or 2 people, coordination and communication is relatively simple. However, as businesses grow in their capacity to meet the growing demand for goods and services, the work force must also grow. However, merely adding new workers tends to reduce the efficiency per person, creating additional cost and time to the production line. Instead, the work force needs to be reorganized around coordinated teams of specialists organized into various departments. The work must be divided into specialized skill sets that can be taught, tested and updated. In this way, having more employees will be able to carry out a larger number of tasks simultaneously in a way that can be coordinated. Although effective communication within a large work force is incredibly complex, tracking of progress and production is critical to achieving efficiency and effectiveness on a large scale.
Traditionally businesses addressed the need for effective communications by structuring the business into the basic departments shown in Table 1.1. These disciplines map well to university degrees helping to ensure that jobs could be filled. When all the departments are functioning well, there is synergy in the way shared information and coordination increases the efficiency and productivity of the organization.
Department and its function | |
---|---|
|
However, university enrollments are down in many of the critical disciplines, especially those related to professions requiring mastery of STEAM subjects.1 Building the human resources needed to run a business is a constant issue especially since an increasing number of graduates lack the skills, drive and motivation needed to success in business.
However, as the business grows so do the opportunities for political factors, personal infighting and lack of information flow. Physical distances, levels of bureaucracy and authority, as well as protected personal data silos and other disruptions to information flow can reduce the effectiveness of a team especially as the head count increases. In addition, poor coordination and other forms of mismanagement can limit the effectiveness of businesses to quickly adjust to threats and changes in the market place. Therefore, as businesses grow in size, various support functions (such as those shown in Table 1.2 are added to keep the core business functions running smoothly.
Supporting department and its function | |
---|---|
|
As enterprises continue to grow, so do the various departments. Some departments begin to develop marketable skills that could help other businesses carry out their activities. Marketing these services have the potential of turning former cost centers into profitable businesses and revenue streams. For example, Google Mail was created initially to provide communications between the various internal departments of Google. Later it was scaled to provide a free service on the internet that evidently attracted corporate customers to buy this service online at Google for Business. This business development strategy requires corporations to be flexible and adaptive in supporting the changes to information flow that occur as departments are restructured and evolve from cost centers into profitable businesses which are in turn sold to other corporations.
\(\blacktriangleright\) Exercise 1.3: Key business concepts
Create a mind-map that illustrates the relationship between the following sets of terms.
\(\triangleright\) Reading 1.1: General Electric Company: a brief history
While the General Electric Company (GE) was founded by Thomas Edison in 1878 to produce light bulbs and electrical generators, the history of GE is full of examples of cost-centers and experimental services being converted into profitable businesses. From its origins in light and power, GE expanded into the production of electrical household appliances. During the Great Depression of the 1930s, they started a consumer credit scheme to allow customers to buy appliances on credit in a program that became the start of a network of credit unions. In the 1950s, GE expanded into steam, nuclear and hydro-electric power systems. It is also established its IT department in the 1950s to monitor and help manage its rapidly growing operations. This lead to the network of GE Data Centers and Power Grid Controls. To communicate with over 30,000 workers at its Schenectady plant, GE started WRGB a public radio and TV station to broadcast news as well as to test and sell radios and televisions. GE expanded this into a network and eventually ended up owning the National Broadcasting Company (NBC). In the 1980s, new divisions were added to create medical devices, jet engines and wind powered systems.
The global GE work force were protected by a retirement fund that covered a total of over 200,000 employees. A new holding company GE Investments was created to manage retirement funds by increasing investment opportunities for their factory workers world-wide and expanding financial services of their credit unions. The improvements in efficiency and effectiveness resulted in savings and growth not realized by pension funds of other large corporations. In 2007, GE Investments realized a USD $15 billion surplus in the pension funds.
However, miscalculations by fund managers in 2008 resulted in over investment of the surplus from the pension funds into multiple business ventures that resulted in loss of funds, limited cash flow, and subsequent fall in stock prices resulting in a pension fund debt of USD $31 billion for the 600,000 retirees on its pension program. GE stocks never regained their former value. The lack of timely information about the condition and emerging trends of the various business activities of GE in 2007 resulted in poor business decisions that nearly destroyed their 128 year old legacy.
Personal computers have made it possible for individual workers to use computers to carry out their function within the business. While word processing and spreadsheets have improved the speed of various clerical tasks, the use of these applications tended to encourage the creation individual data silos where important information becomes inaccessible to others in the organization who need it. The introduction of affordable computer networks made it possible for better collaboration and synergy between workers. Connecting to the Internet made it possible for business to expand their interaction worldwide, increasing the range and scope of business operations.
However, realizing the full potential from investment in IT has been slow for most companies and government offices because of a lack of standardization and inter-operability. Expanding network services raised numerous of security concerns concerning the unauthorized distribution of critical information or the destruction and denial of service by individuals and software with malicious intent. Migrating computing functions to mobile phones have resulted in loss of productivity in many business sectors as employees are distracted by social media and electronic games.
To address these issues, SME have been hiring IT specialists to improve the communications and data infrastructure within their organization. In the past decade, establishing an IT Department as a central service became common and many consulting firms have arisen to address this need in the manner outlined in Table 1.3.
Goals of each stage of IT Development |
---|
|
As IT Departments emerge and become integrated into the business strategy, they provide tools, information and communication systems that played a transformative role in the nature of the business. Enterprise architecture, networks and data systems tend to grow as IT Department move along these evolutionary steps. Hohpe (2017b) Among IT Managers, there appears to be 2 major approaches to understanding the nature of business and IT’s function: using IT to redesign the business or re-engineering the current organization. (See Table 1.4) The approach chosen represents a strategic decision concerning the role and nature of the IT department. The political implications of the strategy chosen can be immense and often the success of an IT manager will depend on the level of support received from those in management who supervise the IT department head, especially in an organization that has multiple centers of development.
Architecting the Business to run from a central IT system | Re-engineering the Business using IT to support productive units |
---|---|
|
|
The past two decades of Business IT development have shown that IT departments are generally given by business managers one of the 4 roles described in Table 1.5. Each distinct role has its own impact on the nature, funding, staffing and developments of IT departments as it depends on the vision and expectation of the business administrators that manage the Director of the IT Department. Decision concerning IT development are based on the current capabilities of the IT staff and the plan for growing their skill. However, IT Departments in Thailand generally have a high staff turnover rate, especially in situations where the expectations of the staff do not match the role that the IT Department has been given.
Role of IT | Cost Center | Asset | Partner | Enabler |
---|---|---|---|---|
Focus: | Cost of IT | Return on Investment | Business value | Speed / innovation |
Lever: | Cost cutting | Economy of scale | Economy of efficiency | Economy of speed |
Development: | Outsourced | Hybrid2 | Inhouse | IT business |
Supervisor: | Chief Financial Officer (CFO) | Chief Operations Officer (COO) | Chief Development Officer (CDO) | Chief Executive Officer (CEO) |
IT Strategy provides a road map of expected IT developments and operations. This is derived from an understanding of the nature of the business development and is not necessarily restricted by current realities. Most IT departments can be classified within a 2 dimensional mapping as shown in Table 1.6, namely the degree of integration between data centers and the degree of standardization between data and operational systems. The IT strategy is both a definition of what IT proposes to do as well as a statement of what it does not intend to do. Above all, effective IT Business strategies do not conform to the product road map of IT vendors. However, successful strategies must recognize the role that the business gives to the IT Department. (Ross, Weill, and Robertson 2006)
Minimal standards for software systems | Highly standardized software systems | |
---|---|---|
Highly integrated IT centers | COORDINATION of unique business units
|
UNIFICATION as a Single business with global standards
|
Independant IT Centers | DIVERSIFICATION with Independent business units with different skills / customers
|
REPLICATION of Independent but similar business units and expertise
|
As shown in Table 1.6, IT Departments within large multinational enterprises can be classified within a 2 dimensional scale. In particular, the degree of integration between the computer services used by the various entities and the degree of system standardization across the enterprise.
As businesses are acquired and merged into larger firm, the respective IT systems also undergo metamorphosis. Large franchises like 7-11, KFC and McDonald’s use standardized computer services to accomplish economy of scale. Companies like GE and Google that depend on technical innovation tend to have large research and development budgets and use their multiple computer systems to address their needs creatively.
As a business grows, so does the complexity of the interactions between the departments, as shown in Figure 1.3. For example, management focuses on the control, operation, and development of a business. Financiers use investments to maximize opportunities to grow the business. Production engineers tune the processes needed to deliver products on time and at cost. Marketers build brand and establish product acceptance by consumers.
The key concern for IT is the nature and volume of information to be analyzed, shared and communicated in a timely fashion. Even after the past 50 years of intense computer development aimed at building systems to support the needs of business, new software tools and apps are still emerging at an astounding rate. Business software systems designed for medium to large size enterprises are classified in in 2 basic groups (See Table 1.7) that will be further explained in subsequent sidebars.
Classes of Business software | |
---|---|
|
|
|
\(\triangleright\) Reading 1.2: Enterprise Resource Planning (ERP) Software
CONTENT MANAGEMENT SYSTEM (CMS): a system to document the nature of the business and support the
PRODUCT INFORMATION MANAGEMENT (PIM): a system to document to identify, sell and support the use and maintenance of the products sold
ACCOUNTING INFORMATION SYSTEM (AIS): a system to document and transmit transaction information and financial plans
\(\triangleright\) Reading 1.3: Enterprise Resource Management (ERM) Software
BUSINESS-TO-BUSINESS SOFTWARE (B2B): manages communications and workflow with suppliers and partners
BUSINESS-TO-CONSUMER SOFTWARE (B2C): serve the needs of individual customers particularly in regards to customer history, order status, and billing information.
HUMAN RESOURCES MANAGEMENT (HRM): help to manage the workforce and the range of jobs within a company
MARKETING AUTOMATION PLATFORM (MAP): tracks the trends, patterns and possibilities concerning the market for the company’s goods and services
These systems tend to be built on very large databases that record not only the primarily data set but also metadata concerning user access time and frequency. The full data can be used to determine speed, volume and the relative importance of the data and the corresponding workflows.
Businesses are driven by an active communication chain that supports and synchronizes all the ongoing processes of the business. The effectiveness of teamwork and management within a business depends on an efficient communication chain to create an accurate picture of the business status and trends. However, businesses with many departments and lines and levels of authority often have breaks in the communication chain and can be interrupted by bottlenecks in the flow of data, inconsistent or misleading reporting, and other communication breakdowns. Order specifications, production targets and quality control results are time sensitive and provide essential information needed for data-driven management. In essence, the ability of a business to operate and fix problems depends on the quality of the communications that describes true nature of the current situation and knowledge of possible options.
Meaningful communications require reciprocal interaction between the speaker and the listener. As shown in Table 1.8, social norms and good etiquette depend on transmission of a message and an appropriate response. Interaction with customers and suppliers depends on clear and effective communication, but the communication chain is broken when messages in either direction are lost or misinterpreted. The problem is compounded each time the message is conveyed down a chain of messengers. The growing use of social media with its emphasis on icons or one-word responses has often been blamed for the reduction in quality of personal verbal and written skills adding additional challenges to the communication process.
Initiation | Response |
---|---|
Greeting | Acknowledgment |
Question | Response |
Proposal | Acceptance or Rejection |
Command | Action |
Accusation | Acceptance or Rebuttal |
The International Organization for Standardization (ISO) published ISO 9000 in 1987 as an attempt to standardize the nature and reliability of business communications. The purpose is to improve communications surrounding contracts and transactions in a way that allows the customer to verify the terms of an order. At the same time, the company must sign off on the work when the details of the agreed order have been completed. ISO 9000 certified companies have also committed themselves to track and improve the quality of services.
The essence of ISO9000 can be summed up in 4 key points that describe the nature of the interaction between customers and suppliers as shown in Table 1.9. The first 3 points are meant to insure that the customer’s order is clearly specified, confirmed and delivered. The fourth points is a commitment to record the outcome and feedback and search for ways to improve products and services.
Key Areas of Focus within a ISO9000 Compliant Business | |
---|---|
|
The revised standard ISO9001 provides guidance and tools for companies and organizations who want to ensure that their processes regularly deliver products and services that meet customer requirements. It also defines the requirements for certification against these standards which are reviewed and revised every 5 years.(International Organization for Standardization 2015) In the past 30 years, this standard has been at the core of every ISO quality standard that concerns the development and delivery of goods and services as it addresses the needs of customers and while meeting relevant statutory and regulatory requirements.(International Organization for Standardization 2019)
\(\blacktriangleright\) Exercise 1.4: An ISO9001 compliant transaction
Identify the points of the ISO9001 standard satisfied by the follow stages of a simple business transaction at a restaurant and consider what could happen if the step was skipped.
The customer enters a restaurant and is given a menu with pictures of the food.
The waiter takes the order and repeats the order back to the customer for confirmation.
The waiter brings the food and doubles check that the order is complete.
The waiter comes back to check if everything is okay.
The cashier checks that all was well when the bill is paid.
The whole transaction is recorded and the receipt gives the customer a website to send feedback.
The customer’s feedback is analyzed for patterns of service that could be improved.
\(\blacktriangleright\) Exercise 1.5: ISO9001 and MacDonald’s
Despite the fact that MacDonald’s is a successful multinational enterprise, most the work within its restaurants around the world is carried out by staff who are under the age of 21 and have worked for the company less than 2 years. However, as a certified ISO9001 company they have implemented systems and procedures that guarantee a high standard for business communications across their entire business. When a customer orders food at any MacDonald outlet in the world, the nature of the interaction between the customer and the counter staff is always the same regardless of the country or location of the restaurant.
Businesses today have unprecedented opportunities to rapidly address issues as they arise. Advances in such fields as Deep Machine Learning, Big Data analytics, Internet of Things, Collective Intelligence, Online Payment and Social Media are creating a reality that was only hinted at by the 1999 book Business at the speed of thought. (Gates 1999) Businesses that were market leaders in the past, but failed to keep pace with the changes, suddenly find themselves bankrupt and replaced by newer competitors. In 500BC, Heraclitus of Ephesus once penned the warning that “Change is the only constant in life” but he words ring true as an accurate description of today’s business environment. In recent years, there has have been reports world-wide of a philosophical shift toward post-modernism and its impact on human resources. Table 1.10 summarizes the changes that have been reported.
Characteristic | Traditional values | Post-modern values |
---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Since ISO9000 was first published in 1987, it has been revised and superseded by a long list of international standards that define and specify how various aspects of business, hardware, and software are to be implemented. Each new standard built on the principles already established and addresses the weaknesses of previous standards. (International Organization for Standardization 2015) While these developments help to ensure consistent service and quality at each level and division of a company, there were inconsistencies as customers interacted with the different departments. It was clear that that something else was needed to empower staff to embrace and enhance the vision and mission of the business as a whole, and to collectively design and implement creative solutions to challenges that arise.
When Jim Whitehurst became president of Red Hat, Inc., he attempted to address this problem. He started with the realization that “the best practices in creating open source software also translate well into managing an entire company.” By embracing open source values and creating a new open standard for communities, he showed how leaders could successfully create “a rebooted, redesigned, reinvented organization suitable for the decentralized, empowered, digital age.”(Whitehurst 2015) In creating the open organization, he and his colleagues have documented a paradigm shift that is changing in the way businesses are organized, managed and run.
Successful, innovative organizations demonstrate the following core principles which form the basis for the core elements of open organizations. (Whitehurst 2019) (See Table 1.11 While these simple principles are not new, they empower every employee at all levels to become engaged in the creative process of addressing challenges and new customer needs.
Description of core principles | |
---|---|
|
Although these core principles seem simple, it turns out that many organizations have trouble creating the level of trust and cooperation needed to engage their workers in this way. The traditional hierarchies of most companies created a sense of distance between the workers and the management and initial attempts were meant with resistance both from workers and from management. The key was for management to take the first step in building trust and demonstrating a willingness to consider good ideas and suggestions from any levels within the organization.
The success at Redhat drew the attention of the Harvard Business School and RedHat became consultants in the movement towards Open Organizations. Although every open organization is unique, there seemed to a common core of elements that characterize open organizations. (See Figure 1.5) Each core element is contributes to teamwork and collaboration and changes the organization in in powerful and productive ways.
\(\triangleright\) Reading 1.4: Core elements of open organizations
Organizations that embrace the core concepts of open organizations soon discover that openness and transparency are necessary for success. Even an expert team of problem-solvers perform better when they know and understand the context and nature of the problems they are attempting to solve. At the same time, pursuing openness have led to important benefits and outcomes that changed the organizations in powerful ways as shown in Table 1.12. (The Open Organization Ambassadors 2017)
Description of outcomes |
---|
|
\(\triangleright\) Reading 1.5: Common destructive behaviors of IT graduates
Large IT development centers like Google, Oracle and Apple are becoming open organizations that encourage and value innovation. Each worker in those companies is expected to do his/her part in contributing to the development effort. However, young IT graduates find it hard to join and work in such organizations. Hence, new IT grads have a very high rate of turn over because they lack the experience in working in creative teams that solve issues quickly. This mismatch is also seen in the common destructive behaviors among new IT employees.(Short 2017)
The phrase ‘I do not know’ is used as an excuse to absolve the worker from the responsibility to dig deeper and learn.
Asking colleagues for answers is used as substitute for reading the manual or doing a proper search.
Developing solutions with infrequent or inadequate testing, creating opportunities for expensive failures while adopting untested ideas. The resulting solutions cannot be trusted.
Undisciplined coding practices create technical debt in the products which fail to handle all cases causing bugs and other problems that others will need to correct in the future.
Young IT practitioners borrow and use technology widely without understanding it and contributing back to the community that created it.
Even the traditional studies in Computer Science has been evolving as the demands for mathematics, logic and statistic skills increase in an age when these courses are not popular. The resulting scarcity of trained IT staff have made expert level IT professionals with mathematical skills some of the highest paid employees in the Industry.
IT Jobs | Mean salary | IT Jobs | Mean salary |
---|---|---|---|
Applications Developer | $87,500 | Functional Analyst | $105,093 |
Business Analyst | $78,987 | Process Analyst | $76,070 |
Business Architect | $129,002 | Process Owner | $87,719 |
Business Process Analyst | $73,500 | Product Owner | $106,010 |
Business Process Manager | $93,505 | Project Manager | $90,039 |
Data Analyst | $80,187 | Requirements Engineer | $92,500 |
Data Scientist | $136,309 | Scrum Master | $132,300 |
Digital Marketeer | $111,270 | Systems Analyst | $79,649 |
Enterprise Architect | $142,795 | Systems Security Officer | $96,826 |
Full Stack Developer | $100,992 | Web application developer | $89,007 |
Computer technology has always been sold as a work in progress and it has the responsibility of the consumer to test and verify whether the current version of the technology is appropriate for their application. Subsequent advances in technology have increased the ability to produce products as well as the range of functions. This has increased the expectation of customers and news media who have capitalized on this by focusing on the ability to indulge the self-centered needs of younger generations of users. The internet and social media expose individuals to wide range of products and vendors that has grown to the point that no one person could properly examine and test all the various alternatives in the market place. This situation creates new desires and expectations in customers and increases competition among businesses. More and more business decisions are based on the trends in the marketplace. At the same time, technology driven social changes are impacting markets, particularly as youth explore new careers, lifestyles, technologies, and life goals.
Changes in the life goals of youth have been accelerating since the 1940. Social and cultural changes were fueled by technological changes, urbanization, rise of social networking, changing career prospects and access to online information. Century long traditions have been replaced by newer methods that are faster and more convenience. This has also changed the goals and vision of youth worldwide.
In a 2019 study, the most common indicators of success mentioned in conversation with Singapore voters in 2000 were compared to the list compiled from conversations with Singaporean youth in 2018. Tan (2019) The results of these studies are shown in Tables 1.13 and 1.14.
Goals of Singapore voters | Goals of Singapore Youth |
---|---|
1. Career / Work | 1. Emotional well being |
2. Finance / Money | 2. Personal skill development |
3. Studies / Degrees | 3. Family |
4. Family | 4. Finance / Money |
5. House / Belongings | 5. Spirituality |
\(\triangleright\) Discussion 1.3: Impact of changes in life goals on business
How do you think changes in life goals of youth will impact the market place?
Based on these changes, which products would be expected to have the greatest increases or decreases in demand in the next 10 or 20 years?
What aspirations of Thai youth have changed in the last 10 years?
What impact will these changes have on the Thai economy?
\(\triangleright\) Discussion 1.4: Changing goals of success in Singapore
In 2019, the following results were obtains from Singapore youth ages 21-25. (Tan 2019) For the most part, the bottom goals of youth were top goals for their parents. Discuss how this shift in values and goals might effect the behavior of the market place over the next decade.
Goals | Percent |
---|---|
Home ownership | 70% |
Strong family relationships | 70% |
Learning / acquiring new skills | 62% |
Successful career | 59% |
Earn lots of money | 46% |
Help less fortunate | 41% |
Contribute to society | 40% |
Get married | 36% |
Have children | 35% |
Good religious life | 31% |
Today’s businesses need to be as versatile and diverse as the customers and markets they serve. In the past, only businesses with a large customer base could to benefit from economies of scale. However, online services have made it possible for businesses to support mass distribution to millions of consumers and/or cater to the diverse needs of individual customers that number in the millions. Some companies Amazon or Lazada are able to do both at the same time.
In addition, social media provide a forum for individuals to express opinions without being held accountable for the views they expressed. However, some companies have posed false testimonies of fictious customers to create new business opportunities or to slow down the growth of competitors. Because this behavior abuses free speech for financial gain, imposters and liars are shunned and receive harsh treatment from social media communities. As shown in Table 1.15, social media has many ways to influence marketing. Generally, the rewards for being liked and respected by the community help to self-regulate web communications, but increasingly courts are being given the power to litigate defamation cases where rumors and false testimonials have caused damage.
Ways that social media impacts marketing | |
---|---|
|
\(\triangleright\) Discussion 1.5: Online ad strategies
Given the changes in the nature of the online market, discuss how the following approaches help to target the population to focus on those who are most likely to purchase. For each of these approaches, identify the nature of a particular market for which it would be more effective than the others.
It is clear that the retail companies in rapid growth are those who are able to upgrade the services of traditional storefronts into a more convenient, efficient and user-friendly setting that compliments the services available online. Banks have moved their services online and to ATM kioks to increase the convenience of handling money while lowering operating costs. Online companies like Amazon have teamed up with traditional shopping chains like Target to allows customers the opportunity to compare, touch and feel products before purchasing them either in the shop or online. Online orders can be delivered to shops to reduce shipping costs. Amazon has even integrated such high tech features as AI, face recognition and sensor to change the user shopping experience.(Amazon.com 2016) Technology plays a critical role in all of these developments.
\(\triangleright\) Discussion 1.6: New generation 7-11 (Seven Eleven)
View this news clip(สุริยวงศ์ 2561) about the opening of a new Seven Eleven outlet in Pattaya. The store was designed in keeping with the era of Thailand 4.0. The store is full of sensors, monitors and systems to create a modern, futuristic, efficient shopping and eating environment complete with innovations to improve energy-saving and user convenience. Watch the video and list the number of ways computers have been used to change the user experience.
In 2019, it is estimated that over 56% of the world’s population has access to the internet. There are 26.6 billion devices and 4.54 billion people are connected to the internet. It is estimated that 3.8 billion social media users. Facebook alone has well over 2.5 billion users each month. Google answers 65,000 searches per second. This is creating unprecedented levels of opportunity for marketing to huge markets world-wide. In the following graph, the number of users grows linearly while their revenues grow exponentially. (Statista 2019)
\(\triangleright\) Discussion 1.7: The mobile phone market
Review the statistics of the performance of leading mobile phone producers since 1994 (The Next Web 2019) and discuss the following:
As the following graph shows, the types of devices used to access the internet has grown and the choice of the device used has also changed in the past decade. The trend has been to use mobile devices for browsing, shopping, and surfing for information. Initially, there was some resistance to using mobile devices for ordering online. However, with the growing popularity of online banking applications and digital wallets, more transactions are done using mobile devices. Although working and study from home during the pandemic increased the demand globally, there were major shortages in new computing devices due to major shortages of key components. The closure of factories during the COVID-19 pandemic caused major disruption in manufacturing and shipping of new components. The supply chain is expected to take 2 years to return to a capacity that can meet demand.O’De (2021)
Measure | Computer | Tablet | Smartphone |
---|---|---|---|
E-commerce traffic | 53.9% | 12.4% | 33.7% |
Volume of Retail sales | 76.9% | 12.4% | 10.7% |
The three basic options which businesses use to develop Web sites development are listed below:
Internal development: where the web site is build and maintained by company employees. This builds web skills among the staff and gives the business tighter control and faster responsiveness for problem resolution, content management, and ongoing development.
External development or outsourcing: where the business hires another firm to build and/or manage the Web site. This development option is chosen when there is a need to enter the market quickly or use web functions that require special expertise. Some companies do not have web savvy staff and prefer to leave this important job to experts.
Collaborative development: in which business forms a partnership in web development. Depending on the nature of the site and the skills required, a mixture of internal and external development is possible and may be desirable especially when systems must support a wide range of mobile and web devices.
With the development of the world wide web in the 1990s, online commerce has been gaining advantage over corresponding services in brick and mortar firms. During the time of COVID-19 social distancing and lock downs, sales and services online soared. Most customers now find it easy to shop online (See Table 1.16 and businesses find e-commerce websites to be far cheaper and easier to operate, upgrade and maintain than brick and mortar shops.
Reason for preferring to shop online | |
---|---|
|
While there is rapid acceptance by the younger cohorts of shoppers, the elderly are more resistant to adopt online shopping. However, most businesses do not worry about the loss of elderly clients because the majority of the sales are from adults in their working years and support elderly who are late-adaptors of technology has not cost-effective in most business sectors.
Age | Weekly | Monthly | Annually | Never |
---|---|---|---|---|
18-29 | 35% | 41% | 24% | 0% |
30-39 | 37% | 35% | 28% | 0% |
40-49 | 23% | 35% | 42% | 0% |
50-64 | 17% | 38% | 45% | 0% |
>65 | 11% | 31% | 50% | 8% |
E-commerce involves the use of web technology to integrate 5 important business operations into a seamless workflow that supports the shopping behavior of customers.
As shown in Table 1.17, the process of shopping for goods online has many similarities to shopping at traditional brick and mortar shops. These similarities have contributed to rapid growth in online purchases which in 2018 totaled $2,489 trillion worldwide. This represents about 8.8% of all sales worldwide. (Saleh 2019)
Physical vs Online user experience for each stage of shopping |
---|
|
Despite the rapid growth in e-commerce shopping, many people still prefer the in-store shopping experience where they can see, handle and try out products before committing to a purchase, especially when the item is expensive or the aesthetics are important. This has given new roles for brick-and-mortar stores in a world that purchases materials. Hybrid businesses have become the new strategic choice for retail companies to integrate online and brick and mortar services as a seamless customer service process. Customers can choose and switch between online and physical functions depending on convenience, comfort and their shopping preferences. The IT systems help keep costs low and the physical location can double for both showroom and customer service centers that also provide training, installation, upgrading and repair services.
\(\triangleright\) Discussion 1.8: Hybrid businesses
Online shopping giant Amazon has recently attempted to merge with Target a traditional department store chain. Explain why this merger is a good idea and what benefits both Amazon and their customers would expect to gains from it.
Although the store front and supporting technology continue to evolve, the basic principles of business will continue to drive business into the foreseeable future. At the same time, the role of e-Business continues to evolve the ongoing need for IT support of business processes that match and address the needs of customers with solutions that manages the full range of goods and services available in an efficient and effective manner.
At its heart, e-Business is a basically a communication platform for businesses to reach out to their customers, staff, vendors and investors in an increasingly more competitive world. Research and development efforts are part of an ongoing quest to improve the quality of communication and the efficiency and effectiveness of activities. A key method for managing the change is a quality assurance technique that compares actual performance against planned expectations throughout the life cycle of the products and processes associated with the business. In the 1950s, Dr. W. Edwards Dening introduced a 4 stage development cycle to post-war Japan that was instrumental in creating a major surge in the Japanese economy. The cycle is popularly know as PDCA corresponding to 4 stages in a development cycle: Plan, Do, Check, Act (PDCA).
Name and description of each stage | |
---|---|
|
|
|
|
|
|
|
As a business grows, the number of ongoing processes and development projects increases requiring new means to monitor the status and condition of all part of the business. Dashboards have become a popular means for displaying critical information in large qualities through indicators that basically have say “green is good, and red is bad, needing attention.” While dashboards provides instantaneously insights and a quick indication of the overall status, successful businesses a broader scope of analysis to track progress in all aspects of the business.
Class of high/low ranges of acceptable limits | |
---|---|
|
With the business environment constantly changing, it is essential to monitor the critical changes that impact the business and to execute measures that will help the business. Such is the purpose of strategic planning around insights gained by evaluating the nature of the business and its busiess environment.
Although there are many methods to achieve this, the most popular focuses on the strengths, weaknesses, opportunities and threats (SWOT) The purpose of this analysis to better understand the position of the organization within its operating environment. By developing a clear understanding of its position within this 4 dimensional space, the business can set more realistic goals and targets.
Area of focus | Key issues | |
---|---|---|
Strengths |
|
|
Weaknesses |
|
|
Opportunity |
|
|
Threats |
|
Michael Porter first outlined the five forces of competition in a 1979 Harvard Business Review article,(Porter 1979) and later in a book which has been extensively revised in later editions.(Porter 2008) Porter attempted to measure the forces that help to determine the competitiveness of a business and came up with a 5 point system for assessment. He discovered that the number and power of a company’s competitive rivals, potential new market entrants, suppliers, customers, and substitute products influence a company’s profitability. This system has often been used by investors to rate and compare competing alternatives within the market place. It is described in Table 1.18.
Porter’s Five Forces of Competition | |
---|---|
|
Another common measure centers around five key marketing criteria or better known as the Five C’s of Marketing Framework or the 5C Framework). The purpose of this framework is to analyze the environment in which a company operates and the goals is to provide insight into the key drivers of success, as well as highlight the risk exposure from various environmental factors. This framework helps to determine the viability of a business within a given environment by evaluating the growth and risk potential of business investments.(CFI Education Inc. 2020) The details of this framework are given in Table 1.19.
Area of focus | |
---|---|
|
\(\blacktriangleright\) Exercise 1.6: Strategic Investment
An investor wanted to invest in one of the largest beverage companies in Thailand. Choose of one the 3 strategic planning measures described above to compare between Coke Cola, Pepsi Cola and Est and determine from publicly accessible data which company has the best capability for growth with the least risk. Create a spreadsheet of your findings within the strategic framework you chose. Add a summary paragraph to state your recommendation and describe your reasons for this conclusion.
This book was written during the months of social distancing in attempts to control the spread of COVID-19. While the numbers of new infections are beginning to wane, the effects of several months of lock-down and workplace closures on productivity and the economy are still not fully known. However, during the crisis double digit rates were seen in unemployment and in the losses in stock value. Companies that were quick to support customers online did better than those that closed their doors without an effective online presence. Two years later, this virus pandemic continues to play havoc worldwide despite massive efforts to produce cost-effective cures and vaccines. Most economists agree that this crises will establish a new normal as world leaders attempt to balance the need to restart economies and against the higher mortality rate caused by this virus among the elderly world-wide. At the same time, the pandemic triggered intensive debates between those who advocated strong measures to protect public health and those leary of allowing the government to violate their independence and personal rights. This intense debate was targetted social media to sway opinions even before the facts and science were known creating ideal conditions for growing mistrust and misinformation.
The challenges of COVID-19 have highlighted the need for businesses to act strategically in multiple dimensions in times of major crisis such as pandemics, war, and the collapse of currencies and markets. During such crisis, market conditions deteriorate rapidly, the supply chain is disrupted, communication channels are broken, and the business may find itself cut off from its workforce and customer base. The COVID-19 pandemic have shown that the businesses that successfully weather such crisis are those that use their business assets to rapidly and strategically respond to the crisis in the following 5 ways: (Sneader and Singhal 2020)
Resolve to take immediate action COVID-19 disrupted the supply chain, workforce, customers, technology and business partners, Each of these massive challenges needed to be understood and addressed quickly to minimize subsequent impact on the organization. Companies that hesitated or chose to wait out the storm discovered that they could not recover from the toxic effects resulting from their inaction and paralysis by fear. Unfortunately, many businesses and organizations went bankrupt. However, the leading firms were quick to acquire new skills to help them decide the scale, pace and depth of required emergency actions. IT Departments played a critical roles in gathering and disseminate accurate and timely information as well as in the coordination of the response.
Resilience in the face of the crisis In order to survive an economic and financial crisis of indeterminate size, duration and depth, communication and cooperation helped successful business leaders to address each of the challenges as they arose. Creative application of vision, mission and resources gave businesses the resilience to stay afloat despite uncertainties, near-term cash flow problems and the long-term economic instabilities brought on by the pandemic.
Return to work Organizations that effectively addressed issues caused by the pandemic were those that quickly created a detailed plan to scale operations of the business as soon as the effects of COVID-19 were understood. The plan included restaffing and retraining business units to resume some effective level of operations as quickly as possible.
Re-imagination Successful companies acquired skills to predict the nature and direction of the next “normal” and to quickly adapted to the required changes. This often meant introducing new products to address specific areas of need brought on by the pandemic. In Thailand, cardboard box factories quickly adapted their facilities to produce disposable furniture used in quarantine wards. A bicycle factory started to produce foot-operated, handsanitizer dispensers. Despite the confusion and turmoil brought on by the pandemic, it was a time of great innovation in software development of products to study and fight the pandemic, improve communication between remote workers and learners, link online marketing to delivery logistics, and facilitate the management of operations using individuals working from remote locations.
Reform by adjusting to changes As the pandemic progressed and new tools became available, successful organizations learned new ways to adapt to the customer expectations and needs, competitive environments, and government regulations while building experience and expertise that would open new markets and opportunities after the pandemic is over.
Using data captured and streamed from Office365 and GSuite to determine trends in work patterns, Worklytics was able to measure changes in productivity as more and more people were required to work from home. Comparison of the usage of these office productivity tools prior and 9 weeks into the social distancing initiatives in Europe and America provided an opportunity to quantify the changes in work pattern due to working from home.Arkcoll (2020b) The results are shown in Table 1.20.
Metric in April 2020 | % Change | Net impact |
---|---|---|
Recurring meetings | +25 % | \(\Uparrow\) |
Meeting size | -14 % | \(\Downarrow\) |
Focus time | -8 % | \(\Downarrow\) |
Interruptions | +34 % | \(\Uparrow\) |
Work day length | +15 % | \(\Uparrow\) |
After-hours email | +23 % | \(\Uparrow\) |
Work activity | -27 % | \(\Downarrow\) |
Manager 1:1 sessions | +10 % | \(\Uparrow\) |
Manager outreach | +17 % | \(\Uparrow\) |
Overall collaboration | +15 % | \(\Uparrow\) |
Simultaneous studies on the changes in US work forces show that work locations changes imposed by COVID-19 have been allowed workers and employers to discover the benefits and limitations of working from home. After initial teething problems, it became apparent that there are numerous jobs that could be performed at home reducing the cost and time spent on commuting to work. At the same time, employers discovered improved productivity as employers learned to manage their time and improved their communication and time management skill. While it is not a panacea, working from home will continue for some even after the pandemic.(Apollo Technical LLC 2021)
In the initial months of work-from-home lockdown, most businesses were caught by surprize and the productivity dropped. However, as new software was installed and people became more comfort with online communications, productivity for most offices quickly rose to 20% higher than the pre-COVID-19 levels. Survey among leader in the recovery have found a number of remedies were essential to this recovery which are listed in Table 1.21
Measures to improve work from home operation |
---|
|
Studies in June 2021 showed that productivity while working remotely from home is better than working in an office setting. On average, those who work from home spend 10 minutes less a day being unproductive, work one more day a week, and are 47% more productive. 77% of those who work remotely at least a few times per month show increased productivity, with 30% doing more work in less time and 24% doing more work in the same period. (Apollo Technical LLC 2021)
\(\triangleright\) Reading 1.6: Key Benefits realized from COVID-19 Work from Home Lock-downs
No commuting time. On average, a worker saved 8.5 hours a week of free time by not commuting to work. This adds up to 408 hours per year. This translated to more time free for hobbies such as gardening or raising backyard chickens.
Less water cooler talk. Working from home minimizes the amount of social interaction. However, scheduled online social events and team building exercises helped to maintain and build contacts and relationships that are important for getting work done.
More Exercise. The lack of commute and less opportunity to socialize allowed remote workers more opportunities for regular exercise and found the activity made them feel healthier and less stressed.
Maximum productivity. Studies have shown that 86% of employees prefer to work by themselves when they are trying to be as productive as possible. As a result, workers found they could get more done from home.
As the world struggles to end this pandemic, it is clear that the services and developments of IT departments have played a key role in keeping businesses and organizations afloat during the pandemic and will continue to help businesses and organizations to become more effective in meeting future challenges. For example, more employees will continue to opt to work from remote locations. Supply chain shortages are driving changes in processes and relationships that will prevent shortages in the future. The national debt accrued during the pandemic will result in significant changes in international exchange rates and shifts in the economic climate and investments world-wide. The advances in communication technology will continue to lower the need for travel to meetings and conferences. While the expected changes are too numerous to predict, the emerging trends strongly suggest that in the new normal, businesses and organizations will become even more dependant on their IT departments to help them fulfill their vision and mission.
This chapter will explore some common approaches used to model the network of interactions that occur for business processes. These models not only help to provide deeper understanding of the nature of a business process but can facilitating the development of systems to collect and analyze the data associated with the process.
Model–view–controller (MVC) framework was introduced as a software design pattern for developing online applications. The goal is to structure an application around the main actors and objects to be managed by the application. As shown in Figure 2.2, a web based transaction is modeled in discrete stages where the incoming message is interpreted by the controller which then queries the database and hands the information over to various function that that carry out the appropriate business logic and update the database. The resulting data is then transferred to the view which transforms the output into the appropriate format. This framework simplifies the interfacing between HTML objects, database fields, business logic and business logic functions.
An MVC framework accomplishes its task by split up the business logic, database access and presentation into small functions whose accuracy can be verified in individual unit tests and integrity tests. In addition, security of such web applications is often achieved by authenticating the identity of the users and check the authorization for the various functions used against the role of the user. MVC Frameworks have been used to develop web, mobile and desktop applications, operating on client and/or server side CPU. The main components
The model component defines the data objects of the application and maps between fields on forms, reports and databases. The Model also has functions that implement the standard links in an Entity Relationship Diagram that defines the database that drives the app.
Ruby on Rails was designed to implement an ERD quickly and conveniently. The 4 tables as well as all the basic database functions needed to create, retrieve, update or destroy records (CRUD) can be achieved with the following rails shell scripts. These command establish the model, databases, controllers and the supporting view functions.
rails generate scaffold user name:string \
password:digest lastlogin:date
rails generate scaffold author fullname:string \
email:string organization:string city:string \
country:string avatar:integer status:integer \
user:references
rails generate scaffold post author:references \
title:string body:text
rails generate scaffold comment post:references \
author:references body:text
Ruby on Rails automatically generates a draft of a web application that provides CRUD functions for all of the classes of objects. It is then up to the developer to convert this into an application by adding functions, security, graphics and templates. For many projects, Ruby on Rails writes nearly 60% of the code and helps to automate the generation of unit tests needed to verify the integrity of the software under development.
The comparative statistics of the lines of code (LOC) in the generated and the final version of EZ-Blog, a working Ruby on Rails application developed for this course.3
Name | LOC org / fin | Classes | Methods |
---|---|---|---|
Controllers | 202 / 309 | 5 / 7 | 36 / 46 |
Helpers | 10 / 24 | 0 / 0 | 0 / 2 |
Jobs | 2 / 2 | 1 / 1 | 0 / 0 |
Models | 16 / 182 | 5 / 5 | 0 / 4 |
Mailers | 4 / 4 | 1 / 1 | 0 / 0 |
Channels | 8 / 8 | 2 / 2 | 0 / 0 |
Views | 374 / 586 | 5 / 5 | 35 / 37 |
JavaScript | 8 / 8 | 0 / 0 | 0 / 0 |
Controller tests | 152 / 202 | 4 / 6 | 28 / 35 |
Model tests | 12 / 37 | 4 / 4 | 0 / 3 |
Channel tests | 3 / 3 | 1 / 1 | 0 / 0 |
System tests | 160 / 160 | 4 / 4 | 16 / 16 |
Total | 951 / 1525 | 27 / 31 | 80 / 106 |
Ruby on Rails provides a function to analyze the relative distribution of functionality between the different parts of the system. Ideally, the system should be developed with the code equally dispersed between controllers, helpers, models and views. The following graph shows this analysis for EZ-Blog.
The relationships within the ERD are specified in the model definition files of the Rails app. The following lines of codes also provide additional functionality that allow users to query the database along the links of the ERD. Ruby on Rails implemented these relationships in SQL using joins
of data tables. This table of class relationships is parallel to the ERD shown above.
Model | Rails specification |
---|---|
user |
|
author |
|
post |
|
comment |
|
These ERD specifications establish the ERD relationships and add new functionality for accessing data. This increases the ability of the developer to access collections of objects as needed.
Rails expression | Explanation |
---|---|
User.find(2) |
|
User.find(2).author |
|
User.find(2).author.
posts |
|
User.find(2).author.
comments |
|
User.find(2).author.
posts.first.
comments |
|
User.find(2).author.
posts.collect do
\(\quad\) |post| \(\quad\)
\(\quad\) [post.title,
\(\quad\) post.comments]
end |
|
Role based authorization are used to what Access to the CRUD services generated by the CMV Rails generator for each of the classes is automatically controlled by role-based authorization. As the user logs in, the user’s role is retrieved from the database. The role will determine the range of activities that the user is permitted to use. The permissions are enforced by roles checking in the controller and views to restrict what the user sees and can do with the database.
Level | Description |
---|---|
1 | Simple authentication with a login and password |
2 | Role based authorization of functions |
3 | Verified authentication via email or SMS |
4 | Single use passcode sent via email or SMS |
5 | Encryption key via security certificate |
6 | Dynamic encryption via an external dongle |
7 | Speech or Facial recognition |
8 | Biometric scan of iris or finger print |
The model also supports the functions that validate the data. All attempts to store or update information in the database must pass the validation functions. It is generally expected that the controller will redirect failed attempts to update the database back to the user to update the form with valid data.
validates :fullname, :email, :country, :avatar, presence: true |
validates :email, format: {with: %r{\A.+\@.+\.[a-z]+\z}, |
\(\quad\) message: 'must be a valid email' } |
validates :avatar, inclusion: {in: 0..AVATARNUM} |
validates :status, inclusion: {in: 0..(STATUS.size)} |
validate :validcountry? |
Unit testing is part of Ruby that attempts to ensure that every part of the system performs as expected. Every function must be designed and tested to be able to handle valid data as well as recover from gracefully from inappropriate input. The goal is to prevent the system from crashing and results in reliable and dependable service. To this end, every method and validation needs is tested against both good and bad input. As each function is developed, a corresponding unit test is also written. This approach to development to saves time in the long run as it build robustness in new functions as they are added and ensures that old code is still working as the system is refactored to adjust to new functionality beyond the original design.
For example, the methods defined in the class definition of SimpleNumber
provide functionality for the objects of this class. Errors need to be trapped and handled in a way that will not crash the system.
class SimpleNumber
def initialize(num)
raise unless num.is_a?(Numeric)
@x = num
end
def add(y)
raise unless y.is_a?(Numeric)
@x += y
end
end
Unit testing can be used to check the methods to ensure that responses conformed to expected behavior. This class is dynamically typed and will work with integers, real, and big numbers. Characters and nil will raise exceptions.
require_relative "simple_number"
require "test/unit"
class TestSimpleNumber < Test::Unit::TestCase
def test_simple
assert_nothing_raised(SimpleNumber.new(2)
assert_nothing_raised(SimpleNumber.new(0.2)
assert_nothing_raised(
SimpleNumber.new(222222222222222222222222222222))
assert_raise(SimpleNumber.new('a')
assert_raise(SimpleNumber.new(nil)
assert_equal(4, SimpleNumber.new(2).add(2) )
assert_equal(0.4, SimpleNumber.new(0.2).add(0.2) )
assert_equal(444444444444444444444444444444,
SimpleNumber.new(2).add(222222222222222222222222222222))
assert_raises(4, SimpleNumber.new(2).add('a') )
assert_raises(SimpleNumber.new(2).add(nil) )
end
end
Assertion function | Contra-assertion function |
---|---|
assert(boolean) |
--- |
assert_equal( expected, actual) |
assert_not_equal |
assert_match( pattern, string) |
assert_no_match |
assert_nil( object) |
assert_not_nil |
assert_kind_of( class, object) |
--- |
assert_same( expected, actual) |
assert_not_same |
assert_raise( Exception,... ) {block} |
assert_nothing_raised |
assert_throws( expected_symbol) {block} |
assert_nothing_thrown() |
Behavior driven development (BDD) is an attempt to bridge the gap between the end user and the developer. It has emerged as a standard means for recording scenarios of a user story in natural language which can be parsed and tested. This allows the end user to state clearly the required features to be developed. The specifications are then used to test the program and can serve as the list of functionality required before the software will be accepted. This approach focuses the attention of the developers on the exact requirements of the user which is a critical component of Agile development. The language of Cucumber has been developed to capture this technique in over 30 languages of the world including Thai.
Description | Format | Example |
---|---|---|
Context | As a role | As the supervisor |
Query | I want to task | I want to Add new staff |
Goal | so that expected outcome | so that names appear on the staff list |
Advantages:
(Consortium 2019) supports Behaviour-Driven Development(BDD) by reading executable specifications written in plain text and validating that the software does what those specifications say. The specifications consists of multiple examples, or scenarios written in Gherkin. (Cucumber 2019)
Cucumber is implemented with Gherkin a simple language consists of 12 words used to describe scenarios.
Classification | Gherkin Keywords |
---|---|
Identification | Feature |
Start of scenario | Scenario , Scenario Outline |
Steps/Context | Given |
Event | When |
Expected outcome | Then |
Collectives | And , But |
Description | Background |
Examples | Combinations |
Strings | "..." |
Data tables | | |
Tags | @ |
Comments | # |
The BDD process begins with a statement of the scenarios related to a feature. Each feature has its own file with the extension .feature
. In this simple example we will start with a feature that alerts users when it is Friday. Initially, the system will test 2 scenarios.
Feature: Is it Friday yet?
Everybody wants to know when it's Friday
Scenario: Sunday isn't Friday
Given today is 'Sunday'
When I ask whether it's Friday yet
Then I should be told "Nope"
Scenario: Friday is Friday
Given today is 'Friday'
When I ask whether it's Friday yet
Then I should be told "TGIF"
The Running cucumber results in a framework for the step definitions which can be copied to a Ruby file. (Stage 0) Rerunning the analysis provides confirmation that the test harness is in place. (Stage 1)
Given('today is {string}') do |string|
pending # Write code here that turns the phrase above into concrete actions
end
When('I ask whether it's Friday yet') do
pending # Write code here that turns the phrase above into concrete actions
end
Then('I should be told {string}') do |string|
pending # Write code here that turns the phrase above into concrete actions
end
At this point the corresponding helper module can be created. This is the code that will eventually become a helper function used in the production system.
module FridayStepHelper
def is_it_friday(day)
'Nope'
end
end
At the same time, the pending calls in the step definions need to be replaced by Ruby call to parse the test and access the appropriate functions. (Stage 2)
require 'minitest'
require 'fridaystep.rb'
Given("today is {string}") do |given_day|
@today = given_day
end
When("I ask whether it's Friday yet") do
@actual_answer = is_it_friday(@today)
end
Then("I should be told {string}") do |expected_answer|
assert_equal(expected_answer,@actual_answer)
end
The module needs to be improved to handle different cases. When run it now handles all the proposed scenarios. (Stage 3)
module FridayStepHelper
def is_it_friday(day)
case day
when 'Friday'
'TGIF'
when 'Monday','Tuesday','Wednesday','Thursday','Saturday','Sunday'
'Nope'
else
'Invalid'
end
end
end
The client at this point may introduce additional scenarios that can be added to the test proceedures. The results uncover new problems. (Stage 4)
Scenario Outline: Today is or is not Friday
Given today is '<day>'
When I ask whether it's Friday yet
Then I should be told '<answer>'
Examples:
| day | answer |
| Friday | TGIF |
| Sunday | Nope |
| Monday | Nope |
| monday | Nope |
| friday | TGIF |
| anything else! | Invalid |
The new scenarios identify the need to control the capitialization of the names
of the day which is easily fixed by changing the case switch object for day.capitalize
.
(Stage 5)
Stage | Scenarios | Steps | Time |
---|---|---|---|
Stage 0 | 2 (2 undefined) | 6 (6 undefined) | 0.016 sec |
Stage 1 | 2 (2 pending) | 6 (4 skipped, 2 pending) | 0.023 sec |
Stage 2 | 2 (1 fail, 1 pass) | 6 (1 fail, 5 pass) | 0.013 sec |
Stage 3 | 2 (2 pass) | 6 (6 pass) | 0.013 sec |
Stage 4 | 8 (2 fail, 6 pass) | 24 (2 fail, 22 pass) | 0.027 sec |
Stage 5 | 8 (8 pass) | 24 (24 pass) | 0.022 sec |
Using BDD results in robust, tested code that meets the required functionality. The system allows the functionality to be developed incremented as human readable code.
Modeling allows one to simulate and measure a complex process. This provides an opportunity better understand the interaction between key components of a system. This information allows for the development of better monitoring and management of complex systems. In fact, business modeling currently is currently used to identify, design, execute, document, measure, monitor, and control business processes. This applied to both automated and non-automated business processes. The information gain help to achieve results aligned with an organization’s strategic goals.(Benedict 2018) At its core, a business model must be able to capture all the interactions between the actors, resources and actions within a workflow. While most of these interactions are simple steps that take time, but others depend on important conditions and requisites.
Although there are many ways to model business process have been many attempts Business Process Model Network 2.0 or BPMN 2.0 has emerged as one of the most popular and complete standard. The 2.0 standard provides the business community with common set of 103 symbols and well as a standard language for communicating the details of individuals processes and functions within a workflow. As more tools that support BPMN 2.0 emerge, this standard becomes a standard for the design, communication, execution and analysis of a process model. This makes process models re-usable which can be exported from system and imported into another and across tools. Transforming the visual model into an execution language creates new opportunities for developing functional control and support systems based on proven and tested work flows.(Benedict et al. 2013)
\(\triangleright\) Reading 2.1: Key reasons for modeling business processes with BPMN
The key benefits from using BPMN to model business processes. (Camunda Corporation 2018b)
Figure 2.10 uses BPMN symbols to depict a simple transaction that was activated by an event. Events that initiate the process (such as a messages, scheduled time slot, special conditions) are displayed within green circles. The task icon (rounded rectangle) represents the work to be done. Upon completion, the task can trigger subsequent events or tasks in the process. Terminal events/conditions are shown as dark red circles.
The steps of a transaction are chained together into a workflow that describes the sequence of required tasks. Thus, the tasks will progress until the terminal event and state has been achieved. A BPMN server works by reading the simple graphics in this chart and linking to the values in the transaction profile as well as the corresponding functions.
Process control is achieved with decision points that rely on logical expressions to control the workflow. These expressions check the values of data triggers, system variables, and sensors maintained in the corresponding profile which the BPMN Server keeps for each active transaction.
Events are used to trigger the next stage or state of the process. For example, the receipt of a message or an order initiates the entire process or the sending of goods to the customer could signal a successful completion or the end of the process. Initial events are displayed in green and terminal events in red. Clocked or timed events automatically trigger according to scheduled time. BPMN systems often use timed events to monitor progress and to the escalate a service step if progress has been the calendar. The naming convention employs noun phrases such as message sent, order recieved, or request cancelled to describe the event.
Tasks depict a unit of work to be done. Traditionally, tasks are shown as rounded rectangles that are labeled with a descriptive phrase in the form [verb] + [object]
. For example, Acquire groceries would be preferred over a statement like First take care of shopping for groceries. Completed tasks can trigger subsequent tasks, events or gateways as well as a number of the following by-products.
Data objects: a collection of process attributes and variables. This would include such things as the details of the customer order, list of administrative approvals, and other data that is collected in the process of completing all the tasks of a process. These attributes are used by gateways to control the processing. Tasks manipulate data objects in the following ways:
message request
are usually handled as an message event
.Gateways are used as control workflow within a BPMN. The control is achieved as decisions based on the action streams that lead to a common milestone or collection point. As such gateways are described as something that has already happened. For example, hunger noticed is better when I begin to feel hungry. The most common gateways structures are described below:
Decision Gateway: initiates the appropriate action stream based on a logic function in a manner similar to the IF() THEN ... ELSE ...
control structure found in most programming languages
Exclusive Gateway (XOR): attempts the first of many action streams. If this stream fails to complete, subsequent action streams are attempted one at a time, until a successful action stream is found.
\(\triangleright\) **Reading 2.2: Decision rules supported by BPMN
Companies are often plagued with problems that arise when business rules are not well defined or followed because operating and business decision rules are not understood. In many cases, the rules simply do not work the way they are described because those who do the work find creative ways to get the job done. This gives rise to arbitary interpretations and changes to the rules as workers see fit. However, BPMN systems can model and enforce a wide full range of business logic and decision making processes. Once implemented, the input and output of each decision point can also be recorded, analyzed and optimized. Thus, BPM becomes a means for tracking, testing and optimizing business logic and processes.
Description of rule type | |
---|---|
|
Swimlanes are used to designate the responsibilities for the different kinds of workers and services within the business. In active BPMN systems, reassigning tasks to another department is done by moving task symbols from one swimlane to another. This graphic representation of BPMN provides an opportunity not only for rapid design and specifications of a workflow across multiple departments but also increases the flexibility of the system to make adjustments as functions and responsibilities are redistributed various groups within the enterprise. Changes in staff responsibilities and departmental boundaries is simply a matter of moving tasks across swimlanes.
Correcting a bug in process flow
Identify and correct the flaw in this process so that the grass can be weeded, cut and watered in that order but only as required.
The yEd graphic editor provides a useful palette for describing the most common range of business processes using approximately half of the standard BPMN objects. Business processes captured by this editor are recorded in a GRAPHML dialect of XML as a sequences of nodes, edges and swimlanes.
Like most BPMN Graphic editors, yEd captures the model in XML. Although most of the XML file is used to specify the graphic appearance of the BPMN graphic representation, the file also contains the essential information needed to specify a working model of the business process. This information can be extracted and used to drive services and simulate operations to gain further insights concerning the operational parameters of a business. The model given in Figure 2.25 is given here as an example.
The following code was been extracted from the Graphml file that corresponds to Figure 2.25. In this datafile, BPMN elements are given as nodes and the connections between them are represented as edges. The swimlines are calculated from the vertical position of the elements on the graph.
<graphml>
<pool height="270.5" width="448.5" x="49.5" y="93.9">
<label>Order processing</label>
<rows>
<row height="86.0" id="r0">Accounting</row>
<row height="81.0" id="r1">Sales</row>
<row height="80.0" id="r2">Warehouse</row>
</rows>
</pool>
<nodes>
<node id="n0" type="ACTIVITY_TASK" height="55.0"
width="85.0" x="205.5" y="133.0">
Cash cheque</node>
<node id="n1" type="ACTIVITY_TASK" height="55.0"
width="85.0" x="278.05" y="218.0">
Process order</node>
<node id="n2" type="ACTIVITY_TASK" height="55.0"
width="85.0" x="340.5" y="303.5">
Package item</node>
<node id="n3" type="EVENT_START" height="30.0"
width="30.0" x="145.5" y="145.7">
Prepaid order recieved</node>
<node id="n4" type="EVENT_TERMINATE" height="30.0"
width="30.0" x="455.5" y="315.5">
Items sent</node>
</nodes>
<edges>
<edge id="e0" source="n3" target="n0"></edge>
<edge id="e1" source="n0" target="n1"></edge>
<edge id="e2" source="n1" target="n2"></edge>
<edge id="e3" source="n2" target="n4"></edge>
</edges>
</graphml>
Most legacy business applications were laboriously designed and developed to support a specific application. Early BPM systems were designed to handle a multiple queues of active tasks related to open transactions. Today, BPM is used not only to support individual transactions, but also to manage the work and divide the workload. As such BPM applications can control the flow of work and how that work is done or should be done. This includes workload assignment, workload tracking, workload balancing, workload aging, error identification, performance management, reporting and more. By automating the BPMN, each stage of the process can be monitored, simulated and studied. The following figures depicts simulated data for each stage during the processing of 100,000 prepaid orders from local, regional and international clients.
## -- Attaching packages --------------------------------------- tidyverse 1.3.1 --
## v ggplot2 3.3.5 v purrr 0.3.4
## v tibble 3.1.6 v dplyr 1.0.7
## v tidyr 1.2.0 v stringr 1.4.0
## v readr 2.1.2 v forcats 0.5.1
## -- Conflicts ------------------------------------------ tidyverse_conflicts() --
## x dplyr::filter() masks stats::filter()
## x dplyr::lag() masks stats::lag()
From this simulation, it is clear that turn around time depends on the speed of the mail service and the clearance of bank checks which depends on the location of the client. Local order processing and packaging is similar regardless of the destination for the packages. The total time provide useful information for SWOT analysis to improve services for clients at different locations.
In production systems, BPMS is a suite of tools that form an environment for running and managing the Business. The business process models are built of BPMN symbols which represent tasks, decisions, and automated actions. Worker logs into an BPM application system where the models and rules are executed. Because each process is recorded, the BPMS allows for tracking progress, assessing performance, updating a dashboard, and developing regular reports.
knitr::include_graphics("images/BPM.png")
With recent advances in Big Data analytics and visualization, business computer systems have been adjusted to collect extensive information to better understand the context and nature of business. These data can be subjected to data mining and artificial intelligence to gain insights to improve operations, reduce costs and improve customer experience. To this end, standards have emerged to help determine the level of sophistication of BPMN services and software.
Level name and description | Management |
---|---|
Level 1: Aware– Processes are manages within the individual unit or department | Minimal cross-functional participation |
Level 2: Defined– Process documentation is owned and updated; shared understanding across business groups | Informal process planning |
Level 3: Aligned– Processed are owned with common goals and objectives across broader business unit. | Collaboration on process change |
Level 4: Integrated– Processes managed with single owner and common vision | Process objectives aligned and continuously improved |
Level 5: Optimized– Process managed consistently at the enterprise level | change is simulated across the end to process |
Joget was started as the open source Joget Workflow project on SourceForge in 2009. Initially Joget was designed as a workflow engine for business process automation. Since then, Joget has evolved into a full-fledged application development platform in 2011 with the release of Joget Workflow v3. Joget DX (Digital Transformation) became the successor to Joget Workflow as it represents a major redesign to combine the best of business process automation, workflow management and low code application development in a simple, flexible and open platform. The resulting web app is device aware and can be integrated in the business operations.(Joget Community 2017)
Joget was designed to support rapid application development, Business Process Automation and Workflow Management. Using visual programming, users can build, modify, run and maintain apps. Plugins allow developers to extend and integrate the platform. The resulting apps are integrated with databases that provide operational information needed for process analytics and optimization. In addition, the work flow engine and the processes can be monitored in dashboards to facilitate the management of the business.
The Joget editor supports a subset of the BPMN symbols that can be linked together in swim lanes that represent the work units within the business. This tool provides an effective visual programming environment for linking forms, functions, events and processes together in a graphic that can be adjusted and updated..
The combination of development tools with the run time server helps to streamline the process of developing and deploying the app that supports the workflow. The following stages represent the most efficient and effective way to develop Joget apps. An concise example of Joget app development is available online:4
Establish the New App: creating a name and account for it on the Joget server. At the same time, it is important to choose appropriate values for limits on cloud servers resources, namely bandwidth, CPU load and size of active memory.
Design the Forms: use the form builder to create the HTML forms that will be used to capture and display critical information and decisions related to a workflow. The data fields of the form also creates corresponding fields in the app databases and links to control variables that will be used to control the workflow.
Develop critical Lists: use filters of the databases to create process related data sets that hold the options, inventory of products, role of individual workers, timing, etc.
Design the User view: provide the help screens, navigation and links to forms.
Design the workflow: specify the functions, variables, and decisions that govern progress through all the tasks in a work flow.
Joget also supports engine monitoring and workflow dash-boarding to provide insight as the status of the business and the early warning of anomalies that would impact business.
BP Model simulators allow process designers to test their model. The general approach is to use a task generator that creates and processes tasks at rates equal to the measured performance in the work place. Data is collected to measure the rate of utilization and work flow at all stages of the model in order to identify issues like bottlenecks and irregularities in the work loads of individual employees. Simulation test are usually conducted in 3 phases:
Stage | Description | Purpose |
---|---|---|
Modeling | Simple visual model of the business process |
|
Simulation | Run task generation and execution according to measured performance |
|
Analysis | Creates a dashboard of performance indicators |
|
Online services such as http://www.bpsimulator.com provide a useful means for testing a process design through the display of the model, test results dashboard and performance indicators for each stage of the process. The design is actually a translation of a BPMN model into a Event-driven Process Chain (EPC). However, additional key details are required to quantify the capacity and number of resources available. These details are saved in the attributes for each node as shown in the next section.
The BPSimulation uses a subset of BPM objects to specify a working model that could be used to test a model for potential bottlenecks.(Business Process Simulator 2018)
Objects of BPSimulation |
---|
|
Links are a means to depict relationship of one object from another. All objects in the model must have at least one link to another object. Creating a link between objects requires double-clicking on the source object and then clicking on the recipient object. The arrowhead of the resulting link will point to the the recipient. While some objects like Functions and Events can give rise to other Functions and Events. However, most BPSimilation objects can only impact or limit functions, as shown below the diagram:
With this extra data it is possible to simulate a day at work. The statistics collected help to pinpoint the bottlenecks and limiting resources. The system provides a dashboard to summarize the results.
The model uses generators to simulate the volume of the demand for needs. Data comes from the functions and key check points of the model that monitor the workflow that passes these nodes. The executor nodes determine the capacity of the system. Performance is varied by changing the number of individuals in the role of executors.
Starting with the BPMN of a simple model of the processes behind getting gas at the petrol station. The process is multi-stage starting with customers driving and waiting for a gas pump to become available. After fulling up the tank, paying the bill and leaving the gas pump. The problem is that the pumps are slow and limited in number.
The results in a simulated model within the BPSimulator.
The simulation was run in the scenario of only have one cashier, one attendant, one gasohol pump, one diesel pump and 290 customers who arrive.
Starting | Ending | Number | Hourly Rate |
---|---|---|---|
6:00 | 8:59 | 90 | 30 |
9:00 | 14:59 | 90 | 15 |
15:00 | 18:59 | 90 | 25 |
19:00 | 20:00 | 20 | 10 |
As shown in the dashboard, the average queue is 16 min.
Exercise: Improving performance of a petrol station
Using the sample model of a petrol station, determine a proper mix of men and machines that will reduce the queue time to less than 2 mins at the minimum cost.\(\blacktriangleright\) Exercise 2.1: Business analysis with BPMN
Describe how you would use BPMN to analyze the following common business problems. Specify the model and methods you would use to highlight and study the problem.
This chapter will explore the network of frameworks, systems and applications that comprize the fabric of e-Business. In this study, each software component will be introduced by its context, requirements and examples of current open-source solutions.
The purpose of Enterprise Resource Planning (ERP) is to harness business data in a way that allows integrated management of core business processes. This business-management software is typically designed as a suite of integrated applications which collect, store, manage, and interpret data from a wide range of business activities. By managing the critical information of all business processes, ERP provides opportunities to support data-driven management decisions is such areas as cash flow, resources usage, inventory of raw materials, and the status of business commitments such as project milestones, orders fulfilment, purchase order payments, and staff compensation. The system facilitates the sharing of data across divisions of the business, such as manufacturing, purchasing, sales, accounting, and human resources.
Project Fedena was conceived as a project to easily manage all campus records of schools and campuses and was implemented as a ERP system written in Ruby on Rails. The project was originally developed at Foradian Technologies but is now maintained by the open source community.5
An online store attempts to match or exceed the level of customer support provided in brick and mortar stores. However, the personal distance and anonymity of the internet makes this goal harder to achieve. However, online stores like Amazon, Lazada and Alibaba owe their success to their ability to create trust among their community of buyers and sellers. These companies act as arbitrators between customers and vendors, reducing the risk of doing business between unkonwn parties. B ecause trust is so essential to business transactions, many internet shops began as product listings on one of these large marketing sysems, or as a online service to the customers of their brick and mortar chains.
Marketers have long studied the process and requirements of customers before, during and after making a purchase. In a market place that abound in choices, customers must choose between the multiple alternatives. Shopping whether in the physical world or online is at best weak attempt at making a rational decision between the choices, because complete analysis needed to identify the true optimal decision is increditably complex. (Simon 1955) However, the urgency of the need drives the buyer to settle for an apparent good choice. However, the internet changes this by providing more information on which to base a rational decision. (Dewey 1910) observed 5 stages in a purchasing decision. A sixth stage has been added here to cover the financial transaction constraints imposed by online monetary systems.
Remote Payment Methods Used in Thailand
Credit card and bank fraud so common in Thailand that most banks and credit card companies do not provide the quarantees for purchases and other consumer protection that conhsumers in other countries enjoy. In essence, Thai financial firms assume no risk and carry no insuraNCE against bank and credit card fraud. Despite the barriers against credit card usage, there are online payment systems used for e-commerce in Thailand as shown in the following table.
Type and example | Benefits | Drawbacks |
---|---|---|
Credit card | Convenient, international standard | Restricted trade with high service charges |
Bank transfer | Instant access to bank account | Requires an ATM or online banking, Security of Bank account identity is a problem |
ATM | Convenient, multilingual support for the masses | Requires a ATM machine or POS ATM link |
Online payment company: Paypal, Alipay | Convenient online financial service that is linked to a bank account | High service charges (5-10%) of transaction |
Payment service 7-Eleven, Thailand Postal Service | Local cashier service assistance that accepts cash and provides a physical receipt | The payment collection agency charges the vendor a commission for this services; Physical receipt could be forged |
Mobile phone account credits AIS, TOT, True Call | Instant payment by cell phone from stored value in the account | The transfer can be done from anyone knowing the password for the mobile phone or having a SIMM card reader |
Electronic wallet | Instant payment by optical scan at point of cell | Requires prepayment, tying up funds. Uses QR codes for authentication |
Bank Quick Pay | QR code link to banking services | Requires access to the internet |
Cash on delivery Lazada | Assurance that goods will not get lost | The receiver can refuse the goods returned could be damaged in shipment |
Cryptocurrency: BitCoin | Purchases and exchanges are encrypted and handled online | The market value is not pegged to that of physical currency |
The following sections will explore the key factors needed in evaluating online business platforms in order to measure the value of investments in online technologies adapted from a guide from a leading estore software vendor. (Magento Inc 2019)
An outline of the business direction helps to determine the level of functionality that a new platform should provide. It would help to know the development plan and how the new services will be rolled out. This would include knowing what products, services and regions would be targeted in each phase of the roll out. It is also important to know the long term plan and role for the new platform.
As customers service expectations will shift over time, new platforms must be agile enough to add on functionality that keep paces with consumer trends. The system should it possible to implement and deploy updates with mininal effort and downtime.
In a multiplatform, multichannel market, systems need to support not only B2C and B2B transactions, but also provide consistent and effect post-sales customer support across the full spectrum of consumers. To provide a seamless customer experience, some services may need to work as embedded functions of websites branded under the name of distributors. Expanding support for branded websites increases opportunitys to enter new markets quickly and capitalize on emerging revenue opportunities but can create a hugh maintenance workload especially if the standalone sites have heavy requirements for specialized content management for each website.
Online assets should be managed providing a seamless customer experience that does not stop at checkout. Customer support and satisfaction during and after checkout is key to transforming casual shoppers into loyal brand advocates. The goal is to make the customer smile at all stages of a buyer’s journey. To this end, businesses need systems that provide flexible customization that creates a memorable end-to-end customer experience both during and after the transaction.
Design decisions based on user behavoir and preference are more likely to succeed in creating an user experience condusive to business. However this data must be gathered, measured and analyzed from the user data collected on the website. Being able to link purchase behavior to user activities on the website creates new insights as to improve the effectiveness of online services. Linking this data to analytic functions will help to identify strategies to acquire, convert, and retain more customers.
International marketing creates new challenges for building and operating web-based services. These include the need for multiple translations of the content, support for multiple currencies, cultural adjustments in the selection of the photographs and graphics, and bandwidth requirements. Platforms being considered for a role within a global service should be connected to a reliable, global cloud infrastructure to ensure peak system uptime and scalability. The cloud connection ensures quick and reliable access their webstores. Uninterrupted access worldwide translates into helps to create a world-wide network of statisfied customers.
Ongoing site development and maintenance of online services brings a constant stream of new content and services to the commercial platform. To ensure uninterrupted customer experience, eCommerce platforms need a means for testing the changing and publishing that will not take the site offline. In addition, embedded services should have a sandbox version for partners to test with their websites and to become familiar with the functions.
Your satisfaction with a new eCommerce platform will be reflected in the quality of content customers experience on the front end. A credible commerce platform will offer a demo version so users can thoroughly explore the administrative interface and other back end functionality. Get a feel for a potential platform by walking through do common tasks such as processing orders, uploading / publishing content, and adding / editing inventory.
Development, licensing and subscription costs for a webservice can add up. Poorly tuned cloud services will end up wasting money on unused capacity. Licensed use of copyrighted material must be carefully monitored to get the most benefits these kinds of images.
PayPal: Because PayPal is the most well-known payment processor, using them conveys a sense of trust to due to PayPal’s brand. Thus, paypall is a basic option on all website builders provide. To increase the security of PayPal transactions, the final confirmation of purchase is actually done on the Paypal website and shoppers actually have to leave the shopping site to make the payment. If communications it lost during these redirections, the order or the payment appears to get lost. Paypal works through a local account on Paypal. It takes 5 – 7 business days to transfer funds from PayPal to a bank account.
Stripe: Stripe is a payment processor which allows you to deposit money directly into your bank account. However, there is a 7-day holding period while transfering money directly into bank accounts, mainly to cover situations where customers have complaints or chargebacks. The application process for a Stripe account is fast and painless, with most sites up and running within a day. The entire check out process, from beginning to the end, shoppers remain on your site the entire time and the check out cart is branded as your own shopping cart. This helps preserve branding and redirecting your shoppers to another site. However, Stripe is not yet available to all countries around the world. They are available to merchants in the US, Canada, Australia, some countries in Europe, and some countries in Asia .
Square: Square is a very fast growing payment processor that also owns Weebly the most popular open-source eCommerce platform. Square is primarily a credit card processor that plugs into a smartphone so people can make payments with their mobile phones. Funds are deposited into the business bank account in 1 – 2 business. The entire checkout process from the beginning to the end takes place on the business website and is branded as your own shopping cart. However, this service is available to only to merchants based in the US, UK, Canada, Australia or Japan.
WeChat Pay: WeChat Pay started off as a function of the popular instant messaging app WeChat. It was designed to help people to “instant message” payments. Through WeChat’s partnership with banks, WeChat users could use the WeChat Pay’s facility to pay bills, buy groceries, and pretty much anything using their phones. WeChat Pay even targets those who want to send monetary gifts to friends and family using its “Red Envelope” or “Ang Pau” feature. WeChat Pay was designed to be integrated into the social engagement system of WeChat, making payments as easy, if not easier than using cash. WeChat Pay only supports Smartphones and supports 9 world currencies.
Alipay: Alipay was created to help customers on the Alibaba website transfer funds and close their transactions. Alipay specializes in business catering to both the buyers and the sellers helping them to complete the transactions faster. Alipay has evolved to provide payment not only for products within Alibaba, but also for other things as well such as bills and groceries. Alipay supports all smartphones and desktops and transactions in 18 world currencies.
Wallet
ATM
Debit
Money transfer
Credit
Every person is unique and represents a unique set of strengths and weaknesses. At the same time the every job requires different set of characteristics. The role of HR is to attempt to collectin information meant to measure and ascertain how suited an applicant is for a job opening. In theory the goal is to play the right person in the job. However as implied by the following word cloud, fitness of applicants for a job has many dimensions and is hard to measure accurately.
Exercise: Employee selection criteria
The following are redacted from ads for IT jobs in Chiang Mai posted on LinkedIn in 2018. For each of the job descriptions propose the top 4 characteristics that should be used to identify a suitable candidate:
Research has shown that the most successful teams were made up of a diverse mix of behaviours, especially when working collectively within a team. As people learn to work together they tend to gravitate to a particular team role which was defined by Dr Meredith Belbin as “A tendency to behave, contribute and interrelate with others in a particular way.” The concept was derived from a study of factors leading to success or failure of teams competing in Business Games at Henley Management College, England. Managers taking part in the exercise were given a battery of psychometric tests and put into teams of varying composition. Eventually, 9 different clusters of behaviour were identified as underlying factors that contributed to the success of the teams. Successful Teams collectively covered all nine Belbin Team Roles.
The concept was derived from a study of factors leading to success or failure of teams competing in Business Games at Henley Management College, England. Managers taking part in the exercise were given a battery of psychometric tests and put into teams of varying composition. As time progressed different clusters of behaviour were identified as underlying the success of the teams. These successful clusters of behaviour were then given names. Hence the emergence of nine Team Roles shown with the distribution among British managers: (Fisher, Hunter, and Macross 1998) This doesn’t mean that every team requires nine people. Most people will have two or three Team Roles that they are most comfortable with. Team Roles develop and mature with experience and conscious attention. Different Team Roles may come to the foreground in response to the needs of particular situations. The key to successful HR placement is matching the nature of the worker with the requirements of the job.
As individuals generally gravitate for 2-3 roles depending on the situation, it is possible to have a balanced team smaller that 9. Team Roles develop and mature with experience and conscious attention. Different Team Roles may come to the foreground in response to the needs of particular situations. The key to successful HR placement is matching the nature of the worker with the requirements of the job.
These successful clusters of behaviour were then given names. Hence the emergence of nine Team Roles shown with the distribution among British managers in the table below.(Fisher, Hunter, and Macross 1998)
Thinking-Oriented | Action-Oriented | People-Oriented |
---|---|---|
Plant: 3.7% | Implementer: 11.4% | Resource Investigator: 33.2% |
Specialist: 0.8% | Completer Finisher: 3.6% | Co-ordinator: 26.2% |
Monitor Evaluator: 0.5% | Shaper: 2.3% | Teamworker: 18.2% |
William Fleeson and M. Patrick Gallagher, 2009. The Implications of Big-Five Standing for the Distribution of Trait Manifestation in Behavior: Fifteen Experience-Sampling Studies and a Meta-Analysis.J Pers Soc Psychol. 2009 Dec; 97(6): 1097–1114.
The big five personality traits is the most common model of personality testing used in academic psychology.The big five comes from a statistical study of responses to queries about personality that attempt to describe and summarize the nature of an individual. This study involved many samples from all over the world and the general result is that, while there seem to be unlimited personality variables, five stood out from the rest in there ability to explain personalities and became known as the Big 5: extraversion, neuroticism, agreeableness, conscientiousness and openness to experience. While there are many ways to the Big 5 factors, the most popular was developed from the Big-Five Factor Markers from the International Personality Item Pool.(Lewis R. Goldberg 1992) Subsequent research(L. R. Goldberg et al. 2006) has been focused on developing this free instrument consisting of 50 questions(Lewis R. Goldberg 2019) into a standard measure of the big 5.(Schmitt et al. 2007) This questionnaire has been translated into hundreds of languages, including Thai.(Yomaboot 2014)
The Big 5 Markers |
---|
1. extraversion: outgoing |
2. neuroticism: intraspection |
3. agreeableness: willing to get along |
4. conscientiousness: ability to complete |
5. openness to experience: curious to learn |
The 16 personality types that were developed by Isabel Briggs Myers and Katharine Cook Briggs, which was built on the work of Carl Jung in the early 1900s. Based on the 4 dimensions of Carl Jung’s theory of personality types:
Dimension | Extremes |
---|---|
Energizes | Extroversion (E) vs Internal (I) |
Perceives information | Sensing (S) vs Intuitive (N) |
Decision making | Thinking (T) vs Feeling (F) |
World view | Judging (J) vs Perceiving (P) |
Myers Briggs Test has been administered to a large number of people helping to validate the value of this instrument for a number of applications. Generally successful workers tend to gravitate to specific careers based on their personality profile as shown in the next sections. (Tieger, Barron, and Tieger 2014)
Analysts | Diplomats | Sentinels | Explorers |
---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
By studing expat workers work preformance in large multinational corporations, Hofstede was able to identify key cultural differences in the way people approach work. (Hofstede, Hofstede, and Minkov 2010)
Cultural dimensions |
---|
Power distance: perceived ability to make a difference |
Individualism vs collective: tendency to think in terms of I vs We. |
Gender balance: masculinity vs femininity |
Advoidance of Uncertianty: tolerance of risk |
Long term orientation: perception of urgency |
Indulgences vs restraint: attitude towards acquired wealth |
Human skills are key to thriving in a virtual-first world. Organization, time management, mental health resilience, and communication are just some of the skills that are essential to making a remote environment feel productive, efficient, and collaborative(Doyle 2021)
“Critical thinking, persuasive writing, communications, and teamwork are not fluffy, nice-to-have value-adds. They’re hard-won and rigorously maintained abilities that are better referred to as power skills.”
Recruiters, hiring managers, and human resources professionals aremay assess your soft skills through situational and behavioral interview questions. For example, you may be asked to describe a situation when you worked as a part of a team to assess whether you’re a team player and how well you’ll work with your future co-workers.
Marketable Soft Skills | |
---|---|
|
|
Performance Appraisal is the systematic evaluation of the performance of employees in order to understand the abilities of a person for further growth and development. (Management Study Guide 2018) Performance appraisal is generally done in systematic ways which are as follows:
Table: Objectives of Performance Appraisal
Reasons for Performance Appraisal |
---|
|
It is said that performance appraisal is an investment for the company which can be justified by following advantages:
HR data generally holds a wealth of information that can be used to predict employee retention, turnover and satisfaction. However this information must be mined from the data by applying data science and machine learning techniques. While numerous commercial HR systems exist in the market place, there are common issues that HRM software needs to address. In this section, we will use a popular open-source HRM solution to study this.6
Topic |
---|
- Employee retention statistics |
- Job performace appraisal and incentives |
- Employee development |
- Job-Employee fit: Right person for the job |
- Payroll, benefits and overtime |
**Exercise: Product Review: OrangeHRM Human Resource Management System
Login as admin to the online demo and determine the amount of information that is management by this system by answering the following for the Webmaster of the corporation:
Login as employee and determine what information is available to employees and what updates they can make online.
What are the benefits and dangers of having such information online?
As the data currently help by HR Managment systems is subjected to analysis by AI and machine learning, it is expected that HR will become far more effective in the follow areas:
Applicatons of AI in HR |
---|
- Determining which employees are most likely to leave |
- Matching employees to appropriate jobs within a company |
- Managing collaboration between online and onsite employees |
- Integrating robots into as coworkers in the workplace |
- Leveraging diversity and inclusiveness in the workplace |
Exercise: Prediction of Employee Churn
This exercise was adapted from a 2017 Kaggle Competition. (Kaggle 2017) Apply trend line analysis in Excel on the data in the training set to develop a model to predict the employees in the test set who are most likely to resign. The following files are provided to you.
Data fields of Kaggle Competition |
---|
- id - Anonymous ID number for each employee |
- satisfaction - Employee satisfaction level |
- last_evaluation - Last evaluation score |
- number_project - Number of projects assigned to |
- average_monthly_hour - Average monthly hours worked |
- time_spend_company - Time spent at the company |
- work_accident - Ever had one (1: Yes, 0: No) |
- left - Whether or not employee left company (1: Yes, 0: No) |
- promotion_last_5year - Been promoted recently (1: Yes, 0: No) |
- sales - Department name |
- salary - Salary category |
\[Productivity = \frac{Output}{Input}\]
\[Efficiency = \frac{100 \times ActualOutput}{StandardOutput}\]
Crazy processing machine 2018 | Hydroponics Factory https://www.youtube.com/watch?v=7sxrLxr6VpA
Krispy Kreme Donut Machine https://www.youtube.com/watch?v=Rn0XsW2l4d4
Fulfillment Center: How Amazon Receives Your Inventory https://www.youtube.com/watch?v=dAXdeqcHBp4
The Gigantic Grocery Warehouses Built like Living Organisms https://www.youtube.com/watch?v=_psDSX-7P1s
Solver. Optimizing
ARIMA and forecasting
plot(USAccDeaths,xlim=c(1973,1979.6),main="US Accidental Deaths",lwd=2,
col="blue")
(fit <- arima0(USAccDeaths, order = c(0,1,1),seasonal = list(order=c(0,1,1)), delta = -1))
##
## Call:
## arima0(x = USAccDeaths, order = c(0, 1, 1), seasonal = list(order = c(0, 1,
## 1)), delta = -1)
##
## Coefficients:
## ma1 sma1
## -0.4304 -0.5526
## s.e. 0.1228 0.1785
##
## sigma^2 estimated as 99355: log likelihood = -425.44, aic = 856.88
f = predict(fit, n.ahead = 6)
polygon(c(1979+ (0:5)/12,
rev(1979+ (0:5)/12)),c(f$pred+2*f$se,rev(f$pred-2*f$se)),
col="#ff99ff",border="#ff99ff")
lines(1979 + (0:5)/12,f$pred,col="purple",lwd=2)
Use of market basket analysis:
Retail. In Retail, Market Basket Analysis can help determine what items are purchased together, purchased sequentially, and purchased by season. This can assist retailers to determine product placement and promotion optimization (for instance, combining product incentives). Does it make sense to sell soda and chips or soda and crackers?
Telecommunications. In Telecommunications, where high churn rates continue to be a growing concern, Market Basket Analysis can be used to determine what services are being utilized and what packages customers are purchasing. They can use that knowledge to direct marketing efforts at customers who are more likely to follow the same path. For instance, Telecommunications these days is also offering TV and Internet. Creating bundles for purchases can be determined from an analysis of what customers purchase, thereby giving the company an idea of how to price the bundles. This analysis might also lead to determining the capacity requirements.
Banks. In Financial (banking for instance), Market Basket Analysis can be used to analyze credit card purchases of customers to build profiles for fraud detection purposes and cross-selling opportunities. Insurance. In Insurance, Market Basket Analysis can be used to build profiles to detect medical insurance claim fraud. By building profiles of claims, you are able to then use the profiles to determine if more than 1 claim belongs to a particular claimee within a specified period of time.
Medical. In Healthcare or Medical, Market Basket Analysis can be used for comorbid conditions and symptom analysis, with which a profile of illness can be better identified. It can also be used to reveal biologically relevant associations between different genes or between environmental effects and gene expression.
\[Support(X) = \frac{t_{X}}{t_{(all)}}\]
\[Support(X,Y) = \frac{t_{(X,Y)}}{t_{(all)}}\]
\[Confidence(X,Y) = \frac{Support(X,Y)}{Support(X)} = \frac{t_{(X,Y)}}{t_{(X)}}\]
\[Lift = \frac{Support(X,Y)}{Support(X) \times Support(Y)} = \frac{\frac{t_{(X,Y)}}{t_{(X)}}}{\frac{t_{(Y)}}{t_{(all)}}}\]
\[Conviction = \frac{1 - Support(X)}{1 - Confidence(X,Y)}\]
\[Leverage = Support(X,Y) - Support(X)\times Support(Y)\]
This chapter will explore emerging trends that are impacting the way e-Business is developed and practiced.
Data-driven management has become an important part of the business world. With the falling cost of bandwidth, sensors, and memory it has become cheaper to acquire, transmit and store large qualities of data giving rise to the introduction of Internet of Things, Sensor networks, customer experience and other data gathering techniques. As a result, the rate of data acquisition has been doubling approximately every 14 months. This massive increase in volume of data has created new technologies to improve the stragetic value of the data collected. The most common of these emerging technologies are listed below.
Data dashboarding: This web or mobile application gathers and displays the status of key data parameters of an organization in real time. This visualization of the data provides early indications of changing conditions, faults, and trends and helps managers to focus on the most significant changes in order to handle issues before they grow into large costly problems.
Big Data: This collection of technologies changes the way that data is handled in order to keep pace with the volume, velocity and variety of the data in order increase the value and accuracy of the information derived from multiple streams of data. Because data is arriving faster than a single CPU can handle, techniques like data/event triggers, parallel processing, and data compression are often used to reduce the time and computing resources needed to process an input stream.
Data Science/Analytics: This is a protocol that establishes a workflow to process data in a way that is efficient and effective. The process starts with starting with data acquisition and data wrangling to insure that the data is normalized to reduce the influence of data gaps and outliers on the information generated from the data. The process goes on to use data visualization to explore data to derive models which can be verified statistically and by random subsets of the data stream.
Machine learning (ML) and Artifical Intelligence (AI): There are numerous mathematical transformations that can sort through values from an input stream to reveal patterns that can classify unprocessed data or relate the data to other objects and events. This information is often valuable in determining the next most appropriate step. The process is mostly self-adapting and data-driven and can build relationships from previous data and experience. The resulting output is tested against previous data and system makes small incremental changes to improve accuracy and performance. As the relationship between input and output can be quite complex, this technology can often discover creative solutionsfaster than human programmers.
There are now extensive libraries for AI functions even in popular scripting languages like Python, Ruby and JavaScript. Amazon, Google and Oracle have invested in creating cloud services which shift through data to create practical applications. For example, potato chip manufacturers uses video streams of 20,000 images per sec to select between potato chips that can be packaged and dirt, debris and broken or burnt chips that must be blown off the sorting table and discarded. The post office uses optical scanners to read handwritten and printed zip codes and sort the mail by destination. Airlines use this to schedule sufficient staff to check-in passengers. Travel agencies use this to capture information in a a telephone conversation to make reservations for flights and hotel bookings. Banks are using speech bots to communicate with bank clients that phone into their call centers. Even Google has used this technology to reduce the size of their English speech to text conversion matrix from 6 GB to 200KB. ML and AI are already changing the way people and cars interact and recent developments suggest that driverless road vehicle may be less than a decade way. These developments seem to confirm the 2017 prediction that “By 2029, computers will have human-level intelligence.”(Kurzweil 2017)
These developments give IT Departments new roles and new opportunities to help organizations to achieve their vision and mission. At the same time, techology updates are now occurring in 2 year cycles forcing IT Staff to constantly retrain and upgrade their skills. As conditions and technology continue to change at increasing rates, accurate and efficient data handling and effective communication of the results of analysis become essential skills for IT professionals.
A blockchain is a system where the details of each transaction are added to an authenicated copy of a digital record. Before any update is made, the working copy is checked against all copies stored in the network. An immutable cryptographic signature is added to the updated record which is then encrypted, and distributed across the entire network of servers within the blockchain system. Thus, blockchain forms a decentralised database managed by multiple servers which are very secure against attack and alteration. However, this duplication comes at a cost of increase bandwidth required for each transaction.
Because the records maintained in a block chain are self-verifying and taper-proof, block chains can be used to register ownership. As ownership changes hands, the individual records of the block chain change be verified, updated and digitially signed in a secure manner. This technology has been applied to protecting scarce digital commodities in the following ways:
Fungible assets: Every item of this type of asset can be traded in the same manner and value. Cryptocurrency are a good example of this, because each unit has an unique identifier which is generated by a complicated digital mining process that ensures that the number of units are finite and new units are introduced slowly into the market. However, the market value is the same for all units of that cryptocurriency. Thus, all Bitcoins are bought and sold on the same market, irregardless of history or date of origin.
Non-fungible tokens: The block chain record is used to identify an unique item or set of parameters as well as the owner. These block chain records are used as proof of ownership for artwork, stocks, bonds, and land deeds. This technology allows for public display of tagged photographs and artwork while retaining ownership and copyrights as the digital tags within the work trace back to the block chain. The Thailand Land Department has been experimenting with this in order to better manage land titles and track ownership of land within Thailand. Cryptokitties uses NFT to record an unique set of parameters that describe an artistic rendering of a cat. In the current version of cryptokitties, owners can link up their cryptokitties to breed another generation of cryptokitties that can be auctioned off.(CryptoKitties 2017) Digital Academic Credentials like Europass are used to secure and distribute certified copies of the diploma, transcript and syllabus description of courses and activities that a student acquired during their time at an university. Most NFT have online wallet services that allows users to store, view, and distribute the content associated with the block chain record.
The Crazy Expensive CrytoKitties
CryptoKitties is a “blockchain game.” It involves collecting, trading, and breeding CryptoKitties with “cattributes.” These kitties are actually tokens stored on a blockchain. A CryptoKitty is a unique digital asset that is stored as a token stored on the Ethereum blockchain.(The CryptoKitten Team 2018) Each CryptoKitty has a combination of cattributes that make it unique. These features come together to give each CryptoKitty a unique look. Some CryptoKitties have mewtations, which are rare cattributes. These CryptoKitties can be traded, sold, and purchased like any other digital asset. They can also be bred with another CryptoKitty to create a new kitty.
On the surface, CryptoKitties is just a game that involves collecting digital cat pictures, breeding them to make new cat pictures, and trading cat pictures. The first CryptoKitty was born on December 2, 2017. Since then, a new Generation 0 cat was born every fifteen minutes. In November 2018 (one year after the game launch), the last Generation 0 cat was born. All new kitties will be produced through breeding after that point. As collectibles, they have rarity: each CryptoKitty is unique. The most expensive CryptoKitty ever purchased sold for USD $110,707 to a willing buyer. People have spent over USD $24 million on CryptoKitties, and the project has received USD $12 million in venture capital funding. (Hoffman 2018)
Open source development of software is nothing new. In 1983, Robert Stallman wrote the core concepts that would eventually become the GNU Manifesto.(Stallman 1985) as an means to initiate a movement committed to creating and distribution open and free software. The result was the Four Freedoms of the Free Software Foundation,(Free Software Foundation 2018) which are shown in Table 4.1, and have become the standard set of rights granted to users of open-source software.
Description |
---|
Freedom 0: The right to run the software. |
Freedom 1: The right to study the source code, understand how the software works, and adapt as needed. |
Freedom 2: The right to redistribute copies as needed. |
Freedom 3: The right revise the program, and make improvements available to the public. |
From this movement grew numerous projects to create important drivers, software tools, applications, programming languages, and even operating systems like Linux and Android. Open source provide the opportunity for collaboration between professionals in universities and industry to work together to create tools. Companies have often found that collaborative participation in open source projects is a cost-effective way to create solutions that establish an open standard and solution for key issues. The international support for open source development is often larger that the indiguous software industry of most developing countries.
Although there is little involvement of IT Professionals in Thailand in open source development, the existence of open source software helps to check the rising cost of commercial software and services. Quality open solutions has been an effective deterrent to the black market for pirated software which would counter efforts of the Thai government to jump start a viable software industry in Thailand. Many software houses in Thailand have their origins in adapting a fork open-source codebase for local use in the Thai language. However, these forks quickly because obsolete as their changes were unable to support newer versions. Thai software houses have been slow to discover the advantage of building on open source solutions over writing new code from scratch or attempting to market an unsupported fork in the open source codebase.
The Thai IT industry has discovered that engaging in the development and adaptation of open source software requires new skills and a new relationship between the software developer and the software product. In the past, the developer had total freedom to implement software any way they wished. Today, open source projects involve hundreds of developers and thousands of testers representing different interests and end-user groups. These communities operate according to open standards and coding guideline to facilitate communication and collaboration. In addition, procedures are in place to test and review all proposed changes before the new ideas are added to the main code base. The reward for developing the discipline to conform to such standards is that the changes made will find support in all future versions and builds of the software. In this way, the Thai IT industry is actively embracing modern software engineering principles and adjusting to conform to international standards for open source and open standards.
Thailand 4.0 is an economic development plan that aims to correct key economic issues that resulted from past economic development plans which had placed major emphasis on agriculture (Thailand 1.0), light industry (Thailand 2.0), and infrastructure and advanced industry (Thailand 3.0). While the previous development plans addressed critical issues such as food production and distribution, unemployment, energy and transportation infrastructure, they allow for the emergence of 3 concerns that threaten the growth of a viable and sustainable future in the open-market of the exploding global digital economy:
The Thai government has committed itself to invest into several areas of innovation that would stimulate the economy and provide new opportunities for entrepreneurs. The key areas of investment are robotics/internet of things, agriculture/biotechnology, biofuels/biochemicals and smart electronics. (Thailand Ministry of Commerce 2016) The intention is to create the environment for transformation and resulting sea-changes in such areas as farming, business development, development of skilled labor and technological development. (Royal Thai Embassy 2016) The four key performatnce objectives (KPO) of this strategy are listed below:
The businesses stimulated by this plan will increase the activities of IT services. The data collection required to measure KPIs will significantly add to the reporting requirements imposed on businesses and organizations. In addition, entrepreneurs will need to carefully weight the economic incentives offered against the actual costs and potential risks. In addition, this will encourage the growth of new supply chain networks that will allow entrepeneurs to develop and experiment within local markets while growing capacity to build and distribute products for regional, national, and global markets. Thus, businesses and organizations will increase the dependence on their IT professional to track performance, manage assets, and suggest appropriate measures to ensure right-sizing of the budgets and labor force compatible with sustainable growth.
The introduction of personal computers were popular in the 1970’s and early 1980’s because they provided convenient and effective computing power independant from the services of centralized computing facilities. However, in the 1990s, remote users were given real time access to networked memory stores, databases, and web servers. By 2000, server farms provided online, in-cloud services to enhanced the computing experience of remote users by sharing both massive amounts of memory and immense computing power. Companies like Dropbox and Bitbucket provide online memory services for sharing massive amounts of data and media products. Digital photo printing services like Snapfish allow i-phone users to automatically turn their photographs into printed coffee cups, tee shirts, calendars and other such products. Services like overleaf.com, leanpub.com and lulu.com accept text files manauscripts encoded in LaTeX or markdown to produce, publish and distribute e-books and printed physical books. Google and Microsoft both provide online office application suites to handle business communications and presentations. GitLab and GitHub provide version control and testing services for source code. Amazon AWS and Microsoft provide virtual computers. Google provides number crunching and machine learning services via their TensorFlow product line. QuickBooks and other accounting firms now provide in cloud services. Companies like IBM, Amazon and Google share computing time on their quantum computers. Codeanywhere and IDEone provide virtual computers for running software from a simple web browser running on a notepad or mobile phone. The lists continues to grows daily.
As the number of customers grew, the economy of scale reduced cost of the various Internet, cloud-based services to levels that are very competitive with the costs of privately owned and operated network facilities. In addition, network control software now has the ability hiberate inactive processes as well as activate multiple copies of processes experiencing high demand and loads. Billing for these dynamic service is calculated from the number of servers and resources in active use on second to second basis. In this way, the cost of computing resources grow and shrink with demand and are cost-effective and affordable to growing startup organizations as well as small and medium sized enterprizes.
Cloud hosting introduces a number of new issues that have bearing on the reliability of on-cloud solutions.(Kaur 2021)
Experience: The value of the technical support of service providers is related the experience the hosting company within a given problem domain and configuration. As software and network solutions continue to increase in their complexity, it is critical that systems are updated, maintained and run according to the latest standards.
Security: As data migrates into the cloud, there is much higher risk of malicious attacks to compromise data privacy, integrity and availability. These types of attacks can target specific servers as well as the network infrastructure. Security requires vigilance across the entire network from end to end encryption for remote users to monitoring the traffic from operations within a firewall
Service Level Agreement (SLA): This is a contract that defines the level of service that can be expected from the vendor and the rights of the customer. This includes the following key parameters as well as the level of compensation to be paid for losses incurred by any failure to meet these terms.
Disaster Recover Planning: The goal is to be able to access data from anywhere at anytime even if a site has gone down. This requires redundancy with offsite backups. This ensures continuous operations even if one site under going maintenance or is down for some unforeseen reason.
Aspect | On premise | On cloud |
---|---|---|
Support: | annually around 20-40% the cost of the equipment | Included in the usage charge |
Scalability: | Limited, requires upgrades of equipment | Unlimited and scales according to usage |
Elasticity | depends on spare capacity within existing hardware architectures | flexibility to scale according to usage |
Running cost | Rigid operating costs, Minor savings from load sharing techniques | Matches usage and load |
Diversity | Siloed datasets within a data warehouse | Able to use consolidated datasets within a data lake |
Bandwidth costs/speed | Fixed by contract with ISP | Flexible according to usage |
In 2016, a comparative cost analysis was published by CodiLime,(CodiLime 2016) a network consulting firm specializing in building and maintaining both on premise and on cloud network solutions. Their calculations suggested that for a single service solutions on cloud were 11 times more expensive than on premise ones for a single server solution and approxiately 2 times for solutions requiring 20 servers. However, if the servers were installed to handle maximum peak load but were dynamically sized on demand to handle an average load of 20% the peak capacity, the ratio for costs reversed with on premise being more 1.2 and 2.3 times more expensive than on cloud for 1 and 20 server solutions, respectively. By comparison, Microsoft has provides an online calculator to compare the total cost of 5 years of operation.(Microsoft 2022) The estimated cost of ownership of on premise was 1.9 and 2.5 times that of the Microsoft Azure Cloud for 1 and 20 server solutions, respectively. The breakdown of estimated total costs are given in the following sidebar.
\(\triangleright\) Reading 4.1: Comparing between inhouse and on cloud service
The estimation of the total cost of ownership of servers is not a trivial exercise.(Deckler 2016) It requires careful comparison of specification that result in servers with equivalent features and performance. The Microsoft Total Cost of Ownership Calculator(Microsoft 2022) is an attempt to simplify these calculations by averaging the costs from partners working within particular regions.
The hardware specification are also critical to the calculation as the prices increase significantly with features like lower power, high speed and small footprint. To demonstrate this study, the specifications in the following table were used. This set of hardware specs describe hardware used by a typical data center with 3 identical nodes to deliver a full range of network based services as well as provide capacity to support load balancing, redundancy and backup. The systems were installed as hosts of virtual servers to facilitate installation, testing and migration of the services that run on them. IT Department would need to determine its own set of specification.
Suggested components |
---|
Hardware
|
System control software
|
Service contracts
|
The following table includes a comparison of cost of ownership based on information collected from recent bids from vendors based on the required specifications.
Category | Local leasing of on-premise center (1) | Outright purchase On-premise center (2) | MS Azure OnCloud
Contract (3) |
---|---|---|---|
Compute | $97,000 | $105,000 | $34,000 |
|
$30,000 | $26,000 | (included) |
|
$45,000 | $50,000 | (included) |
|
$10,000 | $12,000 | (included) |
|
$12,000 | $17,000 | (included) |
Data Center | $8,000 | $18,000 | $0 |
Networking | $25,000 | $16,000 | $120 |
Storage | $10,000 | $8,000 | $32,000 |
IT Labor | $26,000 | $16,000 | $8,000 |
Total cost | $166,000 | $163,000 | $74,120 |
(All Numbers are in US Dollars) | |
---|---|
These estimates are based on the average of 2021 price quotations from Chiang Mai firms that lease server equipment. | |
Total cost of ownership including the cost of purchase and operating hardware on-premise was calculated using the estimates from the Microsoft online cost calculator located at https://azure.microsoft.com/en-us/pricing/tco/calculator/ which is based on the average local costs in US Dollars for equipment and services in Southeast Asia (i.e., Indonesia, Malaysia , Singapore, Thailand and Vietnam). | |
Total cost of contracting and operating Microsoft Azure Cloud solution were calculated using Microsoft online cost calculator located at https://azure.microsoft.com/en-us/pricing/tco/calculator/ and was used to calculate the costs in US Dollars for servers running in Southeast Asia (i.e., Indonesia, Malaysia , Singapore, Thailand and Vietnam). |
Outright purchase has been the traditional way to acquire the hardware needed to operate a data center. However, this method of procurement locks the organization into a level and generation of technology for the working life of the hardware. In addition, this method increases the start up costs as the systems purchased will need to support the anticipated load on the servers increasing additional cost in the short term because of the excess capacity. However, start ups typically have difficulty right sizing their facilities as the business is launched and begins to grow.
Hardware leasing and oncloud solutions offer opportunities to match the growing requirements and lower costs to start up organizations. These methods of procurement allow organizations to purchase capacity that matches their growing needs. However, as every solution is a combination of options that determine bandwidth, hardware capabilities and power, vendors can combine the various components in ways that could tip the relative balance of cost. In this case of this study, on cloud solutions is less than half the cost of other solutions because of the economies of scale at a commercial server farm will reduce power, bandwidth and hardware costs per unit of computing, and such savings are passed on to their customers. In addition, solutions that use host virtual servers allow for better matching of load to resource utilization by hiberating unused servers and cloning servers under high demand, a feature that makes it possible to further reduce costs by charging customers only for the resources they use on a minute-to-minute basis. The keen competition between these technologies will continue to drive improvements and further cost reduction in the coming years.
Technology has changed the nature and function of the workplace creating 2 possible sustainable environments: the central office and the distributed workplace. The success of either work environments depends on the diligence, skill, motivation and results-driven ethos. Both environment need careful management of workloads and supporting facilities.
The office has become a collaborative space to stimulate brainstorming and collective problem solving. By providing support for group work within both formal and informal settings, a development team is encouraged to use collective intelligence and skill of a work group to solve problems of multiple dimensions and disciplines. The goal is to apply collective effort for solving problems and producing results quickly and effectively.
Individuals can remotely from locations and timezones of their choosing. When workers work from a comfortable setting they tend to make better use of their time and resources in accomplishing their work. Workers use telecommunications and teleconferencing to meet with colleagues to address specific issues, collective message boards and file shares are used to hand off materials and to measure progress.
Freelance workers are able to provide additional manpower to projects working under tight deadlines. This service have become an important and significant part of software development industry worldwide. The market has grown as there is a shortage of software developers in most countries of the world. This has opened the door for enterpreneurs to use their software development skills to fund their international travels. These travellers have become known as “digital nomads” as they tend to stay only 6 mon at any one location. Their clients tend to be located in Europe or North America. At the same time, digital nomads often provide help and training to local software developers, and often introduce new technology to the local computer industry. Countries like Thailand even provide special 2 yr visas to encourage IT professionals to extend their stay within the country as digital nomads.
Criteria for comparison | From the perspective of Central Office | From the prespective of a team of Remote workers |
---|---|---|
Advantages for the organization |
|
|
Disadvantages for the organization |
|
|
Advantages for the worker |
|
|
Disadvantages for the worker |
|
|
While both work environments can produce results on time and on budget, serious management of communications, time and project management are essential. Analysis of experience before during and after the COVID-19 lock period/work from home periods has revealed the following key principles that contribute to sustainable work flows in either work environment or even hybrid settings.(Airtasker Blog 2020)
Workspaces should be designed for work and collaboration. The space should be comfortable and conducive for work. Basic needs and supplies should be available. The workspace needs to be equipped with opportunities to seek help and contribute to discussions associated with the work. At the same time, distractions must be controlled.
Work flows should be organized and scheduled. The work needs to be planned, and scheduled to ensure smooth progress that is synchronized across departments and shareholders. Scrums and other progress review techniques should be used to regularly review and update the work schedule.
Work should be assigned and carried out as smaller task units. Assigning work as smaller tasks allows projects to be more productive and manageable. In addition encouraging personal time management program like Pomodoro help to break up the work day in 20-30 mins of intense work with minimal distracts followed by a 5 min break. This oscillation between intense work and break has been proven to deliver maximum productivity with minimum stress because taking regular breaks allows your brain to refocus and relax.
Take time to celebrate successes. Likewise, it is important to take time to recognize achievement and to become better acquainted with members of the team. As in all team undertakings, understanding, trust, and recognition among member contribute to success.
Take time to prepare for tomorrow. In the course of day to day activities, it is essential to provide time and opportunity to develop new skills and to improve methodologies. No matter whether this learning takes the form of listening to podcasts during commute to work, attending seminars, or committing scheduled time for study, each training activity needs to be treated as skill acquisition and approached with the view of training another member of the team.
Meetings need to be restructured: Although meetings are expensive use of time, most meetings could be accomplished without tying up so many people. The meetings should not be used as a means to dissiminate information but to maximize opportunity to develop ideas, policies and plans in a short period of time. However, to do this, everyone attending should be aware of the agenda before the meeting begins. The meeting should start and end on time. Discussions should aim to form a recorded consensus. Isolated matters should be taken offline or deferred to a followup meeting after additional research/consideration. Improving the value of meetings will result in save significant requires feedback and experimentation.
Virtual workplaces introduces a new challenge as workers attempt to work under bosses they may never meet in person. When workers are not co-located with their supervisors, there are no causal conversations over the water cooler or in the hallway that are so important for building rapport and establishing the mutual trust and respect required between supervisor and employee. However, telecommunications and social media provide new opportunities to open new communication channels open, and establish clear lines of accountability needed for working smoothly with supervisors and colleagues.
Regardless of whether the working environment is a central office or a remote workstation it is essential that worker establish a virtual contract that establishes how to work and communicate together. It is important to establish the means for sharing ideas that are effective without being overwhelming or overly ambitious. The idea is to manage expectations and to forewarn of pending changes so that awkward surprizes do not occur. When working remotely, a candid 30-second personal and professional check-ins before meetings creates social bonding that builds empathy, trust, and camaraderie.
The success of Google was built on the motto “Don’t be evil” which was meant to be a statement of their corporate code of conduct. Although the parent company “Alphabet” took the motto “Do the right thing,” both statements are an ascent to the idea that true success and growth is never meant to cause harm to other. This concept of inclusion is reflected across the full range of Alphabet products where developers are encouraged to embrace the corporate ethos to “create - design - code - build for everyone.” In an era of growing corporate social responsibility (CSR), more and more businesses have been seeking to reach out and build local and international communities as part of their business activities. However, in recent years, governments and international organizations have relied less on self-goverance of businesses and have sought to establish legal standards and rules to govern and control the impact of business on its surrounding community and environment. This growing list of regulations adds restrictions that determine how international business can be conducted. Gathering and submitting the becessary paperwork can signifcantly add to the cost of products if IT Departments are not engaged to manage the documentation required for international trade. The following sections will explore the current initatives of the United Nations and the World Fair Trade Organization and discuss their impact on international trade.
In September 2015, Heads of State and Government gathered with UN Representatives to establish a series of goals that now lie at the heart of all UN programs and activities. The target is to aim to establish by 2030 a balanced, and sustainable future by overcoming 17 global problem domains and 169 targets that currently threaten the security and future of the planet and its inhabitents. The following figure lists all 17 Sustainable Development Goals.
Goal | Description |
---|---|
1 | End poverty in all its forms everywhere |
2 | End hunger, achieve food security and improved nutrition and promote sustainable agriculture |
3 | Ensure healthy lives and promote well-being for all at all ages |
4 | Ensure inclusive and equitable quality education and promote lifelong learning opportunities for all |
5 | Achieve gender equality and empower all women and girls |
6 | Ensure availability and sustainable management of water and sanitation for all |
7 | Ensure access to affordable, reliable, sustainable and modern energy for all |
8 | Promote sustained, inclusive and sustainable economic growth, full and productive employment and decent work for all |
9 | Build resilient infrastructure, promote inclusive and sustainable industrialization and foster innovation |
10 | Reduce inequality within and among countries |
11 | Make cities and human settlements inclusive, safe, resilient and sustainable |
12 | Ensure sustainable consumption and production patterns |
13 | Take urgent action to combat climate change and its impacts |
14 | Conserve and sustainably use the oceans, seas and marine resources for sustainable development |
15 | Protect, restore and promote sustainable use of terrestrial ecosystems, sustainably manage forests, combat desertification, and halt and reverse land degradation and halt biodiversity loss |
16 | Promote peaceful and inclusive societies for sustainable development, provide access to justice for all and build effective, accountable and inclusive institutions at all levels |
17 | Strengthen the means of implementation and revitalize the global partnership for sustainable development |
To eradicate poverty and improve the environment, the UN has committed itself to promoting significant economic reforms that will attempt to share wealth and establish income equality among the nationals of the world. While the long term-goals will create a vibrant global economy that creates new business markets and opportunities, the transition over the next 10 years will create dynamic market conditions that can effect costs, availability, logistics and profitability. Businesses will need to be agile to the changing market conditions and expectations. New government policies will increase new requirements for data collection and reporting.
In addition, enviromental goals will require significant changes in the way societies produce and consume goods and services. The UN calls on governments, international organizations, and the business sector to replace unsustainable consumption and wasteful production patterns with new technologies and procedures. The UN plan also calls for new financial and technical assistance to strengthen scientific, technological and innovative capacities over the next 10 years. Business will need to carefully monitor conditions and changes to avoid becoming obsolete. The most successful businesses will those who can leverage the information from the data collected to create new opportunities in the changing market place.
The World Fair Trade Organization is a global Non-Goverment Organization (NGO) that advocates and enforces strict rules to ensure that producers get fair compensation for their products and services. To this end, they provide opportunities for qualified products to gain access into new markets around the world through their network of trading partners. At the same time, WFTO requires documentation to prove that all products traded by its partners meet its principles as listed below.
Principle | Description |
---|---|
1 | Creating Opportunities for Economically Disadvantaged Producers |
2 | Transparency and Accountability |
3 | Fair Trading Practices |
4 | Payment of a Fair Price |
5 | Ensuring no Child Labour and Forced Labour |
6 | Commitment to Non Discrimination, Gender Equity and Women’s Economic Empowerment, and Freedom of Association |
7 | Ensuring Good Working Conditions |
8 | Providing Capacity Building |
9 | Promoting Fair Trade |
10 | Respect for the Environment |
Organizations like WFTO provide a valuable service for local entrepreneurs by introducing their products to new markets to fetch higher prices. hat can bring highereespecially in locations where the farmgate/factory price is a very small fraction of the market price among end consumers. The WFTO attempts to address concerns for the social, economic and environmental well-being of the communities where products are made and does not allow production to profit by ignoring these issues. The WFTO provide training to both suppliers and buyers to develop fair and workable contracts and product specifications that build trust through on time delivery of quality products.
Fair Trade Organizations also promote the development of fair contracts that ensure orders are paid in part when the order is placed and the remainder paid in full receipt of goods. In addition, contracts spell out fair compensation that is required in the case of order cancellation or rejection of deliveries. Likewise, there are mechanism to resolve problems with delivery, especially when delivered quantities do not match the qualities. The contract also sets fair price for goods and services which has been mutually agreed by all through dialogue and participation, and provides compensation to the producers at a level that can be sustained by the market. The goal is to build long-term relationships based on solidarity, trust and mutual respect between buyers and sellers. There are many improvements that result from adopting contract-based transactions as the standard business practice, especially to suppliers from remote villages. Not only can they better manage local resources and investments but such businesses find these practices compatible with online B2B and B2C transactions. However, IT application are urgently needed to monitor and manage the growing amount of data associated with these contracts. WFTO and similar NGOs are currently seeking partnerships with IT service providers to develop simple online and mobile IT services that would facilitate project, contract and financial accounting for remote entrepreneurs with only basic education.
It is increasely more difficult to maintain a Business vision despite changing
market conditions and unpredictable long-term trends. Although AI and Data Science provide more accurate predictions based on history, these technology will never be able to fully predict the future. Random variations occur all the time some introduced by increased competition, technology, environmental disasters, pandemics or/and other natural disasters.
Although governments and NGOs attempt to define factors and solutions to the world’s most pressing problems, their resulting regulations and bureaucracy coupled with inflation add to the complexity, challenges and cost of doing business. The successful organizations of the future are those that would be able to meet the challenges and create new opportunities.
Benjamin Franklin summarized it best:
Change is the only the constant in life.
Ones ability to adapt to those changes will determine your success in life.
As technology continues to impact every aspect of human existence, it becomes essential that people develop a balanced and effective relationship with the technology. However, technology does has its dark side and social changes it causes are not always healthy. Because the next generation of IT users will have access to more information than anyone could master or even consume in a single life time, it takes training and disciple to maintain a proper balance between activities in the cyber and physical worlds. IT professionals need to develop a balanced lifestyle that allow them to embrace and interact with entities in computer networks as well as with people and issues in physical world around them. As they sort through these issues, their experience and expertise in this regard can be invaluable to their colleagues.
Technology has always had a effect of amplifying human traits and emotions, both good and bad. In the hands of marketers, technology can motivate and attract new interest. In the hands of agents of social change, it can mobilize people to a common cause.7 Entertainers use it a forum to invite viewers to chill out and to take a break from the stresses of life. Gamers find themselves in virtual worlds where they conquer impossible odds to gain success and fame that illudes them in the real world. However, despite the power of this media, there are no standards for assessing the value and appropriateness of the messages shared. Some random clips go viral and others work tirelessly to create such fame and yet never find it.8 Psychosis and addictions arise when the virtual and real world offer vastly different awards and recognition for overcoming difficulties.9
Electronic addictions
Much like the crowed corridors of a busy shopping center or the sidewalks of a bustling city, the internet has become the crosswalk and meeting place for all types of people as goods and services are advertised and traded. However, for business to thrive in cyberspace, the internet needs to become a communication platform where artists can showcase the products of their craft, gamers can compete with each other, and entrepreneurs can trade their wares. But at the same time, the Internet also attracts swindlers, hackers and cyber-terriorists who attack with deception and malware. Therefore, IT professionals within businesses have a vested interest in promoting the development of digitial intelligence among co-workers that can support business operations in a friendly and safe manner.
Over the past 60 yr, corporate internet policies and regulations were attempts to spell out the rules that defined parameters of proper conduct and procedures to secure and maintain information safely. While the actual rules varied widely from company to company, they became regular sections in most employee handbook and violations were subject to fines and even expulsion.
Basic rules of etiquette apply when people engage in conversation as a means to convey concepts and ideas that build trust and relationships. However, electronic telecommunications remove many of the visual clues that help govern these rules of engagement making it harder to determine the setting and the emotional state of the other party. Thus, normal rules of social etiquette must be extended to prevent misunderstandings and flame wars that often occur when this is ignored. Netiquette rules are an attempt to extend courtesy and foster good relationships despite the limitations of the media. Failure to abide by these rules will often result inappropriate distribution of sensitive information, loss of integrity, and breakdown of online and offline relationships.
Netiquette Rules |
---|
|
|
|
|
|
|
|
|
|
|
However, companies have found while netiqette rules helped a generation learn to communicate and function in cyberspace. However, younger workers grew up using computers to play games, do their homework and talk to their friends. While the millential workers generally are more comfortable with the technology, they have often learned some bad habits that can endanger the security of their systems and the harmony in the workplace. It is for this reason that the world economic forum has suggested that the next generation will need to master the 8 essential skills. (Park 2016)
Eight Essential Digital Skills |
---|
|
|
|
|
|
|
|
|
These skills have found their way into a world-wide movement to train primary and secondary students how to behave and grow up in the cyberworld. The basic is theme is to encourage development of youth competencies and skills to function effectively and safely on the Internet. These skills are known collectively known as Digital Intelligence. As children progress in their primary and secondary education, they are taught to be sensitive to their rights, responsibilities, and need to protect themselves as they grow up as digital citizens. In many countries of the world, the corporate community has invested in this movement because today’s youth will become tomorrow’s workers and consumers. Here in Thailand, the DQI movement is funded and spearheaded by the mobile telephone company AIS that regularly sends speakers to schools and has helped to coordinate age-appropriate curriculum. Although stalkers, swindlers, and bullies will arise in every generation. This program has proven useful in making the Internet a safer place for users of all ages.
As the use of the Internet continues to expand, corporations need to be as caring and responsive on the Internet as they are in other media and activities. Digital communications of all types, are seen by the public as a reflection of the heart and soul of the organization. Therefor, all employees of an organization must reflect their ability to be competent, responsible digital citizens. However, development and communication of these traits does not come easily and is often the subject of corporate workshops and seminars. IT Staff are often called on to participate in this training where interpersonal skills often take priority even over technical skills. IT professionals have long discovered that it is not sufficient to have a technically correct solution unless it can also be communicated in manner that will be adopted and used by the community at large. To do that, a basic level of understanding of IT and its potential needs to be understood by the general population.
Area of skill | Description |
---|---|
Digital Citizen Identity | able to build and manage a healthy identity online and offline with integrity |
Screen-Time Management | able to manage one’s screen time, multitasking, and one’s engagement in online games and social media with self-control |
Cyberbullying Management | able to detect situations of cyberbullying and handle them wisely |
Cyber Security Management | able to protect one’s data by creating strong passwords and to manage various cyberattacks |
Digital Empathy | able to show empathy towards one’s own and others’ needs and feelings online |
Digital Footprints | able to understand the nature of digital footprints and their real-life consequences and to manage them responsibly |
Critical Thinking | able to distinguish between true and false information, good and harmful content, and trustworthy and questionable contacts online |
Privacy Management | able to handle with discretion all personal information shared online to protect one’s and others’ privacy |
In recent years, there have been efforts to study the various efforts used to promote digital literacy and skills around the world. In 2018, the Coalition for Digital Intelligence (CDI) was formed to develop a framework about digital literacy, skills and readiness that can be benchmarked, referenced, and adopted across nations and sectors worldwide. This has given rise to IEEE 3527.1 Standard for Digital Intelligence (DQ) that has been endorsed by the OECD, IEEE SA, and DQ Institute in association with the World Economic Forum. The goal is to help individuals and nationals achieve well-being, prosperity, and safety/security in a global digitized society. Towards this end, a DQ Index has been developed to measures the progress of human-centered digital transformation of individuals and nations in 3 focus areas: 1) Citizenship that use technologies in responsible, safe, and ethical ways; 2) Creativity that solves problems through the creation of new knowledge, technologies, and content; 3) Competitiveness through changes to communities and the economy. (DQ Institute 2022) DQI will be launched as an online service in 2022 and IT Professionals can use this online test to measure the competence of their respective organization and the effectiveness of their training efforts.
Levels of Digital Intelligence Quotient |
---|
|
|
|
In all the previous sections of this textbook, the authors have stressed the need for organizations to develop competencies that empower their workers to harness the potential of IT to address real-world problems with solutions in a way that appeals and can be adopted by its customers. As the global economy enters an era of intense AI and data-driven innovation, organizations will need to develop the ability to sustain the growth their DIQ in order to meet the changing needs of their clients. Although the challenges to this growth will result in new technologies, the basic principles of good business practice will continue to drive sustainable business growth, especially when they are clearly implemented within the business operations and communicated across all media.
Project Fedena is the open-source, school and campus management system based on Ruby on Rails.10 Fedena was designed as a solution for schools and campuses to manage all campus records. It was initially developed and released by a team of developers at Foradian Technologies to the open source community who maintain this software.11 A demo website for Fedena has been established12 where you can log in in either of the following user roles:
The business model is to allow users to use the core functions and purchase additional professional modules or paid expert assistance to guide users through the installation and setup process.
- Courses and Batches | - News Management |
- Custom Student Remarks | - Report Center |
- Customisable Dashboards | - SMS integration |
- Employee/Teacher Login | - Student Admission |
- Examination | - Student Attendance |
- Finance and accounting | - Student Information |
- Human Resources | - Student/Parent Login |
- Institute/Event Calendar | - User Management |
- Messaging System |
- API access (Pro+) | - Hostel and dorms |
- Applicant Registration (Pro+) | - Instant Fee (Pro+) |
- Assignment | - Inventory |
- Custom Import (Pro+) | - Library |
- Custom Report (Pro+) | - Mobile App frame (Pro+) |
- Data Management | - Mobile Version (Pro+) |
- Data export (Pro+) | - Online exam (Pro+) |
- Discipline | - Payment Gateway (Pro+) |
- Discussion | - Placement |
- Email integration (Pro+) | - Poll |
- Fee Import (Pro+) | - Tally Integration (Pro+) |
- Gallery | - Task manager |
- Google Doc | - Theme and color scheme |
- Google SSO | - Transport |
Joget is an open source no-code/low-code application platform for faster, simpler digital transformation. Joget empowers business users, non-coders or coders to create enterprise applications for customer management, operational excellence, business process management and administration. The software system is available online or for download.13 Tutorials are available in PDF and YouTube formats.(Joget Community 2017)
Joget apps are developed using visual programming to create both HTML forms to capture the key information related to the workflow and BPM graphics to represent the events, functions and logic associated with the business.
The resulting Joget app runs on the server and can be viewed with any browser on any device. These apps can be uploaded, downloaded, and even traded on the Joget Marketplace.
The system not only records the essential information associated with the workflow but it also tracks the progress of all jobs and the performance of all workers that use the system. In this way, the software can monitor all aspects of the business as well provide early warning about anomalies and potential bottlenecks.
Data collected can be further subjected to AI, forecasting, threshold triggering and other data analytic functions in order to identify and understand underlying trends and patterns. This information can in turn be used to improve the performance and effectiveness of the system.
Table: Joget Feature Comparison by Edition14
Feature | CE | PE | EE |
---|---|---|---|
|
X | X | X |
|
X | X | |
|
X | X | |
|
X | ||
|
GPL | $80 | $300| | |free | /px | /px |
OrangeHRM is a comprehensive Human Resource Management (HRM) System that captures all the essential functionalities required for any enterprise. It was designed as an open source HRM solution for small and medium sized enterprises (SMEs) using MVC architecture. The source for OrangeHRM is released under the GNU General Public License.15 The basic open source edition is compatible with the additional entreprise edition modules allowing customers to start small and add features as needed. Documentation and user guides are available for both the community and enterprise editions.16 https://opensource-demo.orangehrmlive.com/
*Open source functions
Employee performance
Leave/Time off management
Online Training
Personnel information management
Recruitment
Request desk
Time/Attendance management
Additional modules of the Entreprize edition
Rails is a full-stack framework designed to rapidly design, prototype and test all aspects of web apps. The system supports both front and back ends operations and can manage both server-side and client-side computing. The framework is based on Controller, Model and View functions which handle respectively the parsing of user requests, data operations and rendering of output via html, email or sms. Ruby on Rails supports a wide range of functions that support full range of interactions between data objects within an Entity Relationship Diagrams (ERD), including storage in the cloud and security protections against common attacks.
Microsoft Power BI is a Microsoft product that was built to extend the functions of Excel to support the visualization and analysis of data. It contains a collection of apps, software services and connectors that can be used to create interactive data dashboards to accumulate unrelated data in order to demonstrate interaction and provide insights. Power BI can work with simple Excel spreadsheets as well as cloud-based or server-based Data warehouses. Using Power BI, multiple data sources can be combined to visualise and share insight gleaned from the data.
R Studio provides a full service IDE that can capture all steps of data analysis in a single publishable document. In this way, the context and intent of the research is maintained in the same document as the commands for gather, cleaning and analyzing data. In addition, charts can also be included as well as citations and footnotes. The result documents can be encoded in markdown(Allaire et al. 2016) and uploaded as an interactive web page(Chang et al. 2020) or as a printable PDF document.(Xie 2014)
yEd is a powerful desktop application that can be used to quickly and effectively generate high-quality diagrams. Diagrams can be created manually, or generated from external analytical data imported into the application. Automatic layout algorithms are used to arrange data sets into readable graphs. Supports the development of a wide rangle of diagrams that including symbol palettes that support such standards as UML, ERP, BPMN, network diagrams and programming flowchart. The yEd was written in Java and is freely available for all major platforms: Windows, Unix/Linux, and macOS17 as well as a live version on the web.18 The information is captured in graphml (a variant of XML) and which can be used with other software tools to create emulators, case tools and other software generators.
Mission and vision statements provide useful insights into the ethos and intentions of businesses. Because a well written vision and mission statements can communicate the essence and direction of a business, these statements are useful objects to study. For IT departments they are useful guidelines for decision making.
Statement | Description |
---|---|
Vision | Big picture of what you want to achieve; a statement of the intended destination |
Mission | General statement of how the vision will be achieved. |
The effectiveness of vision and mission statement is seen in the ability of the statements to inspire and motivate. To this end, these statements tend to be short and easy to understand. A good mission statement can surprise, inspire, and transform a business. They provide a clearly stated purpose of the business and measurable goals for success of that cause. The best mission statements go hand-in-hand with corporate philosophy and culture and help guide a company from the present into the future. Basically, a mission statement defines your cause – something you want to accomplish. A vision statement defines what you want to pursue for your cause – it represents the future aspirations of your efforts. (Cherry 2019)
This section contains a collection of statements gathered from the websites of various international businesses and organizations. This diverse set of organizations was selected to to demonstrate the wide range of approaches and goals used by modern organizations as they attempt to attract and motivate customers, investors, staff and suppliers to support their core business activities.
Apple: Computer producer
Amazon: Online retailer
AT&T: Telephone technology development company
Bible Study Fellowship: A religious organization
CISCO: Manufacturor of computer networking equipment
Coca Cola: A beverage manufacturer
Compassion International: An international charity for children
Disney; Entertain company
Doctors without Borders: A disaster relief organization
Frito-Lay: A snack manufacturer
Google: Internet search and information services
Habitat for Humanity: Charity to providing and repairing homes
Honda: an automobile manufacturer
Kickstarter: Crowd funding for projects
Krispy Kreme: a donut company
Levi-Strauss: casual clothing company
McDonalds Corporation: a fast food chain
J. Sainsbury: UK retailer
NASA: A government space agency
Oxfam: An international charity
Starbucks: a coffee chain
United Nations Office of the High Commissioner for Human Rights (OHCHR): UN Advocate for refugees and stateless people
HR Departments have often employed various questionnaires as instruments to build personality profiles to help find the right person for the job. These instruments have been tested against large test samples in multiple cultures and proved to be helpful in predicting the long term performance of candidate. The following sections summarize the most common tests used.
The Belbin Team Roles test asks a series of questions that attempt to capture and quantify the response of participants in particular situations. The results help to suggest the team role that an individual would choose within a team setting. The value of the Belbin Team Role theory lies in enabling individuals or teams to benefit from self-knowledge and adjust according to the demands being made by the external situation. (Belbin 2010) The clustering approach has also helped to identify common strengths and weaknesses exhibited by individuals who indicated a preference for a particular pattern. This has been useful for guiding the creating balanced teams and mentoring team members to make them more capable of completing projects given them.
People-Oriented Team Roles | Thinking-Oriented Team Roles |
---|---|
Resource Investigator: (33.2%)
Co-ordinator: (26.2%)
Teamworker: (18.2%)
|
Plant: (3.7%)
Specialist: (0.8%)
Monitor Evaluator: (0.5%)
|
Action-Oriented Team Roles | |
---|---|
Implementer: (11.4%)
Shaper: (2.3%)
|
Completer Finisher: (3.6%)
|
The Big 5 Behavioral Characteristics |
---|
|
|
|
|
|
Analysts:
INTJ (2.1%) - The Mastermind/The Scientist – Independent, original, analytical, and determined with an exceptional ability to turn theories into solid plans of action. Creative perfectionists who prefer to do things their own way, INTJs perform well in non-social roles that require them to think theoretically. Common careers: Investment banker, Personal financial advisor, Software developer, Economist, Executive
INTP (3.3%) - The Thinker – Logical, original, creative thinkers. Can become very excited about theories and ideas. Independent and creative problem-solvers, INTPs gravitate toward roles that require them to be theoretical and precise. Common careers - Computer programmer, software designer, Financial analyst, Architect, College professor, Economist
ENTJ (1.8%) - The Commander – Assertive and outspoken - they are driven to lead. Excellent ability to understand difficult organizational problems and create solid solutions. Natural leaders who are logical, analytical, and good strategic planners, ENTJs gravitate toward authoritarian roles that require them to be organized and efficient. Common careers: Executive, Lawyer, Market research analyst, Management consultant, Venture capitalist
ENTP (3.2%) - The Debater – Creative, resourceful, and intellectually quick. Good at a broad range of things. Enterprising creative people who enjoy new challenges, ENTPs excel in risky roles that require them to be persistent and non-conformist. Common careers: Entrepreneur, Real estate developer, Advertising creative director, Marketing director, Politician/political consultant
Diplomats:
INFJ (1.5%) - The Counselor/The Protector – Quietly forceful, original, and sensitive. Tend to stick to things until they are done. Thoughtful, creative people driven by firm principles and personal integrity, INFJs do well in behind-the-scenes roles that require them to communicate on a personal level. Common careers: Therapist/counsellor, Social worker, HR diversity manager, Organization development consultant, Customer relations manager
INFP (4.4%) - The Idealist – Quiet, reflective, and idealistic. Interested in serving humanity. Sensitive idealists motivated by their deeper personal values, INFPs excel in roles that require them to be compassionate and adaptable. Common careers: Graphic designer, Psychologist/therapist, Writer/editor, Physical therapist, HR development trainer
ENFJ (2.5%) - The Giver – Popular and sensitive, with outstanding people skills. Externally focused, with real concern for how others think and feel. People-lovers who are energetic, articulate, and diplomatic, ENFJs excel in cooperative roles that require them to be expressive and logical. Common careers: Advertising executive, Public relations specialist, Corporate coach/trainer, Sales manager, Employment/HR specialist
ENFP (8.1%) - The Champion/The Inspirer – Enthusiastic, idealistic, and creative. Able to do almost anything that interests them. Curious and confident creative types who see possibilities everywhere, ENFPs perform well in expressive roles that require them to be alert and communicative. Common careers: Journalist, Advertising creative director, Consultant, Restaurateur, Event planner
Sentinels:
ISTJ (11.6%) - The Inspector/The Duty Fulfiller - Serious and quiet, interested in security and peaceful living. Hard workers who value their responsibilities and commitments, ISTJs excel in behind-the-scenes roles that require them to be reliable. Common careers: Auditor, Accountant, Chief financial officer, Web development engineer, Government employee
ISFJ (13.8%) - The Nurturer/ – Quiet, kind, and conscientious, puts the needs of others above self-interest. Modest and determined workers who enjoy helping others, ISFJs do well in roles that require them to provide services to others without being in a position of authority. Common careers: Dentist, Elementary school teacher, Librarian, Franchise owner, Customer service representative
ESTJ (8.7%) - The Supervisor/The Guardian – Practical, traditional, and organized. Likely to be athletic. Realists who are quick to make practical decisions, ESTJs perform well in social roles that require them to lead. Common careers: Insurance sales agent, Pharmacist, Lawyer, Judge, Project manager
ESFJ (12.3%) - The Provider/The Caregiver – Warm-hearted, popular, and conscientious. Tend to put the needs of others over self-interest. Gregarious traditionalists motivated to help others, ESFJs gravitate toward social roles that require them to care for the well-being of others. Common careers: Sales representative, Nurse/healthcare worker, Social worker, Public relations account executive, Loan officer
Explorers:
ISTP (5.4%) - The Craftsman / The Mechanic - Quiet and reserved, interested in how and why things work. Straightforward and honest people who prefer action to conversation, ISTPs perform well in utilitarian roles that require them to make use of tools. Common careers: Civil engineer, Economist, Pilot, Data communications analysis, Emergency room physician
ISFP (8.8%)- The Composer/The Artist – Quiet, serious, sensitive and kind, avoids conflict. Warm and sensitive types who like to help people in tangible ways, ISFPs do well in roles that require them to be sympathetic and attentive. Common careers: Fashion designer, Physical therapist, Massage therapist, Landscape architect, Storekeeper
ESTP (4.3%) - The Doer – Friendly, adaptable, action-oriented. focused on immediate results. Pragmatists who love excitement and excel in a crisis, ESTPs excel in high-stakes roles that require them to be resourceful. Common careers: Detective, Banker, Investor, Entertainment agent, Sports coach
ESFP (8.5%) - The Performer – People-oriented and fun-loving, they make things more fun for others by their enjoyment. Lively and playful people who value common sense, ESFPs gravitate toward roles that require them to be expressive and interact with others. Common careers: Child welfare counselor, Primary care physician, Actor, Interior designer, Environmental scientist
A business plan is meant to be a road map / blueprint for the development and operation of a business. It is a tool to help staff and investors focus on how it will develop the capacity to be sustainable and profitable. The following sections were adapted from an online tutorial in the Prentice Hall online tutorial on developing e-Business plan (Prentice Hall 2003).
To acquire funding: A clear well description of the business is essential to attract prospective business partners, investors and start up funds. In cases of self-funded projects, this is essential for setting reasonable milestones.
To acquire other resources: Prospective landlords, equipment supplier, or application service providers often look for a viable business plan before entering into business partnerships.
To recruit senior management: Individuals who are qualified to manage the development of a business proposition will require a complete, yet concise description of the business.
To improve the ability to manage the new business: By committing business ideas to paper provides concrete goals and milestones that can measure success and guide the management of the development process. At the same time, the plan attempts to anticipate risks and avoid problems that might arise.
To create a realistic business plan to your business: Writing a business plan brings realism into the process. This includes analyzing competitors, figuring out how to reach target markets, and comparing projected revenue streams against realistic expense statements. This helps to minimize waste.
To decide whether the business is worth developing: The research that goes into a business plan provides important indications about the competition and profitabilability of the proposed business. This information provide a more realistic projection concerning the outcome of a business plan. For some ideas, the most valuable outcome of the plan is the realization that leads a decision not to proceed in a project that has little opportunity for success.
To keep you on track: The plan contains measurable goals and targets that can be used to assess actual performance. Goals and objectives set in the business plan can provide a standard for comparing actual results with anticipated goals.
The cover page
Executive Summary:
Table of Contents
Business Description: Assignment 2: Identify the industry within which your e-business will operate and write an industry analysis.
Vision statement:
Mission statement:
Business Goals and Objectives
This section focuses on 6 or more goals that state how the promise of the mission statement will be realized.
Each goal consists of a clear statement of what is to be accomplished within 2-3 lines of explanation.
Each goal statement is followed by a list of three or more objectives that contribute to the achievement of the goal. These should take the form of short-term, specific, verifiable conditions that must exist to fulfill the goal.
Well chosen goals have the following characteristics:
The objectives for each goal should contain the following:
Value proposition
Business Model
Description of intended products and services
Market Analysis:
Target market
Analysis of competition:
Direct competitors: a competitive analysis grid of those who supply similar products to the target market
Indirect competitors: a listing of those who address the needs of the target market in other ways
Future competitors: a listing of competitors and technologies that have the potential of becoming a competitor in the future.
Identify 1-3 competitors who are popular with your target markets. Conduct a critique of their Web sites using resources such as those listed above
Competitive advantages
Operations plan:
Data plan
Web-based development plan:
Financial Statements:
Business Development Plan
Brand and Product Marketing Plan
Conclusion
HiLo is a simple guessing game where the computer is choosing a random number which the player must guess. After each guess, the computer will reveal whether the guess was correct or too high or too low. The object of the game is to identify the number with the fewest number of guesses. The following is a simple prototype of a HiLo console application written in Ruby.
A HiLo game written as a Ruby console application
def startGame()
refnum = rand(100) + 1
puts "Welcome to a game of HiLo"
nextstep = :guessnum
end
def guessNum()
print "Guess a number:"
guess = gets.chomp.to_i
if guess < refnum
puts "Too low"
nextstep = :guessGame
elsif guess > refnum
puts "Too high"
nextstep = :guessGame
else
puts "Correct"
nextstep = :anotherGame
end
end
nextstep = :startgame
until nextstep.eql?(:exit) do
case(nextstep)
when :startgame
startGame()
when :guessnum
nextstep = guessNum()
when :anotherGame
print "Another game?"
intent = gets
if intent[0].upcase.eql?("Y")
nextstep = :startgame
else
nextstep = :exit
end
else
nextstep = :exit
end
end
puts "Good-bye"
Each of the features were developed and tested in the order given in the feature map. The principle was to quickly develop the functions that would support just the feature as described. During testing and review other aspects of this feature can be discussed and additions approved by consensus. As new features are added, some refractoring will be required both to the class definition as well as previously tested feature and step definitions. In this section, the original feature definition are given. The next section gives the final code base for this application.
The features for the program are written on cards or sticky notes along with test examples. The collection of ideas are discussed with their test examples and reorganized according to a progression that would demonstrate the nature of application being developed.
The feature cards were discussed and a minimal product was identified. The development sequence for the other features was also determined so that the product could be released and tested in 4 subsequent versions as described below:
Feature and version mapping
Comparison of 2 numbers: implementing a function to compare a guess to a reference number in order to suggest the general direction of the next guess
Basic play: implement the sequence of functions to support the various stages of a game.
Robust play: bullet proof the program so that unexpected input will not hang the program
Multilingual support: Add the ability to switch the between the display of Thai and English messages
The idea is to quickly develop a version of the application with minimal functions that can demonstrate to the user the basic direction and nature of the intended development. This minimal version would become the basis for future versions as more features are developed later. The following is the feature file for the minimal product.
# --- FILE: features/cmpnum.feature
Feature: Compare numbers
In the role of the User, I need to the system
to compare 2 numbers to suggest my next move
Background: Establish a game object and refnum
Given a Game is established
And the Game is started
And the Game chooses 65
Scenario: The guess is larger than the number
When the user guess "75"
Then the Game responds "Too high"
Scenario: The guess is smaller than the number
When the user guess "45"
Then the Game responds "Too low"
Scenario: The guess is equal to the number
When the user guess "65"
Then the Game responds "Correct"
A corresponding step definition file is created to provide natural language processing of the steps in the feature file. The parsed information is then passed to the Ruby class for this Game.
require "hilo"
require "test/unit/assertions"
World(Test::Unit::Assertions)
Given('a Game is established') do
@game = HiLo.new()
end
Given('the Game is started') do
@game.nextStep = :startGame
@game.doNextStep
assert_equal(:playGame, @game.nextStep)
assert_not_nil(@game.refNum)
end
Given('the Game chooses {int}') do |refNum|
@game.refNum = refNum
assert_equal(refNum, @game.refNum)
end
When('the user guess {string}') do |guess|
@game.playGame(guess)
end
Then('the Game responds {string}') do |message|
assert_equal(message,@game.cmpResult)
end
The step definition file calls the first functions to be added to the HiLo class definition. The last 7 lines turn the class definition provides the code needed to run this class library as an executable program.
class HiLo
attr_accessor :refNum, :guess,:cmp
OUTCOME = ["Too low","Correct","Too high"]
def initialize(lang="English")
@nextStep = :startGame
end
def doNextStep
case @nextStep
when :startGame
startGame()
when :playGame
playGame()
else @nextStep = :exit
end
end
def startGame
puts "Welcome to a Game of HiLo"
@refNum = 1 + rand(100)
@nextStep = :playGame
end
def playGame(guess=nil)
if guess.nil?
print "Enter your guess"
guess = gets.chomp
end
@guess = guess.to_i
if !@guess.nil?
@cmp = if @refNum > @guess
-1
elsif @refNum == @guess
0
else
1
end
puts cmpResult
end
@nextStep = :exit
end
def cmpResult
OUTCOME[1 + @cmp]
end
def close
puts "Goodbye"
end
end
if __FILE__ == $0
@game = HiLo.new
until @game.nextStep.eql?(:exit)
@game.doNextStep
end
puts @game.close
end
The idea here is to extend the number compariso to produce a minimalist version of the game that can be used to the design concept. The following feature definition was used to guide the development and testing of the functions/methods within the game class library.
# --- FILE: features/playgame.feature
Feature: Compare numbers
In the role of a game player
I need to be able to play the game
to enjoy a simple game of HiLo
Background: Standard setup for all scenarios
Given a Game is established
Then the next step is "choose"
Scenario: Start a new game
When the Game is started
And the Game chooses 65
Then the next step is "playGame"
Scenario: The guess is smaller than the number
Given the Game is started
And the Game chooses 65
When the user guess "45"
Then the Game responds "Too low"
And the next step is "playGame"
Scenario: The guess is smaller than the number
Given the Game is started
And the Game chooses 65
When the user guess "75"
Then the Game responds "Too high"
And the next step is "playGame"
Scenario: The guess is equal to the number
Given the Game is started
And the Game chooses 65
When the user guess "65"
Then the Game responds "Correct"
And the next step is "choose"
Scenario Outline: The user chooses the menu items
When I respond "<resp>"
Then the next step is "<nxtstep>"
Examples:
| resp | nxtstep |
| P | startGame |
| X | exit |
The following step definitions were used to parse the details of this feature.
require "hilo"
require "test/unit/assertions"
World(Test::Unit::Assertions)
Then('the next step is {string}') do |setLabel|
assert_equal(setLabel,@game.nextStep.to_s)
end
When('I respond {string}') do |response|
@game.choose(response)
end
This stage will extend the tested code of basic game play to prevent the program from hanging or crashing when unusuAL or unexpected user responses are given.
Background: Standard setup for all scenarios
Given a Game is established
When the Game is started
And the Game chooses 65
Then the next step is "playGame"
Scenario: The guess is a really large number
When the user guesses "1000"
Then the Game ignores the input
And the next step is "playGame"
Scenario: The guess is a really small number
When the user guesses "-1000"
Then the Game ignores the input
And the next step is "playGame"
Scenario: The guess is a nonnumber
When the user guesses "Fiddle sticks"
Then the Game ignores the input
And the next step is "playGame"
Scenario: The user types a wierd response to the menu
Given the next step is set to "choose"
When I respond "Fiddle sticks"
Then the next step is "choose"
Scenario: The user types a numeric response to the menu
Given the next step is set to "choose"
When I respond "1234"
Then the next step is "choose"
# --- FILE: features/multilingual.feature
Feature: Provide support for Thai messages
In the role of the User
I want the system to display messages in Thai
to allow my friends to play this game
Scenario: The game is in Thai mode
Given a Game is established
And the language is set to "Thai"
When the message is "Goodbye"
Then the Game shows "ลาก่อน"
Scenario: The game is in English mode
Given a Game is established
And the language is set to "English"
When the message is "Goodbye"
Then the Game shows "Goodbye"
Scenario: Message without Thai equivalent shown in English
Given a Game is established
And the language is set to "Thai"
When the message is "New message"
Then the Game shows "New message"
Scenario Outline: Tests all messages
Given a Game is established
And the language is set to "Thai"
When the message is "<label>"
Then the Game shows "<message>"
Examples:
| label | message |
| Correct | ถูกต้อง |
| Enter your guess: | ระบุตัวเลข |
| Goodbye | ลาก่อน |
| Too high | ใหญ่เกินไป |
| Too low | เล็กไป |
| Welcome to HiLo | เรียนเชิญเล่นเกม iLo |
| What language?[TE] | อยากได้ภาษาอะไร [TE] |
| No Translation | No Translation|
Scenario Outline: Tests all in English
Given a Game is established
And the language is set to "English"
When the message is "<label>"
Then the Game shows "<message>"
Examples:
| label | message |
| Another game? | Another game? |
| Correct | Correct |
| Enter your guess: | Enter your guess: |
| Goodbye | Goodbye |
| Too high | Too high |
| Too low | Too low |
| Welcome to a Game of HiLo | Welcome to a Game of HiLo |
| What language?(TE) | What language?(TE) |
## Final Codebase
The feature definitions were updated to adjust for changes in system design that occurred when new features were added.
# --- FILE: features/cmpnum.feature
Feature: Compare numbers
In the role of the User
I need to the system to compare 2 numbers
to suggest my next move
Background: Establish a game object and refnum
Given a Game is established
And the Game is started
And the Game chooses 65
Scenario: The guess is larger than the number
When the user guess "75"
Then the Game responds "Too high"
Scenario: The guess is smaller than the number
When the user guess "45"
Then the Game responds "Too low"
Scenario: The guess is equal to the number
When the user guess "65"
Then the Game responds "Correct"
# --- FILE: features/playgame.feature
Feature: Compare numbers
In the role of a game player
I need to be able to play the game
to enjoy a simple game of HiLo
Background: Standard setup for all scenarios
Given a Game is established
Then the next step is "choose"
Scenario: Start a new game
When the Game is started
And the Game chooses 65
Then the next step is "playGame"
Scenario: The guess is smaller than the number
Given the Game is started
And the Game chooses 65
When the user guess "45"
Then the Game responds "Too low"
And the next step is "playGame"
Scenario: The guess is smaller than the number
Given the Game is started
And the Game chooses 65
When the user guess "75"
Then the Game responds "Too high"
And the next step is "playGame"
Scenario: The guess is equal to the number
Given the Game is started
And the Game chooses 65
When the user guess "65"
Then the Game responds "Correct"
And the next step is "choose"
Scenario: InThe user chooses a menu item in response
When I respond "lang"
Then the next step is "changeLang"
Scenario: The user chooses a non-menu item respond
When I respond "wierd"
Then the next step is "choose"
Scenario Outline: The user chooses the menu items
When I respond "<resp>"
Then the next step is "<nxtstep>"
Examples:
| resp | nxtstep |
| P | startGame |
| L | changeLang |
| V | verbose |
| X | exit |
Background: Standard setup for all scenarios
Given a Game is established
When the Game is started
And the Game chooses 65
Then the next step is "playGame"
Scenario: The guess is a really large number
When the user guesses "1000"
Then the Game ignores the input
And the next step is "playGame"
Scenario: The guess is a really small number
When the user guesses "-1000"
Then the Game ignores the input
And the next step is "playGame"
Scenario: The guess is a nonnumber
When the user guesses "Fiddle sticks"
Then the Game ignores the input
And the next step is "playGame"
Scenario: The user types a wierd response to the menu
Given the next step is set to "choose"
When I respond "Fiddle sticks"
Then the next step is "choose"
Scenario: The user responds to the menu with a number
Given the next step is set to "choose"
When I respond "1234"
Then the next step is "choose"
# --- FILE: features/multilingual.feature
Feature: Provide support for Thai messages
In the role of the User
I want the system to be able to communicate in
Thai to allow my friends to play this game
Scenario: The game is in Thai mode
Given a Game is established
And the language is set to "Thai"
When the message is "Goodbye"
Then the Game shows "ลาก่อน"
Scenario: The game is in English mode
Given a Game is established
And the language is set to "English"
When the message is "Goodbye"
Then the Game shows "Goodbye"
Scenario: Messages without Thai equivalent
Given a Game is established
And the language is set to "Thai"
When the message is "New message"
Then the Game shows "New message"
Scenario Outline: Tests all messages
Given a Game is established
And the language is set to "Thai"
When the message is "<label>"
Then the Game shows "<message>"
Examples:
| label | message |
| Correct | ถูกต้อง |
| Enter your guess: | ระบุตัวเลข |
| Goodbye | ลาก่อน |
| Too high | ใหญ่เกินไป |
| Too low | เล็กไป |
| Welcome to a Game of HiLo | เรียนเชิญเล่นเกม HiLo |
| What language?[TE] | อยากได้ภาษาอะไร [TE] |
| No Translation | No Translation|
Scenario Outline: Tests all in English
Given a Game is established
And the language is set to "English"
When the message is "<label>"
Then the Game shows "<message>"
Examples:
| label | message |
| Another game? | Another game? |
| Correct | Correct |
| Enter your guess: | Enter your guess: |
| Goodbye | Goodbye |
| Too high | Too high |
| Too low | Too low |
| Welcome to HiLo | Welcome to HiLo |
| What language?(TE) | What language?(TE) |
require "hilo"
require "test/unit/assertions"
World(Test::Unit::Assertions)
Given('a Game is established') do
@game = HiLo.new()
end
Given('the Game is started') do
@game.nextStep = :startGame
@game.doNextStep
puts @game.inspect
assert_equal(:playGame, @game.nextStep)
assert_not_nil(@game.refNum)
end
Given('the Game chooses {int}') do |refNum|
@game.refNum = refNum
assert_equal(refNum, @game.refNum)
end
When('the user guess {string}') do |guess|
@game.playGame(guess)
end
Then('the Game responds {string}') do |message|
assert_equal(message,@game.cmpResult)
end
require "hilo"
require "test/unit/assertions"
World(Test::Unit::Assertions)
Then('the next step is {string}') do |setLabel|
assert_equal(setLabel,
@game.nextStep.to_s)
end
When('I respond {string}') do |response|
@game.choose(response)
end
require "hilo"
require "test/unit/assertions"
World(Test::Unit::Assertions)
When('the user guesses {string}') do |guess|
@game.playGame(guess)
end
Given('the next step is set to {string}') do |string|
@game.choose(string)
end
Then('the Game ignores the input') do
assert_nil(@game.guess)
end
require "hilo"
require "test/unit/assertions"
World(Test::Unit::Assertions)
Given('the language is set to {string}') do |lang|
@game.setLang(lang)
assert_equal(lang, @game.lang)
end
When('the message is {string}') do |label|
@label = label
end
Then('the Game shows {string}') do |message|
assert_equal(message,
@game.displayLabel(@label))
end
class HiLo
attr_accessor :refNum, :guess,:cmp, :nextStep,
:lang, :verbose, :guessCount, :minGuess,
:maxGuess
OUTCOME = ["Too low","Correct","Too high"]
TRANSLATION = {"Correct" => "ถูกต้อง",
"Enter your guess:" => "ระบุตัวเลข",
"Goodbye" => "ลาก่อน",
"Menu: [P]lay, [L]anguage, [V]erbose, e[X]it" =>
"รายการ: P-เล่นเกมส์, L-เปลี่ยนภาษา" +
"V-แสดงทุกอย่าง, X-ออกแอพ",
"Too high" => "ใหญ่เกินไป",
"Too low" => "เล็กไป",
"tries" => "ครั้ง",
"Welcome to HiLo" => "เรียนเชิญเล่นเกม HiLo",
"What language?[TE]" => "อยากได้ภาษาอะไร [TE]"}
def initialize(lang="English")
@nextStep = :choose
setLang(lang)
@verbose = true
end
def choose(choice=nil)
displayLabel "Menu: [P]lay, [L]anguage, "+
"[V]erbose, e[X]it"
if choice.nil?
choice = gets.chomp
end
case choice[0].upcase
when "P"
@nextStep = :startGame
when "L"
@nextStep = :changeLang
when "V"
@nextStep = :verbose
when "X"
@nextStep = :exit
else
@nextStep = :choose
end
end
def doNextStep
case @nextStep
when :anotherGame
anotherGame()
when :choose
choose()
when :changeLang
setLang()
when :playGame
playGame()
when :startGame
startGame()
when :verbose
toggleVerbose()
else @nextStep = :exit
end
end
def startGame
displayLabel "Welcome to HiLo"
puts "\n"
@refNum = 1 + rand(100)
@minGuess = 1
@maxGuess = 100
@guessCount = 0
@nextStep = :playGame
end
def toggleVerbose()
@verbose = ! @verbose
@nextStep = :choose
end
def playGame(guess=nil)
if guess.nil?
displayLabel "Enter your guess"
if @verbose
print "(#{@minGuess}-#{@maxGuess}) "
end
guess = gets.chomp
end
@guess = ckGuess(guess)
if @guess.nil?
@nextStep = :playGame
else
findNextAction
end
end
def ckGuess(guess)
g = guess.to_i
if (g < 1) || (g > 100)
g = nil
else
g
end
end
def cmpResult
OUTCOME[1 + @cmp]
end
def compare
@guessCount += 1
@cmp = if @refNum > @guess
@minGuess = @guess + 1
-1
elsif @refNum == @guess
0
else
@maxGuess = @guess - 1
1
end
end
def findNextAction
compare
displayLabel cmpResult
if @cmp.eql?(0)
print " #{(@guessCount)} "
displayLabel "tries"
puts
@nextStep = :choose
else
puts "\n"
@nextStep = :playGame
end
end
def displayLabel(lbl)
if @lang.eql?("Thai") && !TRANSLATION[lbl].nil?
lbl = TRANSLATION[lbl]
end
print lbl," "
lbl
end
def setLang(lang=nil)
if lang.nil?
displayLabel "Which language? [T|E]"
lang = gets[0].chomp
end
if lang[0].upcase.eql?("T")
@lang = "Thai"
else
@lang = "English"
end
@nextStep = :choose
end
def close
displayLabel "Goodbye"
puts "\n"
end
end
if __FILE__ == $0
@game = HiLo.new
until @game.nextStep.eql?(:exit)
@game.doNextStep
end
puts @game.close
end
Heroku is a good website for developing and testing Ruby on Rails applications. Yukihiro Matsumoto, the chief author and designer of the Ruby programming language, joined Heroku in 2011 as Chief Architect for Ruby. The website number of useful tutorials and guides. The installation is best done by following the guide for getting started.(Heroku 2021)
Description of th setup steps |
---|
|
Alternatively, Bitnami has a full Ruby stack that can be used for developing Ruby on Rails application with fewer steps but does not provide online hosting services.(Bitnami 2021)
{backmatter}
There is a global shortage of undergraduate students committed to mastering the full combination of subjects represented by STEM (Science, Technology, Engineering and Mathematics). However, recent advances in IT make it easier to create compelling and informative graphic representations, establishing a new requirement for developers who understand the Arts well enough to communicate the backstory effectively in visual format. However, until recently, the STEM curriculum offered by most Thai high schools lacked course work in the Arts. Thus, the current Thai government educational initiatives have shifted to cultivating students with a full set of STEM+A or STEAM skills.↩︎
Hybrid development in which development activities are divided between inhouse developers, local contractors and the purchase of commercial libraries and services.↩︎
The source course for EZ-Blog is posted at http://gitlab.com/rbatzing/ezblog A working version can be found at https://intense-earth65918.herokuapp.com↩︎
YouTube video clip: How to Build a Meeting Room Booking App on Joget DX, https://youtu.be/lcbsfEh6j4w↩︎
The Fedena source code can be downloaded from the GIT repository at https://github.com/projectfedena/fedena↩︎
OrangeHRM is an open-source product. The code of the community edition is online at https://github.com/orangehrm and the commercial edition is available as an online service from https://www.orangehrm.com↩︎
Technology as an agent for good: (https://youtu.be/po01VlNvCcQ)↩︎
Technology related antisocial behaviors: (https://youtu.be/dRl8EIhrQjQ)↩︎
Dark side of technology: (https://youtu.be/J7cYcesGLcY)↩︎
Fedena Website: http://projectfedena.org↩︎
Fedena Source code: https://github.com/projectfedena/project_fedena↩︎
Fedena active demo site: demo.projectfedena.org↩︎
Joget website: https://www.joget.org/↩︎
CE = Community Edition, PE = Professional Edition, EE = Enterprize Edition↩︎
OrangeHRM source code: https://github.com/orangehrm/orangehrm↩︎
Orange HRM website: http://www.orangehrm.com↩︎
yEd software: https://www.yworks.com/products/yed↩︎
yEd live demo: https://www.yworks.com/yed-live↩︎