21 Steps to a
Successful Webshop
1. Define and Document your Vision/Purpose
"The first step is idealization. It is likewise the
most important step, because it is the plan on which you are going to
build. It must be solid. The architect, when he
plans a 30-storey building, has every line and detail pictured in
advance. The engineer, when he spans a chasm, first ascertains the
strength requirements of a million separate parts." (Excerpt
from).
2. Build a Web Team / Decide which "Roles" your shop requires
A webshop must have a
comprehensive web team in order to produce comprehensive solutions. This team should be comprised of the roles
defined below.
1.
Systems Analyst
- Develops detailed functional specifications and project
documentation for projects. Identifies and evaluates
impact of changes to systems. Acts as a liaison between technical and
business groups to resolve issues. Influences and advises business or
project team on project scope.
2.
Quality Assurance Engineer - The quality assurance engineer
performs various product-testing duties to assure specified guidelines
are being followed.
3.
Web Application Developer - The programmer reviews, analyzes, designs,
programs, modifies, develops and implements software-programming
applications and software products. The Development team can
contain any of the following job titles,
Application Architect,
Web
Developer,
Web Designer, Graphic Designer. These job
titles are frequently used interchangeably which is incorrect. You'll want to
ensure you understand the differences.
4.
Graphic designer is often involved in web design. Combining visual
communication skills with the interactive communication skills of user
interaction and online branding. Graphic designers often work with web
developers to create both the look and feel of a web site and enhance
the online experience of web site visitors.
5.
Project Manager - Designs, plans, and coordinates technical
projects. Provides technical support to and may lead and manage a group
of developers/engineers/analysts toward project goals
and completion. Responsibilities may include: managing project plans and
timelines, writing specifications, creating documentation and evaluating
project results.
6.
Website Administrator - Responsible for the sourcing, installation,
troubleshooting, maintenance, operation and support for
Internet/intranet Web interface applications and systems.
7.
Server Engineer - Creates and maintains system documentation.
Develops server standards. Performs system administration and operating
system support including OS installation and configuration. Manages
system upgrades, enhancements, migrations, server downtime, integration
and releases of software to QA, production and disaster recovery
environments. Resolves and coordinates escalated back-up and recovery
support problems. Tracks and analyzes usage and performance and makes
recommendations to optimize. Responsible for security and disaster
recovery for large/complex systems
8.
Release Engineer - Considered an authority and often called upon to
provide advice, consultation, and subject matter expertise. Writes code
for automation tools and works with other IT staff to ensure automation tools
are successful. Builds and compiles code of a high complexity using
automated and manual efforts to ensure complete and accurate code
compilation for release in distribution, test and production
environments.
9.
Network Engineer - Monitors, tests, and troubleshoots network
hardware and software problems. Recommends and schedules repairs to
maintain network integrity. Understands commonly used concepts,
practices, and procedures.
10.
Database Administrator - Administers, plans, coordinates, implements
and maintains databases and develops policies and procedures for
ensuring the security and integrity of the database. Designs data
models, performs imports, monitors the database for potential problems.
11.
Helpdesk Technician - Resolves computer software and hardware
problems for all employees. Consults with users to determine source of
specific error and recommend solution. Needs solid software experience
and working knowledge of hardware and hardware configurations. May set
up hardware for employees and maintain network and telecommunications
systems.
3. Ensure you have well defined Requirements
In engineering, a requirement is a singular documented need of what a particular product or service should be or do. It's critical that this document be clear and comprehensive as it's the blueprint of the end product. Regardless of the type of SDLC one utilizes, the requirements document must be solid and any change to it properly documented in order to manage scope creep and adhere to milestones in a project plan. Common industry standards for writing specifications are listed below.
1. Unified Modeling Language (UML) is a standardized specification language for object modeling
2. The Rational
Unified Process (RUP) is an iterative software development process
framework created by the Rational Software Corporation
4. Perform Capacity Planning
Capacity planning is the process of determining the production
capacity needed by an organization to meet changing demands for its
products. In the context of capacity planning, "capacity" is the maximum
amount of work that an organization is capable of completing in a given
period of time. It's important to understand this number as it
will determine how much work a team can perform during a defined
timeline. The Capacity of the team will help define and set the project
milestones.
5. Establish an Application Framework/Choose Programming Languages
In computer programming, an
application framework is a software framework that is used to
implement the standard structure of an application for a specific
operating system. A
programming language will usually depend on the selected type of
application framework.
1. Explore programming languages, adopt and adapt new ones as appropriate. More
2. Establish coding Best Practices
3. Consider an error handling infrastructure/methodology
4. Consider code portability to mobile devices and support "mobile web"
5. Consider Creation of Gadgets, Widgets that users can add to aggregators.
6. Choose an Operating System
An operating system (OS) is the software that manages the sharing of the resources of a computer and provides programmers with an interface used to access those resources. There are many flavors of operating systems therefore perform due diligence as necessary. Cost, compatibility, usability and support are some of the considerations you must make.
1. Web Server Software to host your website (examples: IIS, Apache)
2. Select an operating system for the team.
7. Build your Infrastructure/Hardware
Computer hardware is the physical part of a computer, including the
digital circuitry, as distinguished from the computer software that
executes within the hardware. The hardware of a computer is infrequently
changed, in comparison with software and data, which are "soft" in the
sense that they are readily created, modified or erased on the computer.
Whether you host your website internally or externally, it's important
to understand the items listed below.
1. Hardware - choosing a vendor (example: Dell, HP, etc...), creating server builds, VMware.
2. Web Server Load Balancer (usually contains both hardware and software components)
3. Network Topology (SAN)
4. Create a DR (Disaster Recovery Site)
5. GSLB - Global Load Balancing (will help avoid the need for a DR)
6. Isolate the Dev, Build, QA, Staging and Production Environments
7. Database - there are various models and vendors (MS SQL, Oracle, etc...)
8. Cloud
Computing - A computing paradigm in which tasks are assigned to a
combination of connections, software and services accessed over a
network. This network of servers and connections is collectively known
as "the cloud."
8. Choose and Define a SDLC
Systems Development Life Cycle (SDLC)
or sometimes just (SLC) is defined by the U.S. Department of Justice (DoJ)
as a software development process, although it is also a distinct
process independent of software or other information technology
considerations (example:
Waterfall model,
Iterative and incremental development).
Select a SDLC and be open to using a different one based upon the needs of the project.
More
9. Choose and Configure a Team Collaboration Tool
Collaborative software is software designed to help people involved
in a common task achieve their goals. Collaborative software is the
basis for computer supported cooperative work (example:
MS
Sharepoint).
1. To facilitate and document team communication
2. Store/Track software requirements
10. Define and Enforce a Code Management System
Software versioning is the process of assigning either unique
version names or unique version numbers to unique states of computer
software.
Software deployment is all of the activities that make a software
system available for use. Make
copies of data so that these additional copies may be used to
restore the original after a data loss event (backup
software). Ensure code is versioned and backed up properly.
This will help rolling back to a previous version of software or
recovering from a disaster possible.
11. Ensure you have a Release Management Process
Overseeing the integration and flow of development, testing, deployment, and support of these systems and migration of code between various environments (Dev, QA, Staging and Production). More
1. Define Release Milestones
2. Define a Release Schedule
3. Define Types of Release content (examples: quick text changes, code changes, CMS changes). Bucketing similar types of items together can simplify the release process.
4. Consider Ranking and Prioritizing of release content which will help with Capacity Planning. If you have a queue of program change requests, you must know in what order to address them.
12. Review Security/SSL Requirements
Secure Sockets Layer (SSL),
are cryptographic protocols that provide secure communications on the
Internet for such things as web browsing, e-mail, Internet faxing,
instant messaging and other data transfers.
1. Consider the transport and storage of Non-public personal information (NPPI)
2. Schedule periodic risk assessment of consumer sensitive and NPPI data. Ensure you understand various data encryption standards.
13. Pay attention to Usability/IA
Web
Usability is the way that a user experiences and uses the website.
The user should be able to use and follow the website without
instructions, getting lost or getting frustrated with it not working the
way they think it should.
1. Give serious consideration to complying to ADA Guidelines for the Web. Cover aspects of Web accessibility including the look and feel of your page, the alternate text of your images, and more. Usable Web sites are sites that work for your readers.
14. Have a SEO Strategy
Search engine optimization (SEO) is the process of improving the
volume and quality of traffic to a web site from search engines via
"natural" ("organic" or "algorithmic") search results for targeted
keywords.
15. Consider & Choose a Content Management System
Web content management system (CMS)
is a system used to manage the content of a Web site. Examples are
Interwoven Teamsite,
LiveSite, OpenSource CMS,
WordPress for blogging, etc... A CMS empowers business users to make changes to
content without having to involve software developers. This can be
very cost effective as software developers can focus on new projects
rather than spending time making minor textual and graphical changes to
static content.
1. Give strong consideration to
workflow Patterns and approval requirements. It's probably not
a good idea to have someone make direct changes to website content
without a
workflow
and approval process especially if there may be legal and financial
consequences.
16. Project expected traffic and perform Load/Performance Testing
Load testing is the process of creating demand on a system or device
and measuring its response (example: HP formerly Mercury
Testing Suite).
In order to ensure website availability you should perform load testing
to ensure the website can accommodate the expected web traffic.
17. Incorporate a Web Analytics tool
Web analytics is the study of the behavior of website visitors. In a
commercial context, web analytics especially refers to the use of data
collected from a web site to determine which aspects of the website work
towards the business objectives.
18. Choose & Configure Monitoring Tools
Website monitoring is the process of testing or tracking (monitoring) both hardware and software functionality by performing
various system and software health checks.
Website monitoring is often used by businesses to ensure that their
customers are able to access their online applications and perform
actions such as searching, online shopping, checking an account balance,
or simply researching.
19. Establish an Application Support Process
Technical support (also tech support) is a range of services providing assistance with computer hardware, software, or other electronic or mechanical goods.
20. Do not forget ongoing Training for your Web Team members
Training
of IT personnel is critical not only to keep their knowledge current but
to maintain high morale.
21. Perform ongoing Research & Development (R&D)
Do not overlook R&D as it's critical to any webshop that would like to remain relevant, competitive and innovative.
Portable applications in the form of Widgets and Gadgets, Social networks and social software, Web mashups, Ubiquitous computing, Contextual computing/UI and Semantics are all very powerful and relevant technologies, concepts and approaches. In order to adopt and utilize these technologies, research and "proof of concepts" must be executed even if you plan to outsource these project. In order to ensure accurate requirements and competency in directing the vendor towards your vision, you must be educated in these topics.
*Extra - Decision to Outsource or Offshore
The decision to outsource
or
offshore software development is often made in the interest
of redirecting or conserving energy directed at the competencies of a
particular business, or to make more efficient use of labor, capital,
technology and resources. There comes
a time when every webshop must consider this question. There are
components of an application that may be ripe for some of these options.
It's important to focus on your core competencies and if the opportunity
arises to consider outsourcing or offshoring by methodically weighing
the pros and cons. Partnering with vendors "can" be rewarding and
provide the opportunity to expand your circle of influence and knowledge
base.
**Definition of Webshop - The term "Webshop" refers to a place of business where web development, web hosting and other types of web related activities take place (Web refers to the World Wide Web and "shop" has a colloquial meaning used to describe the place where one's occupation is carried out).