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.
The cover, front matter, and Chapter 4 photos were downloaded from Pixabay. The extra reading, discussion and exercise sidebar icons were created by Freepik and used as per Creative Commons 3.0 License. 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 Batzinger4
Sirinna Sirinaphaphant5
Surachet Wongchompooh6
June 2021Advances 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:
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 |
Figure 1.1: Key components of a successful business
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 B 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.
Figure 1.2: Key business processes
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.7 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 2017a), (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 | Hybrid8 | 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.
Figure 1.3: Interaction between business departments
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.
Figure 1.4: Communication Chain
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 | |
---|---|
|
As simple as the core principles seem, it turns out that many organizations have trouble creating the level of trust and cooperation need 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.
Figure 1.5: Core elements of open organizations
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 distructive behaviours 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 environments that solve issues quickly. This mismatch is also seen in the common destructive behaviors.(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.
The lack of testing opens the development to expensive failures by omitting rigorous testing and verification meant to build trust and confidence.
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 some of the highest paid employees.
Applications Developer | Functional Analyst |
Business Analyst | Process Analyst |
Business Architect | Process Owner |
Business Process Analyst | Product Owner |
Business Process Manager | Project Manager |
Data Analyst | Requirements Engineer |
Data Scientist | Scrum Master |
Digital Marketeer | Systems Analyst |
Enterprise Architect | Systems Security Officer |
Full Stack Developer |
Computer technology has always been sold as is and it has the responsibility of the consumer to test and verify whether the technology is appropriate for their application. 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 media have capitalized on this by focusing on the needs of individuals to indulge the self-centeredness of younger generations. The internet and social media expose individuals to a wider range of products and vendors to the point that any one person could properly examined and tested in a lifetime. This situation creates new desires and expectations in customers and increased competition among businesses and reduces business decisions to reflect reactions. At the same time, technology driven social changes are impacting markets, particularly as youth explore new careers, lifestyles, technologies, and life goals.
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 |
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.
\(\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?
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. (Singapore National Youth Council Youth Conversations 2019), (Tan 2019) The results of these studies are shown in Tables 1.13 and 1.14.
\(\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.
Ways that social media impacts marketing | |
---|---|
|
In addition, social media provide a forum for expressing opinions without being held accountable for the view expressed. Generally, the rewards for being liked help to regulate the web but increasing courts are given the power to litigate on defamation cases where rumors have caused damage.
\(\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 the traditional storefront into a more convenient, efficient and user-friendly setting that compliments the services available online. Banks have moved their services online and to ATM 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 play a critical role in all of these developments.
\(\triangleright\) Discussion 1.6: New generation 7-11 (Seven Eleven)
View this news clip about a new Seven Eleven outlet that opened in Pattaya with a new look that is 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 (Suriyawong 2018) 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 [TNW2019] and discuss the following:
As the following graph shows, the types of devices used to access the internet have also changed in the past decade.
The basic three Web site development options are:
Internal development: where company employees build and maintain the Web site. This builds web skills among the staff and gives a 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. The desire for faster speed to market and better access to special expertise, especially in the Web site construction phase are often cited as decisive factors in choosing this option. Some companies do not have web savy 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.
The trend has been to using mobile devices for shopping, and surfing for possibilities. There appears to be some resistance to using mobile devices to order online.
Measure | Computer | Tablet | Smartphone |
---|---|---|---|
E-commerce traffic | 53.9% | 12.4% | 33.7% |
Volume of Retail sales | 76.9% | 12.4% | 10.7% |
With the development of the world wide web in the 1990s, online commerce has been gaining advantage over corresponding brick and mortar firms. During the time of COVID-19 social distancing and lock downs, sales and services online soared. Most customers find it easy to shop online (See Table 1.15 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 | |
---|---|
|
However, the elderly are more resistant to adopt online shopping, but there is growing acceptance by the younger cohorts. For many businesses, the majority of the sales are from adults in their working years.
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% |
Figure 1.6: Business functions of e-commerce
As shown in Table 1.16, 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 |
---|
|
Although e-commerce shopping continues to grow rapidly, brick-and-mortar stores are still holding up well versus online retail sites, as many people still prefer the in-store shopping experience where they can see and try out products before committing to a purchase. However in recent years, hybrid businesses have been a new strategic choice as such companies integrate online and brick and mortar services as a seamless process. Customers can choose and switch between online and physical functions depending on convenience, comfort and shopping preference. The IT systems help keep costs low and the physical location can double for both showroom and customer services such as training, installation, upgrading and repair.
\(\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.17.
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.18.
Area of focus | |
---|---|
|
\(\blacktriangleright\) Exercise 1.6: Strategic Investment
An investor wanted to invest in one of the large 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 draft of 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 economic effects of several months of lock-down and lower productivity are still not fully known. However, double digit rates are now seen in unemployment and in the losses in stock value. Companies that were quick to support customers online have done better than those who had to close their doors. This virus continues to rampage without a cost-effective cure and vaccine across America and Africa. It is clear to most economists, that whatever emerges from this crises will establish a new normal as world leader attempt to balance the need to restart economies and against the high mortality rate caused by this virus among the elderly world-wide. Successful businesses will need to act strategically in 5 dimensions to successfully weather the challenges of COVID-19: (Sneader and Singhal 2020)
The company Worklytics analyzes data from Office365 and GSuite to determine trends in work patterns. Comparison of the usage of these office productivity tools prior and 9 weeks into the social distancing initiatives in Europe and America provides an opportunity to quantify the changes in work pattern due to working from home.(Arkcoll 2020a) The results are shown in Table 1.19.
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\) |
Figure 1.7: COVID-18 induced changes in Work locations
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.20
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 build contacts and relationships that are so 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.
Figure 2.1: Leave approval using Joget
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.
Figure 2.2: The basic steps of a MVC transaction
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.
Figure 2.3: Entity Relation Diagram of EZ-Blog
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.
Figure 2.4: The active page of EZ-Blog
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.9
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.
Figure 2.5: Distribution of code between the components of 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 |
|
Figure 2.6: Role based security for EZ-Blog
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 logins 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.
Figure 2.7: Use case for Unregistered Users
Figure 2.8: Use case for Registered Users
Figure 2.9: Use case for Authorized Users
Level | Description |
---|---|
1 | Simple authenication with a login and password |
2 | Role based authorization of functions |
3 | Verified authenication 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 ne 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 which is activated by an event. Events that initiate the process (such as a messages, scheduled time slot, special conditions) are displayed in green circles. The task icon (rounded rectangle) represents the work to be done. Upon completion, the task could be used to trigger events or even subsequent tasks in the process. Terminal events/conditions are shown as a dark red circle.
Figure 2.10: A simple process captured in BPMN
Tasks can be chained together to describe a sequence of tasks that need to be completed in order. Thus, the tasks will progress until the terminal state has been achieved.
Figure 2.11: A simple BPMN sequence
Processing control is achieved in a number ways depending on the number of alternative paths being controlled. Decision points rely on triggers, variables set by task or sensor values to control the workflow.
Figure 2.12: A purchase decision process
Figure 2.13: Common event symbols
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.
Figure 2.14: Task symbol
Tasks depict a unit of work to be done by particular group or service. A completed tasks will trigger a sequential task in the sequence or can be used to trigger events or activate gateways. 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.
When BPMN are active systems for managing the Business processes of a business, a task can generate an number of by-products including
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:
Figure 2.15: Data object symbols
Figure 2.16: Message symbols
Figure 2.17: Common gateway symbols
Gateways are used as control elements within a BPMN. The control is achieved as decisions based on the outcome of milestones achieved or the outcome of earlier processes. As such gateways are always 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 IF() THEN ... ELSE ...
in most programming languages
Exclusive Gateway (XOR): attempts the first of many action streams and finishes the first action stream can be successfully completed. If this fails, the subsequent action streams are attempted one at a time, until one succeeds.
Figure 2.18: Cutting the grass: Exclusive gateway
Figure 2.19: Cutting the grass: Inclusive gateway
\(\triangleright\) **Reading 2.2: Decision rules supported by BPMN
One of the biggest problems that plague most companies arise because business rules are not well defined or followed. Few companies really understand their operating rules or have them formalized—especially low‐level business execution and decision rules. In most companies, rules simply do not work the way many think because those who do the work often find creative ways to get the job done and so they interpret and change rules constantly according to their knowledge, skill and convenience. However, BPMN systems can model and enforce the full range of decision making processes associated with the business logic associated with running and managing businesses. Once implemented, the input and output of each decision point can also be recorded and analyzed. Thus, BPM becomes a means for tracking, testing and optimizing business logic.
Description of rule type | |
---|---|
|
Figure 2.20: Swimlane symbols
Swimlanes are the convention used to designate the responsibilities for each of the subgroups of workers and services within the business. In active BPMN systems, reassigning tasks 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 but also increases the flexibility of the system to make adjustments as functions and responsibilities are redistributed various groups within the enterprise. Changes in staffing and departmental boundaries is simply a matter of moving tasks to new swimlanes.
Figure 2.21: Order Fulfillment Processing
Figure 2.22: Book checkout at the library
Figure 2.23: Entity Relation Diagram of EZ-Blog
Figure 2.24: Pizza shop
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.
Figure 2.25: Mail order processing
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 designed to support a particular aspect of work. They were designed to to handle repetitive tasks over am active stream of transactions. Today, BPM is used not only to support transactions, but also to manage the work. 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 of the time required by each of 10,000 transactions.
Figure 2.26: Fulfilling customer postal orders
Figure 2.27: Time required for each stage of the process
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")
Figure 2.28: Components of a BPM system
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)
Figure 2.29: Business web app running on Joget
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 swimlanes 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..
Figure 2.30: Joget BPM editor
The combination of development tools with the runtime 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:10
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 dashboarding to provide insight as the status of the business and the early warning of anomalies that would impact business.
Figure 2.31: Joget BPM workflow engine monitor
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:
Figure 2.32: Linking of Objects
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.
Figure 2.33: Dashboard of Test 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.
Figure 2.34: Performance indicators
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.
Figure 2.35: The Gas Station
The results in a simulated model within the BPSimulator.
Figure 2.36: Getting Fuel Simulation
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.
Figure 2.37: Dashboard for getting fuel
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.
Figure 3.1: ODOO ERP Modules
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.11
Figure 3.2: Business System Software Development
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.
Figure 3.3: Stages in customer purchase decision making
Figure 3.4: Business support of shoppers
Online 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 cash | Bank fraud is a problem |
ATM | Convenient, multilingual support for the masses | Requires a local machine |
Online payment company: Paypal, Alipay | Convenience in setting up | High service charges |
Payment service 7-Eleven, Thailand Postal Service | Local assistance with physical receipt | The payment collection service charges the vendor a high commission and their systems could be hacked. |
Mobile phone credits AIS, TOT | Instant payment by optical scan | Reimbursement depends on the policies of the phone company; Stolen phone transactions may have to be refunded. |
Cash on delivery: Lazada | Assurance that goods will not get lost | The receiver can refuse the delivery and the goods are returned damaged in shipment |
Cryptocurrency: BitCoin | Purchases and exchanges are handled online | The market value is not pegged to that of physical currency |
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 familar with the functions needs to .
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.
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.
Figure 3.5: Characteristics of a good Employee
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 showed that the most successful teams were made up of a diverse mix of behaviours; they had access to all nine Belbin Team Roles. A Team Role was defined by Dr Meredith Belbin as “A tendency to behave, contribute and interrelate with others in a particular way.” The value of Belbin Team Role theory lies in enabling an individual or team to benefit from self knowledge and adjust according to the demands being made by the external situation. (Belbin 2010) 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)
Roles | Belbin Types | ||
---|---|---|---|
Action-oriented: | Shaper | Implementer | Completer Finisher |
2.3% | 11.4% | 3.6% | |
People-oriented: | Co-ordinator | Teamworker | Resource Investigator |
26.2% | 18.2% | 33.2% | |
Thinking-oriented: | Plant | Monitor Evaluator | Specialist |
3.7% | 0.5% | 0.8% |
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. These may change with experience and conscious attention. Different Team Roles may come to the fore in response to the needs of particular situations.
Role Description | Strengths | Allowable weaknesses | Concerns |
---|---|---|---|
Resource Investigator: Uses their inquisitive nature to find ideas to bring back to the team. | Outgoing, enthusiastic. Explores opportunities and develops contacts. | Might be over-optimistic, and can lose interest once the initial enthusiasm has passed. | They might forget to follow up on a lead. |
Teamworker: Helps the team to gel, using their versatility to identify the work required and complete it on behalf of the team. | Co-operative, perceptive and diplomatic. Listens and averts friction. | Can be indecisive in crunch situations and tends to avoid confrontation. | They might hesitate to make unpopular decisions. |
Co-ordinator: Needed to focus on the team’s objectives, draw out team members and delegate work appropriately. | Mature, confident, identifies talent. Clarifies goals. | Can be seen as manipulative and might offload their own share of the work. | They can over-delegate, leaving themselves little work to do. |
Plant: Tends to be highly creative and good at solving problems in unconventional ways. | Creative, imaginative, free-thinking, generates ideas and solves difficult problems. | Might ignore incidentals, and may be too preoccupied to communicate effectively. | They could be absent-minded and forgetful. |
Monitor Evaluator: Provides a logical eye, making impartial judgements where required and weighs up the team’s options | Sober, strategic and discerning. Sees all options and judges accurately. | Sometimes lacks the drive in a dispassionate way. and ability to inspire others and can be overly critical. | They could be slow to come to decisions. |
Specialist: Brings in-depth knowledge of a key area to the team. | Single-minded, self-starting and dedicated. They provide specialist knowledge and skills. | Tends to contribute on a narrow front and can dwell on the technicalities. | They can overload colleagues with technical information. |
Shaper: Provides the necessary drive to ensure that the team keeps moving and does not lose focus or momentum. | Challenging, dynamic, thrives on pressure. Has the drive and courage to overcome obstacles. | Can be prone to provocation, and may sometimes offend people’s feelings. | They could risk becoming aggressive and bad-humoured in their attempts to get things done. |
Implementer: Needed to plan a workable strategy and carry it out as efficiently as possible. | Practical, reliable, efficient. Turns ideas into actions and organises work that needs to be done. | Can be a bit inflexible and slow to respond to new possibilities. | They might be slow to relinquish their plans in favour of positive changes. |
Completer Finisher: Most effectively used at the end of tasks to polish and scrutinise the work for errors, subjecting it to the highest standards of quality control. | Painstaking, conscientious, anxious. Searches out errors. Polishes and perfects. | Can be inclined to worry unduly, and reluctant to delegate. | They could be accused of taking their perfectionism to extremes. |
Behavioral Characteristic | Low end | High end |
---|---|---|
Openness to experience: Appreciation for art, emotion, adventure, unusual ideas curiosity, variety of experience and intellectual curiosity, creativity and a preference for novelty and variety. | consistent, cautious (Accountants) | inventive, curious(Artists) |
Conscientiousness: A tendency to be organized and dependable, show self-discipline, act dutifully, aim for achievement, and prefer planned rather than spontaneous behavior. | easy-going, careless, sloppy. (Graffiti artist) | efficient, organized, stubborn. (Engraver) |
Extraversion: Energy, positive emotions, surgency, assertiveness, sociability and the tendency to seek stimulation in the company of others, talkativeness and is often perceived as attention-seeking and domineering. | solitary, reserved, shy, introvert. (Hermit) | outgoing, energetic, boisterous, extravert. (Cheerleader) |
Agreeableness: A tendency to be compassionate and cooperative rather than suspicious and antagonistic towards others. It related to a trusting and helpful nature. | challenging, detached, rigid. (Prosecutor) | friendly, compassionate, helpful. (Social worker) |
Neuroticism: Neuroticism identifies certain people who are more prone to psychological stress and a tendency to experience unpleasant emotions easily. | confident | secure, cool (Air traffic controller) |
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)
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
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
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
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
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 |
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:
Performance Appraisal is done with following objectives in mind:
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.12
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
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 practised.
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)
In 1983, Robert Stallman wrote the core concepts that would eventually become the GNU Manifesto as an means to initiate a movement committed to creating and distribution open and free software. (Stallman 1985) The Free Software Foundation grew out of these developments and granted users the following four freedoms, many of which require access to the source code.
Thailand 4.0 is an economic model that aims to unlock the country from several economic challenges resulting from past economic development models which place emphasis on agriculture (Thailand 1.0), light industry (Thailand 2.0), and advanced industry (Thailand 3.0). These challenges include economic conditions that create 3 traps:
The Thai government has committed itself to invest into several areas of innovation that would stimulate the economy, such as 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, skilled labor and technological development. (Royal Thai Embassy 2016) The four objectives of this strategy are listed below:
Problems with inhouse service
Online Meetings:
Confirm that the meeting is really required
(Separate social time from meeting time)
Start and end on time
Record the meeting
Be intentional about communications
allow for silence
watch for non-verbal responses
call people by name
provide assistance in taking isolated matters offline or deferred to a followup meeting after additional research/consideration
Decide ahead of time how to chat during the meeting
Agree on a mute/unmute policy; video/no video policy Bandwidth, background noise, number of participants (<6 unmute)
Ask for feedback
Technology has change the nature and function of the workplace according to 2 major trends:
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 emphasis is on solving problems quickly and effectively.
Individuals work remotely from locations and timezones of their choosing. This allows workers to better use 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.
Both work environments require diligent, highly-skilled, motivated and results-driven teams of workers.
Here are key reason given by digital nomads and their employers for working remotely. Simply put: Working remotely is the best. But what is it that makes remote jobs so great exactly? In a word: freedom. “Whether you want to enjoy some stunning scenery on a daily basis, need to be near family to help out or keep connections strong, are looking to cut down on your cost of living, or have always dreamt of truly nomadic lifestyle, remote work makes it possible,” says Skillcrush people ops manager Kelli Smith.
https://skillcrush.com/2018/09/13/reasons-to-work-remotely/
You can actually focus. Eliza Barry, marketing director at Amata Solutions, says the office became totally unproductive for me due to constant interruptions that would turn into long conversations. It was not uncommon to have an employee send an email with a quick question about a marketing idea they had, and then follow up that email within minutes by dropping into my office to chat about it. I simply did not have time to deal with the influx of requests and repeated conversations about frequently asked questions that had been covered in emails. Now, she can maintain her focus, fend off distractions and Get. Stuff. Done. A study from Stanford University showed that working from home increased productivity by 13 percent. So, want to get more done and ditch the interruptions? You know what to do.
Naps are a serious option. “I own an office in town, but I work remotely four out of five days per week, so I can take a nap halfway through the day,” says Max Robinson, owner of FishTankBank. “Since I started working naps into my daily work regime, it has totally changed my productivity for the better. Unfortunately it’s not quite socially acceptable to take naps in offices, so I choose to work remotely from home and have them here instead!”
You can prioritize your mental health. Checking out is key to keeping your mental health in check, and there are some days you wake up and need to recharge, says Levi of G2 Crowd. Certain personality types need that more than others, he says, so if you’re the type that needs some time to refuel, remote work is for you.
You can save money. Alex Robinson, General Manager at Team Building Hero, works with people who live in high cost cities like New York City, Boston, and San Francisco, but Robinson says “I prefer to live and work from small cities where my rent is less than 50 percent of those major cities. This lower rent means I have more room in my budget for travel.” Want to travel like Robinson, save for an emergency fund or house, or simply have more fun money? Remote work is the answer.
It’s easier to be a working parent. “I can easily navigate school delayed openings, half days and holidays, and be at school to pick up a sick child in ten minutes. I can get back to work on an unfinished project after the kids go to bed, or while waiting for them at sports practice,” says Cynthia Meyer, resident financial planner at Financial Finesse. “The guilt of putting family in the backseat due to work commitments is something I have never come across thanks to my remote work. I would never want to miss my daughter’s first steps because I was caught up in a work meeting!” says Sireesha Narumanchi, founder at Crowdworknews.
Your access to the job market isn’t limited by where you live. “I live one hour south of Boston. Being someone who is into writing, SEO, and marketing, it means all the jobs are there. The question basically comes down to, am I willing to commit two to four hours a day of driving, on top of my work hours, for a job? What does my life look like if I do that five days a week?” says Nicholas Rizzo, Training Research & Writer, RunRepeat.com. The answer was clear for Rizzo: Go remote and stop being limited by where he lives. The same goes for Michelle Klieger of Stratagerm Consulting, LLC. “My education, experience, and passion is in the field of agriculture. However, I recently moved to New England to be close to my family. The New England agriculture industry is small and niche, with limited openings. So, working remotely provides me the best of both worlds, access to great career opportunities and a closeness to my family,” she says.
You can escape the open office plan. Open offices seem like the future, but they’re a pain for productivity. Lauren Morley, chief marketing officer at Techvera, says that her company’s open office was a nightmare (in terms of) getting anything done. My train of thought was always flying off the tracks and it was hard to be as productive as I wanted to be. Maybe you can relate: I would frequently leave an eight hour day feeling like I barely accomplished anything, she says. But remote work changed everything: I’ve noticed I’m much calmer and less stressed, and my output and quality of work has improved. I feel and look healthier. I’ve learned how to be a better self-motivator and effective communicator. I absolutely love working remotely and I don’t know if I could ever go back to office life, Morley says.
You can work from wherever you want. I spent many years working in a windowless hospital office with fluorescent lights and felt very disconnected from the outdoors. Now, I am living in my teardrop camper traveling across the U.S. with my Verizon hotspot for internet access. And best of all, in my downtime I get to explore the beautiful outdoors with my husband. Right now, we’re in upper Michigan and we’re heading to Colorado and Southern Utah next. I love working remotely and will never go back to the old way of doing things! says Sarah Stromsdorfer, occupational therapist and founder of My OT Spot
You can meet your physical needs more easily. I work remotely because as I get older, I need to manage my energy levels and workload more, says Neil Pope, CEO of Game On Music. If I feel like sleeping in and starting late I can, which gives me the freedom to work with maximum efficiency when I am at my most productive, he says.
You can make your own schedule. Working remotely gives me freedom over how I spend my time, says Danielle, UX/UI Designer at Studio Moku. I often work four hours in the morning, enjoy the day and work four more hours at night. Work best at 2:00 a.m.? It’s within reach!
You can live wherever you want. Annie Pagano, marketing coordinator at Interpreters and Translators, Inc., says I work remotely because I get to live in a state that I love (Colorado) while continuing to work for a company that I love and have worked with for seven years. They are based in Connecticut which is where I am originally from and my family still lives. Whenever I travel for meetings or to work out of the home office, I get to visit with my family and friends. It’s a complete win/win!
Your office is your own. It’s great to work remotely, because it allows employees to create a work environment that is conducive to putting out their best work. You’re also typically able to control the noise level and concentrate in your own home, says Shilonda Downing of Virtual Work Team LLC. Don’t just stop at noise level: Go for temperature, soundtrack, and office decoration. You’re in charge!
Avoid the commute. In a major city a commute can easily be 30-90 minutes, and I prefer to use this time for productive work at my home office, says growth marketer Michael Alexis. Commuting isn’t just bad for you (and it is: long commutes have been shown to be detrimental to your health and increase stress levels), but those drives negatively impact the environment, too. Extra bonus: The time you save as a remote worker is yours to use on anything you want. I’ve used these sessions for side projects that help push my career forward and work toward promotions, Alexis says.
You can travel all the time. Theres good news if you’ve got the travel bug. Being a remote worker means you’re completely untethered. Working remotely gives me the opportunity to travel full-time. I can explore any place with good internet access, which in today’s world is almost everywhere. I love that I can take my job with me anywhere in the world and combine my passion for teaching with my travel ambitions, says Nicola Rae, English teacher at VIPKID.
You can better serve your customers. Substance use counsellor Annina Schmid works remotely and can offer specialized services such as eating disorder and substance use counselling to people in remote areas that wouldn’t otherwise have access to this kind of support. This allows her to help more people, and opens up a client base all over the world.
You can work alone. I’m an introvert, and like all introverts, I couldn’t stand open office plans, says Lucio Buffalmano, founder the ThePowerMoves. Are you similarly averse to small talk? Working remotely can make socializing a non-issue.
You can keep things interesting. I work remotely because it gives me the opportunity to meet new people and see new things every day, says journalist and content creator Hilary Sheinbaum. Having a change of atmosphere also keeps me on my toes. I’m never bored with the same old environment, she says. This kind of pattern disruption can boost creativity and inspire new ideas, says Remote Bliss Rebecca Safier. As a result, employees might be more innovative and take more initiative, which benefits their personal growth and the company they work for alike, she says.
Ditch the professional clothes. Career coach Jill Ozovek points out that there is no need for a dress code when you work remotely, so you can spend all day in athleisureor even pjs is that’s your thing. Bonus: You’ll save money on a work wardrobe, since professional clothes do not come cheap.
However, remote worker must still produce results on time and on budget. To do that they need to take time and project management seriously. Also it is important to maintain regular effective communications. Being off campus can make one feel forgotten or ignored if communication is not 2 way on a regular basis.
The take-away message from experience gained during the Work from Home lockdowns of businesses of COVID19 suggest the following:
Below are some tips to help you or your employees be more successful working at home:
Create a comfortable workspace. Working in an office caters to keeping you focused and on track. Try to recreate this working space in your home, whether it’s turning an extra room into your office or putting a desk behind the couch. The space should be comfortable, away from added screens (TV, Xbox, etc.), and have everything you need to complete your work.
Stay organized. You might need to adopt a new organizing system or start using a day planner to make sure you stay on schedule. It’s recommended to create a weekly work schedule and list the tasks you need to complete. Staying committed to the schedule will help you create consistency and a routine.
Commit to smaller, but intense work intervals. You can be more productive when you focus intently for smaller periods of time. Spend a couple of hours timing how long you can work before getting distracted. For example, if you can work for 30 minutes before getting distracted, then continue this pace throughout the whole day. After each break, set a timer and work for the next 30 minutes uninterrupted.
Take a break. Taking regular breaks allows your brain to refocus and relax. In the Airtasker survey, 37% of the remote workers say taking regular breaks is the best way to stay productive. Use your break to get a snack, drink water, get fresh air, or check on your family. The average break time for a remote worker is 22 minutes spread out across the day.
Schedule a virtual commute. According to the New York Times, the hardest part of working from home is the loneliness and lack of social interaction. Taking your regular commute time to check in with co-workers can help support social interaction and focus your brain on the day’s work.
Digital nomads
The success of Google was built on the motto “Don’t be evil” which was used in 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), businesses are seeking to reach out and build their communities as part of their business activities.
Fair Trade
1.Creating Opportunities for Economically Disadvantaged Producers: Poverty reduction through trade forms a key part of the organization’s aims. The organization supports marginalized small producers, whether these are independent family businesses, or grouped in associations or co-operatives. It seeks to enable them to move from income insecurity and poverty to economic self-sufficiency and ownership. The organization has a plan of action to carry this out.
Transparency and Accountability: The organization is transparent in its management and commercial relations. It is accountable to all its stakeholders and respects the sensitivity and confidentiality of commercial information supplied. The organization finds appropriate, participatory ways to involve employees, members and producers in its decision-making processes. It ensures that relevant information is provided to all its trading partners. The communication channels are good and open at all levels of the supply chain.
Fair Trading Practices: The organization trades with concern for the social, economic and environmental well-being of marginalized small producers and does not maximize profit at their expense. It is responsible and professional in meeting its commitments in a timely manner. Suppliers respect contracts and deliver products on time and to the desired quality and specifications.
Fair Trade buyers, recognising the financial disadvantages producers and suppliers face, ensure orders are paid on receipt of documents and according to the attached guidelines. For Handicraft Fair Trade products, an interest free pre-payment of at least 50 % is made on request. For Food Fair Trade products, pre-payment of at least 50% at a reasonable interest is made if requested. Interest rates that the suppliers pay must not be higher than the buyers’ cost of borrowing from third parties. Charging interest is not required.
Where southern Fair Trade suppliers receive a pre payment from buyers, they ensure that this payment is passed on to the producers or farmers who make or grow their Fair Trade products.
Buyers consult with suppliers before canceling or rejecting orders. Where orders are cancelled through no fault of producers or suppliers, adequate compensation is guaranteed for work already done. Suppliers and producers consult with buyers if there is a problem with delivery, and ensure compensation is provided when delivered quantities and qualities do not match those invoiced.
The organization maintains long term relationships based on solidarity, trust and mutual respect that contribute to the promotion and growth of Fair Trade. It maintains effective communication with its trading partners. Parties involved in a trading relationship seek to increase the volume of the trade between them and the value and diversity of their product offer as a means of growing Fair Trade for the producers in order to increase their incomes. The organization works cooperatively with the other Fair Trade Organizations in country and avoids unfair competition. It avoids duplicating the designs of patterns of other organizations without permission.
Fair Trade recognizes, promotes and protects the cultural identity and traditional skills of small producers as reflected in their craft designs, food products and other related services.
Payment of a Fair Price: A fair price is one that has been mutually agreed by all through dialogue and participation, which provides fair pay to the producers and can also be sustained by the market. Where Fair Trade pricing structures exist, these are used as a minimum. Fair pay means provision of socially acceptable remuneration (in the local context) considered by producers themselves to be fair and which takes into account the principle of equal pay for equal work by women and men. Fair Trade marketing and importing organizations support capacity building as required to producers, to enable them to set a fair price.
Ensuring no Child Labour and Forced Labour: The organization adheres to the UN Convention on the Rights of the Child, and national / local law on the employment of children. The organization ensures that there is no forced labour in its workforce and / or members or homeworkers.
Organizations who buy Fair Trade products from producer groups either directly or through intermediaries ensure that no forced labour is used in production and the producer complies with the UN Convention on the Rights of the Child, and national / local law on the employment of children. Any involvement of children in the production of Fair Trade products (including learning a traditional art or craft) is always disclosed and monitored and does not adversely affect the children’s well-being, security, educational requirements and need for play.
The organization has a clear policy and plan to promote gender equality that ensures that women as well as men have the ability to gain access to the resources that they need to be productive and also the ability to influence the wider policy, regulatory, and institutional environment that shapes their livelihoods and lives. Organizational constitutions and by-laws allow for and enable women to become active members of the organization in their own right (where it is a membership based organization), and to take up leadership positions in the governance structure regardless of women’s status in relation to ownership of assets such as land and property. Where women are employed within the organization, even where it is an informal employment situation, they receive equal pay for equal work. The organization recognizes women’s full employment rights and is committed to ensuring that women receive their full statutory employment benefits. The organization takes into account the special health and safety needs of pregnant women and breast-feeding mothers.
The organization respects the right of all employees to form and join trade unions of their choice and to bargain collectively. Where the right to join trade unions and bargain collectively are restricted by law and/or political environment, the organization will enable means of independent and free association and bargaining for employees. The organization ensures that representatives of employees are not subject to discrimination in the workplace.
Working hours and conditions for employees and / or members (and any homeworkers) comply with conditions established by national and local laws and ILO conventions.
Fair Trade Organizations are aware of the health and safety conditions in the producer groups they buy from. They seek, on an ongoing basis, to raise awareness of health and safety issues and improve health and safety practices in producer groups.
The organization develops the skills and capabilities of its own employees or members. Organizations working directly with small producers develop specific activities to help these producers improve their management skills, production capabilities and access to markets – local / regional / international / Fair Trade and mainstream as appropriate. Organizations which buy Fair Trade products through Fair Trade intermediaries in the South assist these organizations to develop their capacity to support the marginalized producer groups that they work with.
Promoting Fair Trade: The organization raises awareness of the aim of Fair Trade and of the need for greater justice in world trade through Fair Trade. It advocates for the objectives and activities of Fair Trade according to the scope of the organization. The organization provides its customers with information about itself, the products it markets, and the producer organizations or members that make or harvest the products. Honest advertising and marketing techniques are always used.
Respect for the Environment: Organizations which produce Fair Trade products maximize the use of raw materials from sustainably managed sources in their ranges, buying locally when possible. They use production technologies that seek to reduce energy consumption and where possible use renewable energy technologies that minimize greenhouse gas emissions. They seek to minimize the impact of their waste stream on the environment. Fair Trade agricultural commodity producers minimize their environmental impacts, by using organic or low pesticide use production methods wherever possible.
Buyers and importers of Fair Trade products give priority to buying products made from raw materials that originate from sustainably managed sources, and have the least overall impact on the environment.
All organizations use recycled or easily biodegradable materials for packing to the extent possible, and goods are dispatched by sea wherever possible.
Technology has its dark side and resulting social changes are not always healthy.
Electronic addictions
Collective intelligence
Support for life-long learning
Gallery of human creativity
Mobilization fornoble causes
Community building
Access to information
8 digital skills we must teach our children
The world economic forum has suggested that the next generation will need to master the follow 8 skills: (Park 2016)
Digital identity: The ability to create and manage one’s online identity and reputation. This includes an awareness of one’s online persona and management of the short-term and long-term impact of one’s online presence.
Digital use: The ability to use digital devices and media, including the mastery of control in order to achieve a healthy balance between life online and offline.
Digital safety: The ability to manage risks online (e.g. cyberbullying, grooming, radicalization) as well as problematic content (e.g. violence and obscenity), and to avoid and limit these risks.
Digital security: The ability to detect cyber threats (e.g. hacking, scams, malware), to understand best practices and to use suitable security tools for data protection.
Digital emotional intelligence: The ability to be empathetic and build good relationships with others online.
Digital communication: The ability to communicate and collaborate with others using digital technologies and media.
Digital literacy: The ability to find, evaluate, utilize, share and create content as well as competency in computational thinking.
Digital rights: The ability to understand and uphold personal and legal rights, including the rights to privacy, intellectual property, freedom of speech and protection from hate speech.
Three levels of Digital Intelligence Quotient:
Level 1: Digital citizenship: able to use digital technology and media in safe, responsible and effective ways
Level 2: Digital creativity: Able to become a part of the digital ecosystem by co-creating new content and turning ideas into reality by using digital tools
Level 3: Digital entrepreneurship: Able to use digital media and technologies to solve global challenges or to create new opportunities
Understanding of a child trained as a Digital Citizen
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 |
Project Fedena Login
Project Fedena is the open-source, school and campus management system based on Ruby on Rails.14 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.15 A demo website for Fedena has been established16 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 |
Figure A.1: Joget Logo
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.17 Tutorials are available in PDF and YouTube formats.(Joget Community 2017)
Figure A.2: A working Joget BPM App
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.
Visual programming of Joget apps
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.
Joget apps: BPM driven, Web based apps
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.
Joget Operational data reports and dashboard
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.
Figure A.3: Joget AI and data analysis to identify trends and patterns
Table: Joget Feature Comparison by Edition18
Feature | CE | PE | EE |
---|---|---|---|
|
X | X | X |
|
X | X | |
|
X | X | |
|
X | ||
|
GPL | $80 | $300| | |free | /px | /px |
OrangeHR Logo
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.19 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.20
*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
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 Live
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 macOS21 as well as a live version on the web.22 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.
Yeah! I have finished my book, but I have more to say about some topics. Let me explain them in this appendix.
To know more about bookdown, see https://bookdown.org.
Entity | Specifications |
---|---|
CPU | x86_64-pc-linux-gnu (64-bit) |
OS | Linux Mint 19.3 |
Computing Env | R version 3.4.4 (2018-03-15) |
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
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).
Figure D.1: Business plan
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.
Figure E.1: Feature cards of a HiLo Game with test examples
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 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 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
are always 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 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 a Game of HiLo | Welcome to a Game of 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 a Game of 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 a Game of 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.23
Description of th setup steps | |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Alternatively, Bitnami has a full Ruby stack that can be used to develop Ruby on Rails application.24
{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↩︎
Available online at https://www.cryptokitties.com↩︎
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↩︎
https://devcenter.heroku.com/articles/getting-started-with-rails5↩︎
Bitnami, 2021. Create A New Rails Application. Instruction and software available online at https://docs.bitnami.com/installer/infrastructure/ruby/get-started/create-rails-app/↩︎