© Ali Shabdar 2017

Ali Shabdar, Mastering Zoho Creator , https://doi.org/10.1007/978-1-4842-2907-1_2

2. Fundamentals of Building Software

Ali Shabdar

(1)Vancouver, British Columbia, Canada

If you love blueberry pie as much as I do, especially when it is served warm accompanied by a scoop of French vanilla ice cream, you would care as much about the ingredients, the recipe, and the whole experience of enjoying every bite.

Fresh and natural ingredients, an old recipe tested and perfected for decades, an experienced baker, and of course the ice cream all decorated on a plate that makes the whole desert stand out. Who can resist this?

Good software is like good pie, but much harder to bake. There is not one element (ingredients, recipe, or the baker) that can guarantee an outcome that makes users drool.

To make drool-worthy software, everything—from the ingredients (code) and the recipe (methodologies and best-practices) to the baker (you, the programmer) and the plate (UX)—must be in perfect harmony to make users enjoy using your software, while solving their problems.

Note

According to Nielsen Norman Group, user experience (UX) encompasses all aspects of the end-user’s interaction with the company, its services, and its products. Read more on their web site for the full definition of UX and also how it differs from usability. Read more at: https://www.nngroup.com/articles/definition-user-experience/ .

This all sounds nice and delicious, but making good software is hard. I remember back in the mid 90s when I was introduced to programming, that you needed to write at least a few hundred lines of code for anything mildly interesting to happen. But times have changed, mostly for the better.

Throughout time, the complexity of problems computers are expected to solve has grown exponentially, but so has the power of computers. There are also a plethora of tools and platforms developed to let businesses and individuals solve complex problems quicker and automate the few remaining mundane jobs of the 21st Century better.

Today, with platforms such as Zoho Creator , you can practically drag and drop building blocks of an application to a form, and Zoho Creator will “magically” create a working piece of software to, for example, help you manage your sales transactions.

With Creator, there is no need to write a web application from scratch. Even with advanced frameworks, such as Django or Ruby on Rails, an app this simple could take hundreds of lines of code and a few days of development and testing.

A Little Bit of History

The magical ability of Creator to make software in a matter of hours was how I was introduced to the Zoho suite almost a decade ago.

Back in 2008 when I was in charge of the marketing department of an international real estate brand, we had a clunky CRM (Customer Relationship Management) system, which everyone loathed and no one used properly.

The CRM quickly became a bottleneck in our day-to-day operations and the company started losing valuable sales information. I needed the sales information for strategic and tactical marketing activities, so I decided to create software for the sales team. The idea was to help them to easily and quickly enter information on the go and then the admin team would clean up and transfer the data semi-automatically to the main CRM.

I envisioned a system that was easily available to our 20 salespeople and the admin team at all times with centralized data storage. As a former web developer, my natural choice was to create a fully web-based software for the job.

However, a quick estimate shattered my dreams. It would have taken me at least a month of full-time work to create something usable from concept to launch, but I had a department to run and my boss was quite skeptical about the whole idea.

By sheer luck and some help from Google search, I found Zoho Creator, a tool with a simple promise that would let me create fully functional web applications with no to little coding.

Creator reminded me of Microsoft Access, the legendary database software for Windows. Only Zoho Creator was designed for the Internet age.

Four days later, I finished creating a mini CRM for the sales team from scratch using only Zoho Creator. The app was multiuser, secure, always available, and provided a user-friendly way for the sales team to enter key information on the go.

The app even generated listing data to send to the local media for advertisement, all at a click of a button. The team loved the app and used it for a couple of years even after I left that company.

Zoho Creator has since grown to be a powerful platform for creating cloud-based business applications that can serve thousands of users with almost no IT maintenance needed.

Obviously, Creator is not an answer for all problems. There are many scenarios that need less or more complex solutions, but having created many complex Creator-based apps, I always keep it as an option when I look for tools to meet the requirements of the job at hand.

Getting Started

I can imagine that you are all excited to get to work and create your very first application in Zoho Creator. But before you do that, let’s take a step back and remember the pie metaphor. You have found the right ingredients (Zoho Creator), and there are reliable recipes in this book and online, but how good are you at baking?

If you are a seasoned software engineer or a web developer, you already know about data modeling and design, flow charts, UI/UX, and prototyping. But if you just picked up this book as your first or second computer book to create software, I highly recommend you read this chapter and the additional resources online.

The rest of this chapter is a quick tour of some of the fundamental concepts of creating successful software. The aim is to get a taste of these concepts so you can make it a habit of using them to ensure a great outcome. You can find a multitude of books and online material on each topic, which are a mere Google search away.

It’s All About Data

We live in the information age. It is only natural that some of the biggest problems computers help us solve has to do with data. But what is data and how does it concern us in our day-to-day business?

The Merriam-Webster dictionary defines data as “factual information (such as measurements or statistics) used as a basis for reasoning, discussion, or calculation” ( https://www.merriam-webster.com/dictionary/data ).

According to some estimates,1 there are 2.7 Zettabytes of digital data (and growing) in the world. That is 2.7 billion terabytes. Welcome to the age of big data.

Aside from all the fancy statistics and the jargon, every small business and every individual needs to retain and manage a limited set of structured data. Your lists of to do items, contacts, inventory, sales orders, and any sort of information you can keep in a tabular form of rows and columns is structured data.

Spreadsheet software , such as Microsoft Excel, Google Sheets, or Zoho Sheet, are examples of applications that can store tabular collections of data and allow users to perform complex tasks on the data, such formulas, and charting.

Note

The focus of this book is structured data. In contrast, unstructured data is also hot and relatively recent topic. You can read more about it at: https://en.wikipedia.org/wiki/Unstructured_data .

Table 2-1 shows a simple list of the titles in a small bookshop. Each row contains information about a specific book, structured in a particular order, according to the columns. This way of structuring information can make it easier to store, manage, and use information.

Table 2-1. Sample of Science Books in a Bookstore

Title

Year

Author

ISBN-10

Publisher

Price

Astrophysics for People in a Hurry

2017

Neil deGrasse Tyson

393609391

W. W. Norton & Company

$18.95

Sapiens: A Brief History of Humankind

2015

Yuval Noah Harari

0062316095

Harper

$35

Homo Deus: A Brief History of Tomorrow

2017

Yuval Noah Harari

0062464310

Harper

$35

The Selfish Gene

2016

Richard Dawkins

0198788606

Oxford University Press

$15.95

Free Will

2012

Sam Harris

1451683405

Free Press

$10.99

You can easily store hundreds of thousands of titles in one single data table and search for books based on each column—for example, to find books that are:

  • Written by a specific author

  • Published in a certain year

  • Categorized under a subject

These structured sets of data are called, not surprisingly, datasets. Software that houses and manages collections of datasets are often called databases. Databases come in all flavors and sizes. The simple contacts manager on your phone is actually a database. It allows you to store, retrieve, and alter data—i.e. your contacts. Your favorite spreadsheet software is a database.

However, in a broader sense, a database can be quite complex and with sophisticated features to manage thousands upon thousands of rows of information. A big chunk of those Zettabytes of information in the cyberspace is stored in a multitude of databases in thousands of data centers scattered around the world.

From the users’ perspective, database software is just an interface through which they interact with data and solve their problems, e.g., find information, run calculations, and generate reports.

However, there is much more boring but important stuff happening behind the scenes and it has a lot to do with how the data is structured.

Data Modeling and Database Design

To solve information-related problems and to create software solutions that effectively and efficiently manage information, it is crucial to create a properly designed database first.

This starts with designing the structure of the data that will be housed in the database. This design is actually a conceptual (often visual) representation of how data tables will look in a database.

Modeling data prior to creating a database is a must no matter how small the project is. This will help you understand how data is stored, what the relationships between different pieces are, and how it flows to deliver the expected outcome. It also helps you find gaps early on, design optimum structure, and also review and sign off with the business (non-technical people who commissioned your work and will eventually use your database) to ensure you are on the right track.

Figure 2-1 shows a simplified data model depicting data entities (and their relationships) in a small real estate management system, which you will be building from the ground up in Chapter 7.

A436150_1_En_2_Fig1_HTML.gif
Figure 2-1. A simple data model
Reference

Delve deeper into data modeling by reading articles on LearnDataModeling.com. (See http://learndatamodeling.com/blog/data-modeling-concepts-what-is-data-modeling-data-modeling-overview/ ).

Data modeling and design is one of the complex topics of computer science. You can read many books on the topic and read many articles on methods, tools, and best practices. However, for the purpose of this book, the minimum you should be doing for each app is think of all the information your app will manage and design accordingly.

For instance, in the simple list of the book titles in Table 2-1, the visual representation of the table is the first step to determine the key data that needs to be stored—Title, Edition, Year, Author, ISBN-10, ISBN-13, Publisher, and Price.

If say, three months down the road, you realize that you missed including the number of pages for each book, it will be a difficult job to go back, redesign the table, populate missing data for each book, modify the look and feel of the application, change reports, etc. It is always better to think ahead and design for the future.

Data Types

The next step is to decide what data type is most suitable for each column. Without getting into too much detail, you can store data in computers as two main types—string and number. String type (or text) is suitable for storing arbitrary strings of text and literal information. So, it is easy to guess that a book title or author name should be stored as a string.

On the other hand, the number type allows numeric computation on the values stored. For instance, price should be stored as a number so that you can run financial computations, such as the total value of the existing books in the bookshop.

It is possible to store numbers as strings, especially when you are 100% sure you won’t be doing any numeric operations on them. For example, ISBN10 can be stored as a string of digits, not a real number, simply because you won’t need to do any summation or other numeric operations on it.

Based on this information, the bookstore database has only one table with the columns, as indicated in Table 2-2.

Table 2-2. Table Columns and Types

Column Name

Type

Title

String

Edition

String

Year

Number

Author

String

ISBN-10

String

Publisher

String

Price

Number

There is more to data design than creating mere tables. Concepts, such as relationships and normalization, are beyond the scope of this book; however, they are essential if you are designing full-fledged databases.

Algorithms and Flowcharts

Arguably everything in the world happens within a process. Something as simple as making a peanut butter and jelly sandwich is actually a multi-step process.

Processes are more evident in manufacturing and corporate environments where efficiency, productivity, and automation are high priorities and need to be modeled and improved consistently. The importance of process-thinking expands to the computer world where the main goal of most software is to support the business.

Suppose in a simple sales transaction process, all the steps, the people involved, and the outputs and inputs of that process need to be identified, so it can be accurately and efficiently modeled in a computer program. Forget one step in the process, e.g., sending a notification to the accounts, and your software is useless.

In computer science jargon, step-by-step processes or a sequence of actions to perform a task, such as calculation, data processing, or performing transactions, are called algorithms while their visual representations are called flowcharts and process maps.

Figure 2-2 depicts a simple flowchart showing the steps that generate a report based on the year a book is published.

A436150_1_En_2_Fig2_HTML.gif
Figure 2-2. A simple flowchart

Each one of these steps in the flowchart could have processes and sub-processes underneath it. For example, the step before Finish, Generate Report, could have multiple steps describing how the report will be generated.

Reference

I used Lucidchart ( https://www.lucidchart.com/ ) to draw the flowchart in Figure 2-1. It is a powerful cloud-based diagraming tool that you can use for drawing virtually many kinds of diagrams.

It is evident that creating visual representations of how a software performs certain tasks is useful, as it allows all the steps to be taken into account and enables the project team and other stakeholders to review and sign off on each process.

For the purpose of this book , you can rely on simple drawings that logically explain various business processes. I still encourage you to learn about business process modeling, which helps you tackle more complex scenarios. I briefly talk about business process modeling in my other book, Mastering Zoho CRM. You can also read more about the topic online to gain basic knowledge.

Users at the Center of It All

Even if you design the best and the most robust database on the planet and create solid logic that makes your software tick like an atomic clock, you cannot afford to forget the part that has become more important than the others in the recent years: the user interface and the user experience.

In a world where there are more than five million apps in two of the largest app stores combined ( https://www.statista.com/statistics/276623/number-of-apps-available-in-leading-app-stores/ ), the competition is fierce. The look and feel of your software and how easy and intuitive it is to use could make or break its success.

Designing engaging software has never been more relevant and the very first step to achieve stellar user interface (UI) and user experience is to go back to the drawing board and sketch how the UI elements will fit together and interact with each other.

You can use a pen and a piece of paper to sketch the app, which sometimes is exactly what you need. You can also opt for one of the many wire framing and mockup apps available to give life to your amazing idea.

My personal favorite is MockFlow ( https://mockflow.com/ ), which is a cloud-based app. It allows you design wireframes for virtually any platform and create UI interactions to roughly show how the app will work.

Figure 2-3 shows MockFlow in action. You can drag and drop the UI element to construct windows and forms.

A436150_1_En_2_Fig3_HTML.jpg
Figure 2-3. Designing a great UI with MockFlow

Suppose you are designing an inquiry form. The finished form might look like Figure 2-4.

A436150_1_En_2_Fig4_HTML.jpg
Figure 2-4. Wireframe of an inquiry form

This design prototype shows the type, order, and placement of the elements on the form. You can show this to peers, clients, and focus groups to get their buy-in or sign-off before designing the actual prototype.

Summary

In this chapter, you took a quick tour of some of the concepts and methodologies you need to consider when designing good software, including Zoho Creator apps.

You can start by designing and prototyping breathtaking (and useable) UI and then go deeper into creating logic and database, or you can start by designing a robust database and then building logic, and finally the UI, based on the underlying design.

The important point is to first take the time and design how the software will look and how it works and interact with the users. Fixing half-built software is not easy, nor is it pleasant or economically viable.

In the next chapter, you create your very first Zoho Creator App by using the tools and components available to you.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
18.226.165.131