Planning for Web applications

Source: Internet
Author: User
Tags html tags zurb foundation

The first translation, there are many do not understand, understanding.

Original http://railsapps.github.io/rails-product-planning.html

Software Development Process

Some people think that software development starts with writing code. But in fact, product planning is the first stage of the software development process.

Product planning, is the implementation from the concept to the core of coding, is the key to the smooth start of the project. It can be said that your own development of simple

Application, you do not need to worry a lot, do not need to write instructions, just write code. However, although your application seems to be

Simple, if you are operating alone, product planning is also very useful. Software projects have a tendency to become more complex and

And spend more time than expected. At least, before you start writing code, product planning can help you focus on what you want to

Method. If the application becomes more complex, product planning helps you track progress and determine direction.


And for big projects, when you're a member of the project team, or when someone else's time and money is in danger, the product

Planning is a key factor in a robust software development process. If you plan to grow your company, product planning is the most fundamental.


It's up to you to decide how much time to spend on product planning, but consider doing the following:

* It can help you to know the functions that need to be implemented

* It can help you to describe and discuss product features to business partners

* It has a checklist that lets you know what to do and can help you track progress

* It is the basis for acceptance testing or integration testing


Products Owner (product owner)

Who decides which features and functions are included in an application? If you're the initiator of the project or you're developing yourself,

Project, it is obvious that you decide what your application is going to do and you are the product owner. But consider other things, like

A student is assigned a job, a consultant is responsible for planning a project to build a client, or a development team of the company. Someone gave

You are one of the tasks of developing an application, one is the goal of the project is relatively high, the other is the characteristics of the project and the execution details of the function

In the gray area, where you are sandwiched. Typically, a customer or executive management will not provide you with a detailed product requirement that says

The Ming book. At this point, many developers just want to know what to develop. In this case, the product owner is blank, unknown.


The product owner can be a technical expert, or a business person. His responsibility is to look at the application, to understand the user's point of view,

Determine which features and functions are essential and which must be removed. Without a product owner, a project may

A collapse in ambiguity can be offset by a personal whim that ultimately does not satisfy anyone.


users ' stories (user Stories)

Product owners to do product planning is the most important to understand the user.

The user's story is a way to discuss and describe the requirements of the software application. This process of writing a user's story will help you determine

All the characteristics required by the application. Breaking down the functionality of the application into a single user story can help you organize your work and

Track progress and go to the end.


The user's story is often shown in the following form:

As a < role >

What I want < >

The result is < what >

Example, here is the user story of the app pre-landing


* Request an invitation *

As a visitor to the site

I want an invitation.

The result is that after the launch of the website, I was notified in time


* See all requests *

As the owner of the website

I want to see a list of all the visitors who come to ask for invitations

The result is that I can tell if the service I'm offering is very popular.


* Send Invitations *

As the owner of the website

I want to send invitations to visitors who ask for invitations

The result is that visitors can try to visit the site by inviting


* Collect Email address *

As the owner of the website

I want to collect e-mail address list of mailing list

The result is that I can send announcements before the site launches


* Share after registering on social networks *

As a user

I want to share it with the social network after I sign up

The result is that my fans will learn about this site

We can use this user story list as our task list when we run the app.

Behavioral-driven Development (Behavior-driven development)

Behavior-driven development is a software development approach that takes user stories as the basis for automated testing. The user's story becomes a test scene,

With automated testing, the product owner is able to determine whether the developer has made the required features and functions well. This process is called acceptance testing.

Automated testing also makes it easy for developers to determine whether the application is still functional after adding new features, fixing bugs, or rewriting code.

This process is called integration testing.

Here is how to use the cucumber behavior-driven development how to use the user's story as the basis of the method

* Write the user's story

* The story of the user becomes a cucumber scene

* Create acceptance tests based on cucumber scenarios.

* Encode each feature

* Acceptance test after each feature code is completed

The cucumber scenario transforms a user's story into a simple description of a series of steps that implement a product's characteristics.

When a team has non-programmers, and he is involved in the definition of product requirements, or when a manual and acceptance test is required to make the implementation of the application

When you are independent, cucumber is a good fit.

behavior-driven development without cucumber

(Behavior-driven development without Cucumber)

There are also cucumber alternatives, which may be more appropriate when the project is smaller or if people in the team want to read the software code comfortably.

Many rails developers use capybara in combination with RSPEC to create integration tests in Ryan Bates's how I test railscast

are described in both. The story of users using RSpec and Capybara can still be the basis for product planning. No cucumber, use

RSpec and Capybara, the features of the application can still be tested, and the feature is still based on the user's story.

Wireframes and Models (Wireframes and Mockups)

The user's story is not the only technology for planning a web app. Often before the user's story is written, the product owner will sketch a variety of pages,

Sketching is a stage in which you visualize some ideas about your application. The sketch eventually becomes a wireframe or model, and these two statements can often be mutually

Use, but in a different sense.

A wireframe can represent functional elements on a Web page, and it should not describe the graphical design of the proposed web site, but rather simply a schematic of the Web page.

Figure, no color, no graphics.

The model adds graphic design to the wireframe, including trademarks, colors, and placeholder content. The model gives a website personality as well as a proposed function of the

Impression. One of the most popular tools for building wireframes is Balsamiq Mockups.

Graphic Designs (Graphic design)

As needed, graphic design is a separate part of application development. Few people are graphic designers and programmers. Graphic Design

Unlike the tools used, graphic designers typically use Adobe Photoshop, although some web-savvy designers directly use HTML

and CSS to do the design.

If you're lucky, you get help from a graphic designer when you develop your application. If you are very lucky, you may have a knowledge of the user body

Interaction between the designer and the architect.

If you are working with a graphic designer, you may want to work with a template or a brief design to define the appearance of your application and give people

The feeling. If the designer works with Photoshop, you will face the challenge of converting the design framework from Photoshop to HTML and CSS. Have this

Kind of service companies to charge for this, but obviously it's easier to work with a designer who works directly with HTML and CSS.

Rails is particularly challenging when it comes to integrating graphic design and code. Rails uses a mix of HTML tags and ruby programs in view files

Code. Few designers adapt to the Ruby code in HTML, so you can integrate them by yourself.

If you don't have a graphic designer's help, you can use Twitter bootstrap or other front-end frameworks such as Zurb Foundation in your

Application to quickly add attractive designs.


Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.