preface

Recently, I found that the company’s development process is not standard, so I sorted out what I think is a better specification, there is a better way, please leave a comment below, thank you.

First, the main process

2. Product approval

Job Description: The product project approval stage is also called the preparation stage, which mainly evaluates the core functions, orientation, target user group, cost input and market prospect of the product as much as possible through targeted market research, user interview and analysis of competitive products based on the demand outline. Under the condition that the decision level passes the evaluation, the virtual development team is set up, the resources are coordinated, and the project leader and the scheduled launch time of the product are defined. If the project is required by Party A, the relevant content of market research and commercial value assessment can be omitted.

Create a vision and set goals: What is the vision for the product? What does the plan need to do to achieve this vision? Define the product goals for each stage. Why set such goals?

Market research and competitive analysis: Calculate the product market prospect and risk cost through targeted market research and competitive analysis.

Collect demand and prioritize: collect demand feedback from various business and market departments, conduct in-depth interviews with typical users, brainstorm with development, design and operation personnel, and make clear the priority of core functions and development needs of products.

Set up a team and determine the person in charge: according to product positioning and resources input, set up an appropriate virtual development team, designate the project leader, and get familiar with each other.

Meet regularly and make plans: arrange for regular meeting of project related personnel, keep the latest demand information of all team members synchronized, and initially make the completion time node of each stage of the product.

Results: Competitive Product Analysis Report, Product Project Approval Instruction, Product BRD Documentation

3. Requirements analysis and review

Job Description: With various products based on product positioning and operation strategy, the demand for the demand of the depth of communication, the abstract and complex analysis into demand can carry out of the ground plan, hold a requirements review, scheduled to start the development priority of each function point each version of iterative function schedule planning products, product prototype design, writing product requirements specifications, Communicate with the design and development team to determine the completion time node of each stage, clarify the actual product line time, communicate with the market operation team on the launch operation plan, etc.

Demand analysis and prototype design: deeply communicated with marketing and business operation colleagues, formed a preliminary demand outline and function list, organized brainstorming of all team members, analyzed the authenticity and urgency of the demand, determined the priority of demand development, formulated the product function iteration schedule, designed the first draft of product prototype and page structure diagram;

Requirements review, solution determination: The product manager leads a requirements review meeting, explains the product logic process and interaction details in detail to the development team, and evaluates the feasibility of technology implementation. Do the second requirement update for the unclear requirements;

Requirements documents, development cycle: according to the requirements review results, modify the final prototype design and interaction, annotate the prototype and write the product requirements, manage the background data related data statistics and other requirements, technology feedback the completion time node of each stage according to the requirements documents.

Results: Product PRD Documentation, Product Interaction Prototype (low/high fidelity), Product Development Schedule

Iv. UI interface design

Job Description: Designed product page renderings based on prototype interactive drafts and product PRD documents, communicated with products to determine detailed interaction details and effects. Determine and improve the final design version of the effect drawing with the business party in need, mark the details of the effect drawing according to the development requirements, design product icon and review the publicity materials for the application market, and cooperate with the market operation department to design the page of product operation activities, etc.

User analysis, design and combing: collect relevant data to analyze the use characteristics, emotions, habits, psychology and needs of target users, and identify users, use environment and use mode based on 3W method;

Material collection, determine the style: on the basis of in-depth familiarity with the overall business process and business needs of the product, determine the main and auxiliary colors of the page, formulate the interaction mode, operation and jump process, structure, layout, information and other elements;

Interface design, specification output: design product page, ICON, ICON, skin and some interface interaction performance. Communicate with the front-end development team, make clear the naming and labeling specifications of the cutting drawings, and output the final design draft.

UE test, overall review: The product test phase includes UE test, responsible for testing the restoration degree of the page and interactive ease of use, and put forward test feedback and optimization opinions for the design draft and requirement documents. After the launch of the product, I fully reviewed the design framework and details, summarized the design experience and optimization iteration suggestions, and wrote the relevant analysis and optimization report.

Results: “PSD Source File”, “Cut map Source File”, “Interactive Description and Annotation details Specification”

5. Program development

Work overview: Divided into two types of client side and server side development. In the client development, the mainstream is iOS and Android. According to the requirement documents and design draft, the interaction effect of the front page is realized, and the data exchange interface protocol is determined with the server. Server development based on the requirements document, design the database table structure, evaluate the implementation of core complex functions, write the development design outline document and feedback the completion time node of important functions.

Results: “Development and Design Summary”, “Interface Protocol Document”, “Self-tested Product Version 1.0”

Vi. Test and acceptance

Job summary: refer to the product requirements document summary and development design, test cases, write product cases would explain the all-round product test, the test is not by the content of the feedback to development, determine the bug severity and follow repair process, the feasibility of the product launch, assist in product and business people to write product acceptance report.

Test types: functional test, fault tolerance test, performance efficiency test, usability test, compatibility test, stress test, etc

Results: Test Case, Test Bug Feedback Record, Test Acceptance Report

Vii. Project summary Meeting

After the completion of the project, all the people involved in the project should be organized to summarize the problems in the process of the project and avoid future occurrences, which I think is very important.

Eight, oneself is to do android, so say about the problem that android development pays attention to.

1. The encapsulation of the benchmark library should not be sloppy, including various base classes, utils, etc., which may not be perfect in the early stage. With the gradual optimization in the development process of the project, it should be submitted to JCenter when time is available.

2. UI library must be formed. The UI library is used to store some encapsulated custom views. It needs a more overall style of the situation and encapsulates some combined controls used in the app to avoid layout bloat. Public resource files, etc., that are related to the UI.

3, the first version does not need to consider so long term, do what componentization and so on, but the corresponding functional modules need to be separated, as far as possible to reduce the coupling degree, for the later project increase to do componentization development to reduce pressure.

4, the choice of framework, such as: network, image loading, database, rxJava, and so on, the energy to choose a new, stable, flexible framework, to avoid the trouble of replacement. For example, timely communication, message push and other third-party frameworks that are time-consuming to be replaced later need to be researched and carefully selected. It is best to determine that later replacement is not necessary, and the framework can be updated. The most important thing is stability.

5. It’s better to write unit tests when time permits. If you don’t write unit tests early, you’ll want to write them later once the project gets bigger.

6, do not put too much library code into the project, resulting in the last project has many moudle, resulting in a long compilation time, the energy to extract the function you need to put in the base library, reduce the number of moudle, if the entire function of the moudle is basically needed, can consider the way to package dependencies as aar. To reduce compile time, the project’s dependency logic must be clear and not cluttered.

7, after finished the project, go back to look at their own programs, you will find that there may be a lot of places have better way, most of the third party libraries of code more than look at writing your own code, see writing your own code, to find their own problems, it is a way to improve yourself, personal feel more important.

conclusion

Above is a point of view of their own, have a better opinion hope can leave a comment below, thank you.