Web Development – What in the World is a Mashup?

I’ve wanted to write something about mashups because I’ve been having trouble understanding just what they are, and writing often clears the way to understanding with me. I hope this article works for you. On the other hand you may be perfectly clear on the subject already. In which case don’t read this article as it may just confuse things for you and I couldn’t live with the guilt. I’m joking!

Anyway, I read a book recently where mashups were touted as one of the additions to web applications that make for the difference between Web 1.0 and Web 2.0. Antediluvian Web 1.0, of course, was that unenlightened time near the turn of the century when our relationship with the web was limited to feeding it information and reading what it had to say. Web 2.0, or today’s web, not only takes what we feed it but interacts with our input; and what we read is then altered and illuminated in the process. Or something like that. Put a lot of the emphasis on the word “interacts” in my definition of Web 2.0.

Further research found that in order to make a mashup you first had to know something about XML because that is the language used to structure the data–whatever that means. I found a number of fine books on the subject I’ll never get around to reading. Then you have to know a lot about JavaScript because that will be the functionality that brings life to your web page. After that you are ready to form your mashup. All you need is php and mySQL to retrieve the data from the API or API’s (Google maps is a good example of an API often used in mashups). At this point I became fairly certain I wouldn’t be developing any mashups of my own any time soon as I am even less clear on the definition of API’s than I am of mashups.

Ok, so what is a mashup? A mashup, according to the Wikipedia is a “web page or application that combines data or functionality from two or more external sources to create a new service.” Apparently you couldn’t combine things under Web 1.0? Anyway, I don’t think I can improve much on that definition. In fact I feel like the judge who once defined pornography by saying he couldn’t define it but he knew it when he saw it!

The mashups I am most familiar with appear when I want to travel and need a place to stay. It seems every hotel and motel on the continent has a webpage with a map on it produced by Google Maps. Usually the information on the hotel jumps out at you when you run your cursor over an oversized pin in the map. You can usually zoom in on the motel to find the easiest way to get there. This is an example of two databases, Google maps and a hotel database acting in concert with JavaScript allowing you to interact with the webpage. Walla! You’ve got a mashup.

Web Site Development Process – The Life-cycle Steps

A system development process can follow a number of standard or company specific frameworks, methodologies, modeling tools and languages. Software development life cycle normally comes with some standards which can fulfill the needs of any development team. Like software, web sites can also be developed with certain methods with some changes and additions with the existing software development process. Let us see the steps involve in any web site development.

1. Analysis:

Once a customer is started discussing his requirements, the team gets into it, towards the preliminary requirement analysis. As the web site is going to be a part of a system, It needs a complete analysis as, how the web site or the web based application is going to help the present system and how the site is going to help the business. Moreover the analysis should cover all the aspects especially on how the web site is going to join the existing system. The first important thing is finding the targeted audience. Then, All the present hardware, software, people and data should be considered during the time of analysis. For example, if a company XYZ corp is in need of a web site to have its human resource details online, the analysis team may try to utilize the existing data about the employees from the present database. The analysis should be done in the way, that it may not be too time consuming or with very less informative. The team should be able to come up with the complete cost-benefit analysis and as the plan for the project will be an output of analysis, it should be realistic. To achieve this the analyst should consult the designers, developers and testers to come up with a realistic plan.

Input: Interviews with the clients, Mails and supporting docs by the client, Discussions Notes, Online chat, recorded telephone conversations,Model sites/applications etc.,

Output: 1. Work plan, 2. Cost involved, 3. Team requirements, 4. Hardware-software requirements, 5. Supporting documents and 6. the approval

2. Specification Building:

Preliminary specifications are drawn up by covering up each and every element of the requirement. For example if the product is a web site then the modules of the site including general layout, site navigation and dynamic parts of the site should be included in the spec. Larger projects will require further levels of consultation to assess additional business and technical requirements. After reviewing and approving the preliminary document, a written proposal is prepared, outlining the scope of the project including responsibilities, timelines and costs.

Input: Reports from the analysis team

Output: Complete requirement specifications to the individuals and the customer/customer’s representative

3. Design and development:

After building the specification, work on the web site is scheduled upon receipt of the signed proposal, a deposit, and any written content materials and graphics you wish to include. Here normally the layouts and navigation will be designed as a prototype.

Some customers may be interested only in a full functional prototype. In this case we may need to show them the interactivity of the application or site. But in most of the cases customer may be interested in viewing two or three design with all images and navigation.

There can be a lot of suggestions and changes from the customer side, and all the changes should be freezed before moving into the next phase. The revisions could be redisplayed via the web for the customer to view.

As needed, customer comments, feedback and approvals can be communicated by e-mail, fax and telephone.

Throughout the design phase the team should develop test plans and procedures for quality assurance. It is necessary to obtain client approval on design and project plans.

In parallel the Database team will sit and understand the requirements and develop the database with all the data structures and sample data will also be prepared.

Input: Requirement specification

Output: Site design with templates, Images and prototype

4. Content writing:

This phase is necessary mainly for the web sites. There are professional content developers who can write industry specific and relevant content for the site. Content writers to add their text can utilize the design templates. The grammatical and spelling check should be over in this phase.

Input: Designed template

Output: Site with formatted content

5. Coding:

Now its programmers turn to add his code without disturbing the design. Unlike traditional design the developer must know the interface and the code should not disturb the look and feel of the site or application. So the developer should understand the design and navigation. If the site is dynamic then the code should utilize the template. The developer may need to interact with the designer, in order to understand the design. The designer may need to develop some graphic buttons when ever the developer is in need, especially while using some form buttons. If a team of developers is working they should use a CVS to control their sources. Coding team should generate necessary testing plans as well as technical documentation. For example Java users can use JavaDoc to develop their documents to understand their code flow. The end-user documentation can also be prepared by the coding team, which can be used by a technical writer who can understand them, writes helps and manuals later.

Input: The site with forms and the requirement specification

Output: Database driven functions with the site, Coding documents

6. Testing:

Unlike software, web based applications need intensive testing, as the applications will always function as a multi-user system with bandwidth limitations. Some of the testing which should be done are, Integration testing, Stress testing, Scalablity testing, load testing, resolution testing and cross-browser compatibility testing. Both automated testing and manual testing should be done without fail. For example its needed to test fast loading graphics and to calculate their loading time, as they are very important for any web site. There are certain testing tools as well as some online testing tools which can help the testers to test their applications. For example ASP developers can use Microsoft’s Web Application Test Tool to test the ASP applications, which is a free tool available from the Microsoft site to download.

After doing all the testing a live testing is necessary for web sites and web based applications. After uploading the site there should be a complete testing(E.g.. Links test)

Input: The site, Requirement specifications, supporting documents, technical specifications and technical documents

Output: Completed application/site, testing reports, error logs, frequent interaction with the developers and designers

7. Promotion:

This phase is applicable only for web sites. Promotion needs preparation of meta tags, constant analysis and submitting the URL to the search engines and directories. There is a details article in this site on site promotion, click here to read it. The site promotion is normally an ongoing process as the strategies of search engine may change quite often. Submitting a site URLs once in 2 months can be an ideal submission policy. If the customer is willing, then paid click and paid submissions can also be done with additional cost.

Input: Site with content, Client mails mentioning the competitors

Output: Site submission with necessary meta tag preparation

8. Maintenance and Updating:

Web sites will need quite frequent updations to keep them very fresh. In that case we need to do analysis again, and all the other life cycle steps will repeat. Bug fixes can be done during the time of maintenance. Once your web site is operational, ongoing promotion, technical maintenance, content management & updating, site visit activity reports, staff training and mentoring is needed on a regular basis depend on the complexity of your web site and the needs within your organization.

Input: Site/Application, content/functions to be updated, re-Analysis reports

Output: Updated application, supporting documents to other life cycle steps and teams.

The above-mentioned steps alone are not strict to web application or web site development. Some steps may not applicable for certain tasks. Its depend on the cost and time involved and the necessity. Sometimes if it is a intranet site, then there will be no site promotion. But even if you are a small development firm, if you adopt certain planning along with this web engineering steps in mind, it will definitely reflects in the Quality of the outcome.

See the flowchart “How we do web development in Macronimous?”[PDF format]

Placing Search Engines at the Heart of Web Development and Strategy

Search engine optimisation has traditionally been the practice of increasing the ranking of an existing website by altering the content and promoting inbound referral links from other highly ranked pages. The first part (altering the content) can be a bit like trying to panel beat a rusty VW Beetle into a Ferrari. Often to be effective, the entire structure and content of a website needs renewing, including with the coding (especially websites built in tables or Flash), making it a very costly exercise.

A New Beginning

In truth, the best way forward is to completely rebuild the site with fresh search engine optimized text, structure, coding and often design. This way a company can also take advantage of new advances such as content management systems for greater control of content; database driven content to automate the process; RSS news feeds to keep the site current; and standards compliant coding for greater accessibility and usability.

A website may also need to adopt a more sales-driven approach that converts into greater online sales or stimulates a greater response, thus building your customer database for future opt-in mailings. Or it may need to be more interactive and useful to people to encourage return visits and recommendations.

Referral Link Generation Starts at Home

While the new site is being developed, the task of promoting referral links must start in earnest. This is an ongoing process that takes time, effort and imagination. Begin with any websites already under your control. Make sure you are making the most of links from highly ranking pages from websites you own, if it’s appropriate to have links. Then approach suppliers and affiliates. Make sure any existing links from their pages to yours contain core search term keywords and not ‘click here’ or ‘visit the website’. Then try the free listing business directories. Assess the quality of paid for listings, and if your competitors are there, it makes sense for you to be there too.

Online PR is in Your Hands

Many links can be generated through a variety of promotional techniques. Submit your website for review; invite journalists to review your products or services; write your own articles and submit them to publishing websites; create blogs to air your opinions on your trade and use social networks such as Linkedin. As long as it’s ethical and honest, it’s a valid way of generating links to your pages. Dirty tricks such as blog spam can back fire and destroy your reputation.

When the site is complete, continue this process by generating links to specific landing pages to increase their ranking too (remember, your homepage is important, but it can’t do everything in terms of SEO so spread the load).

The SEO Blueprint for New Websites

All new websites should put targeting, content and SEO at the very heart of the process.

These issues must be addressed at the outset:

1) Who is your audience and who is most valuable to you?

2) How will you reach them?

3) What will encourage them to use and return to the website?

4) What will stimulate them to buy or respond?

5) How will you use the customer data to build relationships?

With these findings you can formulate:

1) Core search term keywords and phrases

2) Site structure with key landing pages

3) SEO text, ensuring good keyword densities within URLs, page titles, meta tags, H tags, body text and alt tags

4) Other useful content and media

Then begin the process of identifying and creating referral link opportunities:

1) Within your existing website network

2) On your supplier and affiliates web pages

3) On free business listings

4) On paid for business listings

5) By generating PR

6) Through self published articles

7) Through company blogs

8) Through appropriate social networks

Always remember that Google ranks web pages according to relevance (the content of the page) and importance (the number of links to it from other important websites). By doing so your website need never languish at the bottom of the heap. And what’s more, when your audience increasingly finds your website, they will be inspired by its up-to-date, fresh, relevant and engaging content, and won’t fail to respond in the way you want them to.