Video thumbnail for 【如何设计负责一个项目?  How to design and lead a project?】

Project Management for Programmers: A Step-by-Step Guide

Summary

Quick Abstract

Want to learn how to manage a complete project solo? This video dives into the end-to-end process of independently handling a project, from initial demand to successful deployment and maintenance using DevOps. Discover key responsibilities and crucial steps for project ownership.

Quick Takeaways:

  • Understand demand origination (sales, internal needs, downstream requests) and assessment.

  • Master the design phase: research, API discussion, and technical structure implementation (HTTP requests, gRPC, database connections).

  • Learn the importance of code structure, abstraction, and testing during the development phase.

  • Grasp essential deployment steps: environment configuration, script verification, and parameter setup.

  • Navigate the change process, including performance tests and continuous integration/continuous delivery(CI/CD).

  • API function confirmation between frontend and backend to be consistent

  • Review process and formal proposal.

  • Understand and Implement DiverOP

This article outlines the process of independently managing a complete project, from initial demand to successful deployment and maintenance. It's based on the experience of a programmer who took on a comprehensive project to increase their workload and gain more responsibility.

Understanding Project Demand

Identifying the Source of Demand

Every project begins with a need. This demand typically originates from several sources:

  • Sales Teams: They identify market opportunities and customer requests.

  • Internal Requirements: Gaps in existing products or functionalities within the company.

  • User Feedback: Identifying missing or desired features based on user experience.

  • Downstream Companies: New requirements or integrations needed by partners.

Demand Assessment and Project Initiation

Once a demand is identified, a thorough assessment is conducted. If deemed feasible, the project is formally approved and a preliminary timeline is established. After the approval, the project is then assigned to a project lead.

Initial Project Setup and Communication

Key Stakeholders

The project lead needs to connect and communicate with various stakeholders:

  • Client-side/Frontend Team: To understand their needs and constraints.

  • Operation Center Engineers: To handle deployment and infrastructure.

  • Testing Team: For quality assurance and bug identification.

  • Upper Management: For alignment and approvals.

Effective communication with all these parties is crucial for smooth project execution.

Design and Discussion Phase

Defining Scope and Technology

The initial phase involves design and discussion. The project lead has to start research to determine the technologies required, how to use them, and if they can be completed with these technologies. The scope of the design should be broad initially, focusing on the overall architecture. Specific details can be refined later. Research is essential to validate the chosen technologies and approaches.

Customer-Side Considerations and Service Structure

The project lead's primary responsibility is to ensure the team can work effectively. This requires documenting the customer-side requirements and building a robust service structure.

Technical Infrastructure Design

This involves designing the underlying technical infrastructure to support the project:

  • Third-Party Interface Integration: Defining how the project interacts with external services (e.g., HTTP requests using standard methods, gRPC implementation).

  • Database Connectivity: Choosing the appropriate database access method (e.g., JDBC, ORM framework).

  • API Design: Defining external APIs (e.g., REST APIs) and their implementation.

  • Service Container: Selecting the appropriate service container (e.g., NETDI, Tomcat).

Standardizing Project Elements

Furthermore, standards for error handling, error codes, filters, and interceptors must be established. A well-defined technical structure allows the development team to focus on implementing the core business logic.

API Functionality and Logic

Confirming the purpose and parameters of each API is vital. It's crucial to discuss the specific logic implemented by different teams to avoid conflicts and redundancies later in the development process.

Ensuring Consistent Understanding

Clear and consistent understanding of business requirements is also a MUST. Any misunderstanding can cause many holes and problems in the later use.

Database Design

Database design is based on the information gathered from requirements to project lead phase.

Development Phase

Code Structure and Abstraction

The development phase should focus on building a well-structured and abstract codebase, in adherence to the client's design and function design.

Primitive Methods

The methods should be primitive to avoid too many coincidences and fixed parameters.

Code Expansion

Too many coincidences and fixed parameters can greatly affect the project's expansion and function upgrade.

Testing and Alignment

Regular testing and alignment with other team members are necessary to prevent development issues. Communicate with upper management to avoid major problems.

Deployment in Test Environment

Deployment Considerations

This deployment is not a formal deployment. A set of test environments needs to be built for connection with others. The process involves deploying the code in a test environment for initial integration and validation. While deployment may be handled by other teams, the project lead needs to ensure the configuration is correct.

Key Configuration Steps

  • NGX Configuration: Verify port settings and URL unification.

  • Installation Script: Understand the installation process to ensure all necessary components are installed and configured correctly.

  • Environment Configuration (Compose file): Validate the parameters in the Compose file.

Configuration Management

Proper configuration management is essential. Determine which configurations should be managed by the development team and which should be handled by operations (e.g., IP addresses, ports).

Network Topology

Understand the relationship between components, the network, and the physical deployment architecture. Ensure components are deployed together or separately as needed.

Project Startup Parameters

Establish the correct startup parameters and configuration settings.

Connection

During the connection process, many detailed changes needs to be made.

Review and Formal Testing

Review and Reporting

After completing the chain connection, review results with superiors and key stakeholders for feedback and approval.

Formal Testing and Performance Testing

Following review, conduct formal testing, including performance testing in a resource-intensive environment.

Going Live and Maintenance

Successful Deployment

Once all tests are passed, the project is deployed to the production environment.

DevOps and Maintenance

Ongoing maintenance follows a DevOps cycle: New requirements are written, deployed, and tested iteratively.

Conclusion

By following these steps, one can successfully take ownership of a complete project, navigating the challenges and responsibilities at each stage, from initial demand to ongoing maintenance.

Was this summary helpful?