Planning

Your company Modo has been hired by the world’s leading Cryptocritter™ exchange, AScam, to help design the future of crypto-pet and crypto-livestock trading.  What began as kitties in 2017 (https://www.cryptokitties.co/) has become something so much more.  A veritable zoo of animals has been created, leading to a free-for-all style exchange in which non-pure bred crypto-animals are being bought and sold by unlicensed cryptozoologists. Not only is this causing wild price fluctuations among all the different currencies being use, with scams having become the norm, it has also drawn the ire of animals rights groups like PETA.

AScam plans to launch a new currency called KittyKash™ with the intention of bringing these disparate markets together into one place, thus making it easier and safer to trade. With this new currency will come a push to transform the current exchange into one not only for those with the technical know-how, but one which will be accessible to your average internet user. Their goal is to make it easy enough for your grandparents to own the digital pet they deserve.

Product evaluation

  • 1.1.2 – Describe the need for change management.
  • 1.2.4 – Identify the relevant stakeholders when planning a new system.
  • 1.1.1 – Identify the context for which a new system is planned.

The product evaluation stage is the first look at any project. It’s when you first determine who the stakeholders will be, and what they want. In the case of the AScam website, the product is replacing an older one, which means that a change management team will need to be chosen to help guide the process.

Stakeholders

Stakeholders come in two varieties, as seen by the graphic below, and it’s important to address both of them. For now, it’s important to be aware of the many different stakeholders that exist, though the ones of primary concern with AScam’s new site are the customers, and the employees of both Modo and AScam.

Common stakeholders (source)

Change management

AScam has to shift its business from one which caters to a number of different cryptocurrencies and markets to one centered on their currency, KittyKash. The website redesign, and refocusing of the company, will need to include a host of features to help AScam’s older users to the new system, as well as think about how the change will affect the employees and company IT infrastructure. In order to do that, a change management team will need to make an assessment of the challenges ahead.

Change management teams work at figuring out the right way to deal with all levels of an organization to assure that change goes smoothly. Sometimes this works well, and sometimes this results in utter failure.

Written task: Change management

In this task you will read about the basic of change management, as well as look at some successes and failure within the industry, and then answer the questions below.

A. Read: What is change management?

  1. Summarize the levels of change management.
  2. What factors do you think play the largest role in change being successful?

B. Read: Failures of change management

  1. Summarize the three lessons that can be learned from these situations.
  2. Given the AScam changeover, make at least two suggestions as to what the team could do in order to avoid a similar failure. State why you believe these will be successful.

Context

AScam is a smaller company, with only about 20 employees, and the changes they are undertaking will require them to expand somewhat. The new website and underlying system will be more complex, and it’s important that they plan for the future, but also for the security and stability of the system itself.

All of the above is the context in which this change is happening, and the change management team will need to take it into consideration when making recommendations on how the implementation should be done. It’s at this stage where a number of key questions must be asked.

  • What technologies should be used?
    • Libraries
    • APIs
    • Development tools
    • Hardware
  • How much of the older system should be maintained or should they start from scratch?
  • Will new employees need to be hired or old employees trained?
    • If so, with what skills?
Written task: Context

Understanding the situation in which you’re building a new system is important. That means taking into consideration a number of different factors, and limitations, the system and stakeholders such as the following.

  • Budget
  • Physical space
  • Labor and skill set
  • Technology available
  • Type of customers
  1. Within the case of AScam, what sort of limitations does the company have in implementing their solution?

Planning

  • 1.1.6 – Discuss problems that may arise as a part of data migration.
  • 1.2.4 – Identify the relevant stakeholders when planning a new system.
  • 1.2.5 – Describe methods of obtaining requirements from stakeholders.
  • 1.2.6 – Describe appropriate techniques for gathering the information needed to arrive at a workable solution.

The planning stage is perhaps the most important stage in the development process, and some people say that up to 50% of time in a project should be spent on it in order to make sure the next steps go correctly. In the process of the planning, an organization should take the following steps.

  1. Talk to the client to find out their desires.
  2. Think through possible technologies to use.
  3. Run through possible problems that may occur.
  4. Draw up requirements to meet the client’s needs.
  5. Is the product even possible? (feasibility study)

One may revisit these steps multiple times during the planning of a system, as the process is not strictly linear.

As a member of the Modo team, you recently sat down the leaders at AScam to ask them sort of website they are looking for. They gave you the following specifications.

  • Should have a responsive design.
  • Should be have a cryptocurrency feel (melancholy at devalued and dying currencies?).
  • Use an SQL database on the backend.
  • Have a Python-based web server.
  • User management
  • Admin server-side login tool (GUI-based)

SQL Database

Before Modo can start building anything, it’s possible they may have to learn a bit about the underlying technology. We’ll start with SQL and then move on later to learning about both sides of a website.

Practical activity: SQL

SQL (Structured Query Language) is the most used language for databases.  At this point, you only need to gain a basic understanding of how the language works, since we’ll be using it later on with sqlite and Python. Take a look at this interactive tutorial to get some practice with SQL. Feel free to skip around the topics a bit, but you should make sure to hit the following areas.

  • Queries
  • Filtering
  • Creating tables
  • Inserting rows

Data migration

AScam’s older website used an SQL database, but they set it up to be localized in North America. This means that it’s not possible to store different currency types or non-English characters. Given that the AScam site wants to go international, this can cause a lot problems when shifting (migrating) the data over.

Data migration comes in many forms, and as every organization grows, it will likely go through the process. This article does a good job creating a scenario where a company has to move from a simple Excel spreadsheet to a database when it becomes too large. In many ways a spreadsheet and database are similar. They both use tables of information, store data in rows, and provide links between the data. Databases, though, provide much stricter rules for how data is stored, and they generally store a lot more of it. Below are some of the key technical issues that can happen when migrating data.

Character sets 


Data can be encoding in many different ways. You’re probably familiar with the idea of ASCII values, some of which are shown in the figure below.

Of course, ASCII characters are only 8-bit in length, which means that no more than 255 unique characters can be stored. There are actually many different character sets, such as Unicode and UTF-8 which accommodate the tens of thousands of characters out there. Take a look at this site to learn a bit more about the encoding of characters. When a database is created a character set will be chosen. Later on, this can cause problems if that character set doesn’t include values that need to be added to the database.

Data formats 


Formats can be an issue when one database supports certain features that another does not. For example, if a database has a particular format for time down to the microsecond, but another doesn’t, then rounding will need to occur, which could later affect whoever is using that data.

One area where formatting is important is with time and money. Some places uses commas, where others use decimals, while some list day/month/year in different orders. When migrating data, these issues will need to be addressed.

Byte size


Sometimes it has to do with the physical capacity of the space itself. This usually isn’t a probably, but it can occur where fields (a name that is similar to cells in a spreadsheet) can only hold a limited number of characters or can only hold a 32-bit value as opposed to 64-bit. Like with formats, rounding or other techniques will need to be used to get things to migrate correctly.

Practical activity: Migration Fun

This spreadsheet contains ~130 sample rows of data from a company. The actual spreadsheet contains tens of thousands of rows and has become nearly impossible to search through. They are looking to turn it into a database. Given that a database will require uniformity, you will look at what sort of problems they might have, and how they might be solved.

Your task is to export the file as a CSV and then use your Python abilities to parse the fields, and find a way to automatically fix or identify the areas which don’t match the following specifications.

  • All phone numbers should be saved in the format (XXX)-XXX-XXXX
  • Names should be have only a first and last name and contain only letters
  • Dates should be day/month/year and be in the format XX/XX/XXXX where a day or month could be something like 06.
  • All sales and item ids should be AAA-AA-XXXXXXXX, where A is a letter and X is a number.
  • The department column can have no abbreviations.

Requirements

Before you can draw up your requirements you need to really understand who the stakeholders are, and what they want. Who is the product for and how tech savvy are they? Is this product being used in a mission critical situation, such with a satellite launch, or is a video game. 

There are a number of ways one can get information from a client. Each has its own merit, and issues. What follows are a few of the more common methods.

  • Observation or analysis of the situation which needs a product or change. 
  • Directly asking the client.
  • Using surveys to ask the client. 
  • Looking at similar products and their requirements. 

No matter the method used, continued communication is necessary in order to create the initial requirements. Once those have been created, a workable solution can be devised. Of course, this process is iterative, meaning that there will be a lot of back and forth as the requirements are revised until the client is satisfied. 

Practical Activity: Requirements

Read over these properties of a good requirement and compare them to those in your IA. Which of all of yours testable, unambiguous, and most importantly feasible. This last characteristic is something many have issues with. Keep your solution easy enough for you to complete, i.e. feasible.