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.