[51CTO.com original article] Leon graduated from the Medical Informatics Department of the Medical College. Since he entered this major, he basically knew that he would work in the medical information industry in the future. After graduation, he took training courses to learn .NET programming while working, and successfully entered a medical software company. From an ordinary programmer, he gradually became a technical manager, and then a product manager. His work was all related to medical informationization. He participated in the development and design of EMR, HIS, RIS and other hospital-related business systems, passed the PMP and information system project manager exams, and had some understanding of the knowledge system of project management. He is currently studying the personal health record data and chronic disease data of a certain city, and is motivated to serve the citizens and relevant functional departments of the National Health and Family Planning Commission.
Leon .NET Development Stick to .NET development and gradually rise to the top Leon's career can be roughly divided into four stages: technical learning stage, software engineer, technical manager, and product manager. 1. Technical learning, laying the foundation for programming During college, Leon did not have much technical experience. He just read the book "C# Basics", but did not write the corresponding code. Therefore, he gained little. He learned .NET by attending nearly 200 nights of training courses. The training course gave him a preliminary understanding of .NET. The learning process mainly laid a foundation for Leon, and he had an understanding of various WinForm controls, various HTML tags, and various SQL statements. But now looking back, the learning at that time was completely unable to meet the requirements of enterprise-level development. 2. Software engineer, in-depth technical details With the accumulation of medical knowledge in college and .NET training as his starting point, Leon successfully entered the medical software industry. After joining the project team, the team leader told him that the product development used WPF, but he had never been exposed to WPF. So he bought a course called "WPF Programming Collection". He coded all the codes in it and had a basic understanding of the WPF architecture. Combined with the code on the project, his WPF technology has improved greatly. In his spare time, Leon would visit technical forums to learn how others implement it. As a software engineer, he believes that he often copies other people's code, but copying is only the first step. To improve, he needs to further understand the meaning behind other people's code and make some extensions. What had a profound impact on Leon was the implementation of drawing the nursing temperature sheet at that time, a relatively complex drawing operation. Originally, there was a simple version written in C#, but the leader asked him to rewrite a set according to the new requirements, mainly due to the upgrade of the business and the change of design ideas. The project framework is a traditional three-tier architecture, and the business system does not have much technical architecture. The core technical point is the application of the XmlDocument class and the Graphics class. There are some related codes in the original version, and he has found most of the methods and property knowledge of these two classes, so that when he started to develop the corresponding functions, he felt much more confident. Later, he studied the book "C# Advanced Programming" and had a deeper understanding of object-oriented thinking. 3. Technical manager, comprehensive development of the technical team The position of technical manager is not achieved overnight. As his years of work and technical ability improve, Leon starts to guide newcomers. He always patiently guides newcomers because he knows that he is not as good as them when he graduates. For example, code standards are basically what new technical people need to follow. Leon and his team have an internal code standard. For fresh graduates, Leon will set a learning plan based on the technology required by the project, which takes about 1-2 months and the content is accurate to the week to help them improve their own abilities. As a technical manager, he cannot focus on the present. It may take him only 1 week to implement a function, but it may take 2 weeks or even longer for a newcomer to implement it. At the same time, Leon needs to provide guidance from time to time. But these investments are worth it, because when newcomers can stand on their own, Leon will free up his hands to do technical architecture and functional design. Leon will let them do some technical pre-research while completing the corresponding functions according to the long-term development plan of the project. Many of these technical pre-research are not understood by Leon himself. At this time, as a technical manager, he is more concerned about how to keep the project from getting out of control and the replaceability of team members. When Leon was a technical manager, he worked in a relatively small company. All kinds of software development and management were not very formal, and he often had many questions about project control and team management. Due to these psychological problems, he taught himself the content of the CMMI certification system. When he read it for the first time, he felt that he had gained a lot. He selected some suitable templates from it and applied them to the team, such as requirement specifications and functional design books, and achieved initial results. Leon has always been very demanding of himself. While working, he has continuously increased his own experience. He has passed the PMP and information system project management exams, and combined with the problems he encountered, he has a deeper understanding of project management. 4. Product manager, focusing on product design and progress control After changing jobs in 2016, Leon officially worked as a product manager, mainly involved in the functional design of medical software. The product managers in his department are somewhat different from Internet product managers. Leon is more concerned about requirements, product design and progress control. He needs to make various documents, including requirement lists, function lists, prototypes, ER diagrams, business process diagrams, detailed designs, software manuals, progress lists, etc. These documents can help project team members better understand the project and ensure that the project does not get out of control. Requirements are the basis of the product. Demand research needs to be comprehensive and detailed. In addition to customer research, it is also necessary to research competitor products and finally generate a list of requirements. Functional design should go from abstract to concrete, from simple to rich. The core purpose of functional design is to enable development and testing to understand the function, while leaving evidence to facilitate new colleagues to quickly enter the project. The positions can be varied, but there is only one direction: to deeply engage in medical informationization. Leon summarized several experiences about the work of product managers: A. Idea generation and preliminary demand research This idea is often from the leader, and may or may not be well thought out. But sales can often take over the corresponding market. The leader appoints you as the project manager and product manager to promote the development of the product and eventually launch it online. At this time, you need to do a preliminary demand survey. The core purpose is to find out the current implementation status and difficulty of the idea in the market, and determine whether you and the company are capable of completing the project. B. Detailed demand research and analysis The demand research should be as comprehensive as possible, including the possible users of the software, the current business process, the implementation status of competing products in the market, etc. List all the demand points and further analyze which demand points the software needs to complete. At this time, the demand points can be divided into basic demand points (must be implemented in the software), shining demand points (completing can improve the competitiveness of the software), and individual demand points (individual customers require non-common). At this time, it is necessary to output the demand specification document, record all requirements, and classify them. It is recommended to use Excel to achieve this. The demand document should have clear items. As long as the research or self-thought-of should be listed, it should be convenient for one-to-one matching after the functions are released later. C. Functional design: the functional architecture should be clear and the module coupling should be low Functional design mainly includes outline design and detailed design. Outline design mainly produces function lists, prototypes and ER diagrams. At this time, the major functional points should be out, and the basic layout of the page can also be determined. Each function on the prototype needs to correspond to the requirements list to determine which requirements are included in the function. At this time, the functional design needs to consider low coupling to meet the later iterative changes. When designing the ER diagram, the object-oriented idea should be kept in mind to determine the actual meaning of each entity and the correct association of the entity relationship. The detailed design stage mainly produces detailed design documents, which are in various formats, mainly to let developers understand the details of the functions they develop. Generally, it includes the following aspects: screen fields, input verification status, screen processing flow, screen list and field query table structure association, etc. The detailed design can be complex or simple, with the principle that developers and testers can understand it. Further requirements will be generated in the entire functional design, which need to be recorded in the requirements list. After the functional design is completed, it needs to be determined with relevant stakeholders, mainly including development, testing and customer representatives, to find problems and determine the version. D. Software development, testing, and launch At this time, the product manager needs to track the corresponding progress, promptly discover the deviation between the development content and the design content and correct it. During this period, there may be many changes in requirements, which need to be recorded and analyzed to determine whether to modify and iterate the functions during development. The construction of the development framework, code management, code quality control, testing, etc. will not be discussed in detail here. The above model looks like a typical waterfall model, but the development of a software can be divided into N iterations. A small iteration also follows the above principles. The software can be improved step by step through N iterations before it goes online. Things to note throughout the software development process 1. Keep the functional status and project progress in mind Software should have a detailed schedule from the demand stage to the final launch stage. The schedule for the nearest time node needs to be more detailed and accurate, while the schedule for the farther time node can be rougher, recording the planned start and end time and the actual start and end time. The listing of the schedule is an important part of project management. In theory, the more detailed the better. Decompose the work tasks and determine the corresponding time nodes for each task. If any changes occur, they need to be recorded in time. The project schedule document is not a static document. It needs to be modified in time during the project advancement, delete unreasonable places, and add unexpected or unrefined places. 2. Some suggestions for software that does not have relevant requirement documents and design documents. a) Guided by the idea of project management, establish an improvement plan to gradually get the software product back on track. b) From now on, you should create a requirements list document and a feature list document to record changes to the software product. c) If time permits, the corresponding functional logical relationships and ER diagrams should be reorganized. 3. Embrace change, refactor, refactor, and refactor again Stasis is relative, change is absolute. Everyone grows in work, and so does your product. As more and more people use it, problems that were not discovered before will be discovered. Any problem that arises is an opportunity to improve the product. No one is perfect, whether it is a product manager or a technical developer, what they produce is not achieved overnight. Technicians help realize software products, and software products also help technicians improve their skills. The creation of a good product requires countless iterations. We should be aware of this throughout the product design and development process. Finally, I would like to share Leon’s motto with all developers: Keep moving forward on the road of life, fearless of wind and rain. I hope to share this with every IT person. If you are also willing to share your story, please join the 51CTO developer QQ exchange group 370892523 and contact the group owner. We look forward to your wonderful story! [51CTO original article, please indicate the original author and source as 51CTO.com when reprinting on partner sites] 【Editor's recommendation】
|
<<: iOS vs Android Development — How Do We Choose?
>>: Top 3 machine learning libraries for Python
Nowadays, short videos have become a new trend th...
The course is suitable for people Fresh graduates...
We all know the current mainstream mobile applica...
John Wei focuses on studying copyright issues in ...
Author: Wang Su (Institute of Atmospheric Physics...
Review expert: Ran Hao, a well-known popular scie...
Not long after Qingming Festival, May Day comes. ...
Some time ago, the news that the iPhone can be di...
A few days ago, when I was surfing the Internet, ...
[[220402]] It's really sad that the former ki...
The longest panel price increase cycle in history...
This article can only share with you "how to...
Phil Schiller, Apple's senior vice president ...
User growth has always been a key to business ope...