Overview of technologies

11
Overview of Digital Technologies and Related subjects Chris Mitchell [email protected] Author: Chris Mitchell Web Design – Web Development - Mobile Apps – SaaS – Software tools – Budgeting – Video – Etc… Please note this is a live document and is updated on a going basis (it is still in its early stages and needs further sections adding. If you would like to have any sections added or amended please contact me via email.)

Transcript of Overview of technologies

Page 1: Overview of technologies

Overview of Digital Technologies and Related subjects

C h r i s M i t c h e l l

c m p r o j e c t m a n a g e r @ g m a i l . c o m

Author: Chris Mitchell

Web Design – Web Development - Mobile Apps – SaaS – Software tools –

Budgeting – Video – Etc…

Please note this is a live document and is updated on a going basis (it is still in its early stages

and needs further sections adding. If you would like to have any sections added or amended

please contact me via email.)

Page 2: Overview of technologies

Table of Contents Web Development: Common used terms, programming languages and their meanings. ............................................................................................................................................... 2

High level overview of how component parts of a website interact: A story about a customer ordering in a restaurant. ................................................................................... 3

Web Development terms: .................................................................................................................................................................................................................................................................. 3

Native Apps and Web Apps.............................................................................................................................................................................................................................................................. 5

Web apps ........................................................................................................................................................................................................................................................................................... 5

Web advantages ............................................................................................................................................................................................................................................................................... 5

Native apps ....................................................................................................................................................................................................................................................................................... 6

Native advantages ........................................................................................................................................................................................................................................................................... 6

What Is 'SaaS' (Software as a Service)? .......................................................................................................................................................................................................................................... 8

Budgeting: 4 Steps to help keep you within Budget................................................................................................................................................................................................................. 10

Page 3: Overview of technologies

Web Development: Common used terms, programming languages and their meanings.

O HTML - Hypertext mark-up language.

O CSS - cascading style sheets. The look and formatting of a document written in mark-up language.

O API - Application programming interface. That is an interface between software components and how they speak to each other.

O Java - General purpose computer programming language.

O PHP - hypertext pre-processor.

O MySQL - relational data base management system.

O JQuery - JavaScript library

O Drupal - This is a content management system. (A bit like Wordpress).

O Wordpress – A content management system (A bit like Drupal).

Page 4: Overview of technologies

High level overview of how component parts of a website interact: A story about a customer ordering

in a restaurant.

O Imagine the customer is the client. HTML is the structure of the menu and CSS is how the parts are designed and laid out. (Another way to look at it is HTML is the menu and CSS is the decoration).

O The waiter is PHP. So the client makes an order from the menu. And the waiter (PHP) takes the order back to the kitchen. The kitchen / chef is MySQL

(That database). MySQL makes the order and PHP returns it to the customer.

Web Development terms:

This section was written by Justin Emond and Chris Steins. It is taken from a great book they wrote called ‘Pro Web Project Management.’ These terms are used in

web development but can also be used in other areas of work.

O A design mock-up is an image that shows exactly how a typical page will look. Best used for public web design projects.

O A wireframe is a non-styled mock-up of how the major elements of a web page will be arranged and positioned in relation to each other. Good for most projects before design mock-ups or HTML mock-ups are created.

O A HTML mock-up is a clickable set of screens that work in a browser and look exactly how the application will look. Best used for customer software development.

O A technical specification is a plain-language document that describes in detail what every part of every page will do and typically contains screen shots of

the HTML mock-ups. Best for larger custom software projects.

Page 5: Overview of technologies

For a typical public design web project, the preparation process would be:

1. Collect requirements. 2. Prepare wireframes. 3. Collect feedback and refine. 4. Prepare design mock-ups. For a typical midsize custom software project, the process would be:

1. Collect requirements. 2. Prepare wireframes 3. Collect feedback and refine. 4. Prepare HTML mock-ups.

For a typical larger custom software project, the process would be:

1. Collect requirements 2. Prepare wireframes (optional) 3. Collect Feedback and refine 4. Prepare HTML mock-ups 5. Collect feedback and refine 6. Prepare technical specification 7. Prepare database schema (see “Creating a Database” later in this chapter)

Page 6: Overview of technologies

Native Apps and Web Apps

(This section was written by Casey Frechette)

O 1. Native apps run alongside the browser. They’re built with tools specific to the device’s platform (usually Android or iOS), give a publisher prominent

placement on a user’s home screen, and benefit from a raft of sophisticated features.

O 2. Web apps run within the browser. They’re built with a collection of advanced Web technologies — but, like native apps, emphasize utility over content.

Though lacking the power of their native counterparts, Web apps can be equally capable for users and may be a more cost-effective alternative for

publishers.

Web apps O A Web app runs in the browser. Technically it’s a Web page, but in practice it looks and works like an app. It’s designed to allow users to accomplish

something.

O Web apps rely on the same technological tools that power the rest of the Web, and make use of some of the newest and most-powerful capabilities of

those tools. HTML5 represents and structures content in a Web app, CSS3 provides a design for the app, and JavaScript adds functionality and can serve as

a bridge to the device’s hardware.

O Combining these tools allows for exciting possibilities, including geo-location, multi-touch, video and audio, device orientation detection, and offline

storage. Not long ago, these capabilities were exclusive to native apps. But now the Web is catching up.

Web advantages O Web apps offer three key advantages:

O 1. Because the Web’s technologies and underlying standards are open, changing the tools that underpin it can be slow and messy. The end result, though, is

a platform that works consistently regardless of what device is used. That lets publishers build something once and know it will work on many devices, and

means only one product has to be maintained and updated.

O 2. Many newsrooms have Web developers on staff, but not app builders. Web apps give such newsrooms a chance to capitalize on their developers’ existing

skills – HTML, JavaScript and more – to build engaging, feature-based experiences.

O 3. Web apps are easy to integrate with content elsewhere on the Web, including other Web apps, sites and the APIs provided by various Web-based services.

Page 7: Overview of technologies

Native apps O Native apps are built with a mix of platform-specific technologies. The Android and iOS ecosystems command the lion’s share of the marketplace – about

90 per cent of all mobile devices (phone and tablet) run one of these two platforms. Windows Phone is a distant third with about 3 percent market share,

and a hodgepodge of other platforms round things out.

O Most app developers are concerned only with Android and iOS, which simplifies things somewhat for publishers. Unfortunately, these platforms run on

completely different technologies.

O Android programmers mainly build apps with Java, making occasional use of Python. Underlying code libraries – the building blocks of the Android

platform – rely on a combination of C and C++. Each is a separate language and, in the mobile world, all are specific to the Android platform.

O iOS developers, on the other hand, use the Objective-C programming language, the Cocoa Touch framework and Xcode, a collection of programming

tools.

O Given the range of technologies involved in development and the clear division between the Android and iOS camps, native apps present a workflow

challenge for publishers: While it may be possible to design an app once, the full development cycle has to be completed at least twice, and even then 10

per cent of potential mobile users are left out.

O Developing native apps in sequence is a common workaround, but publishers must decide which platform comes first. Android is the clear frontrunner

with about 52 per cent of the overall mobile market, but iOS users spend much more money on paid apps. So publishers must decide what goal to

prioritize: a larger audience or more revenue.

Native advantages O Five key advantages set native apps apart from their Web counterparts:

O 1. They can deliver a better user experience. Web apps always include elements from the browser, such as the address bar and other related tools. On small screens, that’s precious space that could be devoted to app-specific controls. Certain user interactions, such as swiping a page to move or change content,

can also be more fluid and consistent in a native app.

O 2. They integrate more closely with the device’s hardware. This may change as Web technologies progress and become more capable, but for now native

apps have the upper hand. Accessing the likes of Bluetooth, USB, telephony and GPS remains challenging — if not impossible — with Web technologies, while other hardware (including cameras and videos) can only be accessed in a limited way.

O 3. Native apps allow for close integration with the operating system and other apps. This presents interesting possibilities in which one app can “talk” to

another, exchanging information or working in tandem to perform a task for the user.

Page 8: Overview of technologies

O 4. Web apps stop running when the browser closes, but native apps can run continuously, even when they’re not active. This allows user alerts and

notifications.

O 5. Native apps have the potential to run faster than Web apps. This is especially true for graphics-intensive apps such as games.

Page 9: Overview of technologies

What Is 'SaaS' (Software as a Service)? (This section was written by Paul Gil)

Answer: 'SaaS', or 'Software as a Service', describes when users 'rent' or borrow online software instead of actually purchasing and installing it on

their own computers. It is the same situation as people using Gmail or Yahoo mail services, except that SaaS goes much further. SaaS is the foundational idea

behind centralized computing: entire businesses and thousands of employees will run their computer tools as online rented products. All of the processing work

and file saving will be done on the Internet, with users accessing their tools and files using a web browser.

SaaS, when combined with PaaS (hardware Platform as a Service), forms what we call 'Cloud Computing'.

SaaS and PaaS describe the business model of users logging into a centralized hub to access their software products. Users open their files and software only while

online, using only their web browser and passwords. It is a resurgence of the 1950's and 1960's mainframe model, but tailored to web browsers and Internet

standards.

SaaS/Cloud Example 1: instead of selling you a copy of Microsoft Word for $300, a cloud computing model would "rent" word processing software to you

through the Internet for perhaps 5 dollars a month. You would not install any special software, nor would you be confined to your home machine to use this rented

online product. You simply use your modern web browser to login from any web-enabled computer, and you can access your word processing documents in the

same way that you would access your Gmail.

SaaS/Cloud Example 2: your small car sales business would not spend thousands of dollars on a sales database. Instead, the company owners would "rent"

access to a sophisticated online sales database, and all the car salesmen would access that information through their web-enabled computers or handhelds.

SaaS/Cloud Example 3: you decide to start a health club in your hometown, and need computer tools for your receptionist, financial controller, 4 salespeople, 2

membership coordinators, and 3 personal trainers. But you do not want the headaches nor the cost of paying part-time IT staff to build and support those

computer tools. Instead, you give all your health club staff access to the cloud of the Internet, and rent their office software online, which will be stored and

supported somewhere in Arizona. You will not need any regular IT support staff then; you will just need occasional contract support to ensure that your hardware

is maintained.

The Benefits of SaaS/Cloud Computing:

The primary benefit of Software as a Service is reduced cost for everyone involved. Software vendors do not have to spend thousands of hours supporting users

over the phone... they would simply maintain and repair a single central copy of the product online. Conversely, users wouldn't have to shell out the large up-front

Page 10: Overview of technologies

costs of fully purchasing word processing, spreadsheet, or other end user products. Users would instead pay nominal rental fees to access the large cntral copy.

The Downsides of SaaS/Cloud Computing:

The risk of Software as a Service and cloud computing is that the users must place a high level of trust into the online software vendors that they will not disrupt

the service. In a way, the software vendor holds its customers "hostage" because all of their documentation and productivity is now in the vendor's hands. Security

and protection of the file privacy becomes even more necessary, as the massive Internet is now part of the business network.

When a 600-employee business switches to cloud computing, they must choose their software vendor carefully. There will be dramatically-reduced administration cost to use cloud computing software. But there will be an increase in the risks of service disruption, connectivity, and online security.

Page 11: Overview of technologies

Budgeting: 4 Steps to help keep you within Budget Written by Jason Westland

1. Continually forecast the budget. A project run without frequent budget management and reforecasting will likely be headed for failure. Why? Because frequent budget

oversight prevents the budget from getting too far out of hand. A 10 per cent budget overrun is far easier to correct than a 50 per cent overrun. Your chances of

keeping the project on track with frequent review of the budget plan is far greater than if you forecast it once and forget about it.

2. Regularly forecast resource usage. Just as the budget needs to be constantly revisited to keep it on track, you need to do the same for resource usage, since the

people working on a project contribute to its cost. Project managers should review the number of people currently working on a project and the project's future

resource needs on a weekly basis . Doing so will ensure that you're fully utilizing the resources you have and that you have the right resources ready for the rest of

the project. Regularly revisiting the resource forecast will help keep your project budget on track.

Similar to this Article

3. Keep the team informed. Always keep the project team informed of the project budget forecast. An informed team is an empowered team that takes ownership

of the project. By keeping the team informed of the budget status, they will be more likely to watch their project charges and far less likely to charge extra 'grey area'

hours to your project (those are the hours that they know they worked by aren't sure what they were working on.)

4. Manage scope meticulously. Scope creep is one of the leading causes of project overruns. As unplanned work finds its way into your project, billable hours

mount and the project budget can get out of control. Project managers must carefully manage scope by creating change orders for work that isn't covered by the

project's initial requirements. Change orders authorize additional funding for the project to cover the cost of extra work, and thus keep the project to its new

budget.

The project budget must be a living part of projects—something project managers review with their teams and their stakeholders on a regular basis. Project

managers who carefully watch budgets throughout the lives of their projects will keep stakeholders and management happy and thus experience greater project and

career success.