Talk:Web development/Web development (rewrite)
Note: I have allocated the current content (copied on 12/26/2006) of the WEB DEVELOPMENT article to a new page. Some of what follows is new material I am drafting, some is existing material with my comments about it. Many sections are still empty, but are included to show the overall layout. I hope to at least write stubs for each section.
In parallel with this, I am also rewriting the Web Design article. I will be moving some of that material to this page -- see my notes there.
For more details of how to participate in this discussion, see the Talk:Web development page. But please go ahead and make minor edits here, if you see something that needs fixing. Chris Loosley 21:43, 29 December 2006 (UTC)
Introduction
I think this existing material can be reworked a bit to produce a good introduction. It needs to better reflect the diverse products of Web development -- pages, sites, blogs, consumer and business applications, Web services, and ... (what have I forgotten?). Chris Loosley 16:53, 28 December 2006 (UTC)
Web development is a broad term that incorporates all areas of developing a Web site for the World Wide Web. This can include graphical Web design, actual coding of pages, backend programming, and Web server configuration. However, among web professionals, Web development usually refers only to the non-design aspects of building Web sites, e.g. writing markup and coding.
The following examples should be preceded by a more general sentence saying that there is no standard set of participants, only some common tasks to be accomplished. Also, this material could be merged into the later section on small- and large-scale development. Chris Loosley 16:53, 28 December 2006 (UTC)
For larger businesses and organizations, Web development teams can consist of hundreds of people. Smaller organizations may only require a single permanent or contracting webmaster, or secondary assignment to related job positions such as a graphic designer and/or Information systems technician. Web development may be a collaborative effort between departments rather than the domain of a designated department.
Web development activities
Web development is a special form of Software development, a broad topic that is covered in many Wikipedia articles. The principal activities of any software development process are requirements analysis, architecture and design, programming, testing, and deployment. Although a Web development process incorporates corresponding activities, the it is best described by a slightly different set of categories. The principal Web development activities are:
- Requirements Analysis
- Conceptual Design
- Mockups and Prototyping
- Production
- Launch
- Maintenance
These categories reflect the specific challenges of developing for the Web, the approaches typically adopted by those doing Web development, and the terminology favored among Web designers and developers to describe the processes they follow. But note that the above list of activities, although presented in a logical order, does not imply that those activities must be performed sequentially in a process that follows the waterfall model. In fact, Web development is much more likely to be performed using an iterative and incremental development process.
The following paragraphs summarize the tasks and deliverables that comprise each development activity.
To begin the process of creating the following sections, I have included sample descriptions of each activity or phase, which I will edit. They are taken from Diamond Bullet Design, Inc. [1]. Their process parallels the Web development process presented in the book "Usability For The Web", by Tom Brinck, Darren Gergle, and Scott D. Wood. (Publisher's page), which contains the most complete and well structured description of a Web development process I am familiar with. Chris Loosley 21:06, 29 December 2006 (UTC)
Requirements Analysis
Sample: Chris Loosley 21:16, 29 December 2006 (UTC)
Strategy and User Needs Analysis: We identify requirements, formulate the design problem, and develop a viable strategy to meet business needs in a cost-sensitive manner. Beginning with a client's existing brand strategy, organizational information, and desired business outcomes, we work to determine the target audience and platforms of a project and to create a clear profile of users, their tasks, and the usability goals of the end-product. Common evaluation methods at this stage include competitive analysis, exploratory research, functional and observational analysis, focus groups, user interviews, and surveys. (C) Copyright 2002. Diamond Bullet Design, Inc.
Conceptual Design
Sample: Chris Loosley 21:16, 29 December 2006 (UTC)
Conceptual Design: We lay out the conceptual design, or initial framework, of a website or software application. We work to determine functionality, carefully evaluating product effectiveness and viability before committing to any specific layout or implementation. Key considerations include the way users will interact with a particular website or application, the step-by-step processes they will perform, and the relationship between individual pages. This stage incorporates user testing and expert review processes to ensure that our work will achieve desired results in real-world situations. (C) Copyright 2002. Diamond Bullet Design, Inc.
Mockups and Prototyping
Sample: Chris Loosley 21:16, 29 December 2006 (UTC)
Mockups and Prototyping: We create visual representations, or mockups, and interactive scenarios, or prototypes, in order to develop and refine the final product design. Through a rapid production and review process, we save time and money by understanding the impact of our work early on, avoiding expensive changes at a later stage. Common evaluation methods include focus groups and user testing, as well as evaluative walkthroughs and testing against standards and guidelines. Through careful work at this stage, we ensure that a design is ready for production. (C) Copyright 2002. Diamond Bullet Design, Inc.
Production
Sample: Chris Loosley 21:16, 29 December 2006 (UTC)
Production: We create the finished product;from final text and graphic content to software development and implementation. Guided by comprehensive processes of quality assurance and usability evaluation, we develop a product that delights users and meets or exceeds our established benchmarks. (C) Copyright 2002. Diamond Bullet Design, Inc.
Static and dynamic page generation
I have moved this section here from the current article on Web design. I added links to DHTML and JavaScript. It needs a one sentence introduction linking to the terms static Web page and dynamic Web page. Chris Loosley 06:58, 1 January 2007 (UTC)
The traditional method of laying out web pages, HTML, is static. There are two ways of delivering content dynamically:
Server-side
A web server, running special software, constructs an HTML page 'on the fly', according to the user's request and possibly other variables, such as time or stock levels.
Suitable scripting languages include:
XSLT can be used to translate data from XML format into HTML.
MySQL and PostgreSQL are popular free SQL databases, suitable for use with the above. They can be used to allow users, subject to password access if required, to update content.
Client-side
The next paragraph reflects a particular POV, not common practice -- see Ajax. Chris Loosley 06:58, 1 January 2007 (UTC)
Client-side scripting works at the user's browser, and therefore should not be used for "mission critical' work, where the user's capabilities are not known – it is more suited to adding decoration and other ephemeral content. It is most often achieved through JavaScript.
Client side DHTML can pose major problems for Web accessibility and search engine optimization. Most software designed for assisting people with disabilities, and most search engine robots do not support client side DHTML.
If a web site's menus are built with JavaScript, it is usually impossible for search engines to find the pages listed in the menus, unless an alternative navigation scheme is provided elsewhere on the page. (NOTE: By using nested lists for navigation menus, and slightly more complex, DOM-based scripts, this problem may be overcome.)
Launch
Sample: Chris Loosley 21:16, 29 December 2006 (UTC)
Deployment ...: We make our product available to the public. In a final pre-launch quality testing phase, we ensure that every element of a product is ready for use. Immediately following deployment, a final correctness assessment verifies accuracy. (C) Copyright 2002. Diamond Bullet Design, Inc.
Maintenance
Sample: Chris Loosley 21:16, 29 December 2006 (UTC)
... and Ongoing Support: We then move into our maintenance and stewardship roles, providing support to our clients and their customers. Through field testing, user feedback, and hit- log analysis, we provide ongoing optimization of your site in response to actual usage and evolving customer needs. (C) Copyright 2002. Diamond Bullet Design, Inc.
Small-scale and large-scale Web development
I know we need to cover this, but I have not yet decided where to put it. Chris Loosley 16:53, 28 December 2006 (UTC)
In practice, informal approaches to Web development, especially those employed by a single Web developer or a small development team, may not treat each development category listed above as a distinct activity or phase. Nonetheless, the more formal descriptions of software development processes do serve to identify a collection of tasks that are essential to the production of effective software. So while people may adopt many different methodologies (or approaches) for addressing the work, those essential tasks must still be performed -- somehow, by someone -- during any development process. This article focuses primarily on the tasks of Web development, rather than on the processes or methodologies that can be adopted to perform those tasks.
Concerns that span development tasks
This article should contain short sections on each of these topics, but in most (maybe all?) cases those sections would link to a separate article. Chris Loosley 16:53, 28 December 2006 (UTC)
Project Management
Web Design
This will refer to the (rewritten) article on Web Design . Chris Loosley 22:37, 29 December 2006 (UTC)
Draft of new material: Among Web designers, the term Web design is sometimes used as a synonym for Web development. However, a stricter interpretation of these terms would distinguish them, as follows: design is a planning activity, which is only one component of an engineering process. Consider the analogy of civil or mechanical engineering. The person who designs a bridge, or a house, or a car, is only one part of the team responsible for producing the final result. For Web development, a similar distinction can be made. However, this distinction tends to blurred in the software development arena, because it is common for developers to participate in (and even be responsible for) many design decisions. Chris Loosley 22:37, 29 December 2006 (UTC)
Usability
See articles on usability and Web usability. Chris Loosley 21:56, 29 December 2006 (UTC)
Findability
There is a short article on findability. Chris Loosley 21:51, 29 December 2006 (UTC)
User Interaction
Performance
Accessibility
Standards
Platforms, frameworks, and tools
Some initial suggestions for edits of existing material. We will need a reference to Web application frameworks here. Chris Loosley 18:55, 29 December 2006 (UTC)
As far as Web development tools and platforms are concerned, tThere are many systems available to the public free of charge to aid in development. A popular example is the LAMP (Linux, Apache, MySQL, PHP), which is usually distributed free of charge. This fact alone has manifested into many people around the globe setting up new Web sites daily and thus contributing to increase in Web development popularity.
Another contributing factor has been the rise of easy to use WYSIWYG Web development software, most prominently Microsoft FrontPage or Macromedia Dreamweaver. Using such software, virtually anyone can develop a Web page in a matter of minutes. Knowledge of HyperText Markup Language (HTML), or other programming languages is not required.
The next generation of Web development tools uses the strong growth in LAMP and Microsoft .NET technologies to provide the Web as a way to run applications online. Web developers now help to deliver applications as Web services which were traditionally only available as applications on a desk based computer.
Instead of running executable code on a local computer, users are interacting with online applications to create new content. Another good example of transformative communication led by Web development is the blog. Web applications such as WordPress and b2evolution have created easily implemented blog environments for individual Web sites. Open source content systems such as Xoops, Joomla, and Drupal have extended Web development into new modes of interaction and communication.
History of Web Development
I favor moving this section towards the end of the article -- comments? Chris Loosley 16:53, 28 December 2006 (UTC)
Since the mid-1990's, Web development has been one of the fastest growing industries in the United States. In 1995 there were fewer than 1,000 Web development companies and in 2005 there are over 30,000 such companies.[citation needed] The Web development industry is expected to grow over 20% by 2010. The growth of this industry is being pushed by large businesses wishing to sell products and services to their customers and to automate business workflow, as well as the growth of many small web design and development companies.
In addition, cost of Web site development and hosting has dropped dramatically during this time. Instead of costing tens of thousands of dollars, as was the case for early websites, one can now develop a simple web site for less than a thousand dollars, depending on the complexity and amount of content. [citation needed] Smaller Web site development companies are now able to make web design accessible to both smaller companies and individuals further fueling the growth of the web development industry.
See also
External links
Sections of current article that will be dropped
These two paragraphs are off topic. They are about the effects of the Web, not about Web development. That article already contains material about Sociological implications Chris Loosley 16:53, 28 December 2006 (UTC)
This has created new methods in communication and allowed for many opportunities to decentralize information and media distribution. Users are now able to interact with applications from many locations, instead of being tied to a specific workstation for their application environment.
Examples of dramatic transformation in communication and commerce led by Web development include e-commerce. Online auction sites such as eBay have changed the way consumers consume and purchase goods and services. Online resellers such as Amazon.com and Buy.com (among many, many others) have transformed the shopping and bargain hunting experience for many consumers.