Discussion on architecture design and project management

Source: Internet
Author: User
This is a discussion about project management with friends through instant communication.

I read the discussion again and found that I spoke a lot and listened a little :). This is not the case for me. I am familiar with my friend's company (Development habits, programmer level, deadline settings, etc.), and I am very worried about the success of this project, so I tried my best to persuade my friends to adopt some ways to avoid risks.

Since the purpose of this discussion is mainly persuasion, many concepts are not necessarily accurate and complete. About four people participated in this project. It may take about half a year to develop applications on the mobile phone platform using C ++. It should be considered a small project.

The full text is as follows:

Me: How is your project going?
Friends: in progress
Friends: Detailed design starts next week
You: You have not started writing code
Me: You asked them to add assertions. Did they add them?
Me: So we haven't started Encoding
You: Of course you want them to add
Me: Do you agree?
Friend: I have the say.
Friend: I am the first
Me: Oh, it's better to take the test.
Friend: Well
Friends: I will make them understand
You: How are you,
Me: relatively easy. Recently I am writing a GUI, using wxpyhon
Friend: Haha, Master is Master
Me: Write about 10 lines a day.
Me: depend, this is also called a master
Friend: Haha ....
You: Microsoft does not have 10 lines per day.
You: this is the level of Microsoft.
Me: Come on, Microsoft is much better than us.
Me: we call it inefficiency.
Friend: Well
Friend: I recently read design patterns.
Me: Good.
Friends: learning and learning
Me: Who are you planning to grasp the program architecture?
You: Now you need to learn about this.
You: I don't have any talent here.
You: Now I have to build it on my own.
Me: So who?
Friends: None
Friend: I am now
Friend: The project scale is not very large. I can try it myself.
Me: no one can do well in architecture for the first time. You have trouble in project management and architecture.
Me: Architecture is the main target of complaints in the future
Friend: Yes. I am a real-time employee...
Friend: I am now thinking about it. I will discuss it with the people below to see if this architecture is reasonable.
Friend: Then decide...
Me: it is best to assign two people for the architecture. You have the final veto power.
Me: you are here to guide
You: I have no outstanding employees.
You: This is the only thing you can do.
Me: You can assign a delegate by name. Do not deny all responsibilities by yourself.
I: design the architecture in the form of a committee
Friend: Hmm ~~~
You: Understand
Friend: I will make a good allocation in this regard.
Me: architecture is hard to do well, but what everyone wants to do, I think from the perspective of the supervisor, we can regard architecture design as a reward, instead of looking at it as a job.
Me: From the Perspective of compensation, everyone has the best share. And because it is difficult to do well (because the risk is too high), sharing a share can reduce the risk.
Friend: it makes sense
Friend: Let's talk more about this knowledge.
Me: do not divide the modules, but decide the modules and interfaces in the form of seminars.
Friend: Well
Friend: I basically did this.
Me: interface changes (or architecture changes) are very tiring and offensive. So it is up to you to blame.
Friend: I just mentioned a module for discussion.
Me: the module is proposed by someone else. You can modify it better.
Friend: The problem is that no one else can do this.
Me: it is best to let people accept your opinion and think it is your opinion.
Friend: Well ~~~~
Friend: it makes sense
Me: the form is very important, otherwise others will inevitably have ideas.
Me: it is best to let others think that the architecture is self-built without any trace.
Friend: Yes. Some unnecessary ideas will save a lot of manpower if they do not exist during software development.
Me: When necessary, you can compromise, give up your own good design, and use others' poor design. The key is to make everyone consistent.
Friend: Well
Me: from a management perspective, I can think that the purpose of the architecture design process is to win the hearts of the people, not to pursue perfection technically.
Friend: handsome guy. This is so cool.
Me: I'm serious.
Friend: I saw this sentence yesterday:
You: the framework is like politics and the art of dealing with various uncertainties.
Friend: When I saw what you said, I thought of the above sentence.
Friend: I am also very serious.
Me: if you are free to discuss architecture design, you will have different opinions. As long as you are good at balancing, compliment everyone more, compromise more, and learn more. Finally, everyone is very happy and consistent. The quality of the architecture itself will not be too bad.
Friend: it makes sense ~~~~
Me: Ha, I mean very close to him. I mean to turn architecture design into politics.
Me: The key is to keep yourself out of the box.
You are also a master
Friend: Well
Me: Numbness
Friends:
Me: assign someone else to build the architecture (or interface). The more people, the better. I am afraid that you will save time and cannot stick to the form of the Committee.
Friend: Well
Friend: Sometimes I think it is for unification. I will use my power to stipulate
Me: the basic principle is that the interface should be simple and few. You can let them get an interface, and you cut down half of the interface.
Me: You 'd better act as the arbitrator to reflect your authority.
Friend: Well
Me: You can't argue any more. You can make everyone half and compromise each other.
You: This may hurt everyone's morale.
I: It will be tiring to stir up myself as the opponent.
Me: On the surface, there is no argument. Not necessarily, there is no morale.
Me: Actually, morale depends entirely on what you think of you.
Me: it's better to say it in person than to be honest.
Friend: it makes sense
Me: On the surface, there is no argument. It's not necessarily morale.
Friend: Well
Friend: I totally agree
Me: in fact, it's very easy to do arbitration, so you don't have to worry about it, that is, let everyone get half done.
Me: compromise with each other
Friend: I think the most important thing for managers is to make everyone energetic.
Me: Yes
Friends: The second is the project
Me: this is also the most beneficial to the project.
Me: Because projects are high-risk, we need to use discussion + compromise methods.
Friend: Well
You: it is necessary to discuss the project.
Me: Do not post your own opinions.
Friend: Well
Me: I 'd better never post
Friend: this is not the case. If you do not post it, you will have no authority.
Friend: I think compromise means posting...
Me: Yes,
Me: I mean, sometimes I have to give up my correct opinion.
Me: to compromise.
Friend: compromise is also an alternative expression of your ability to prove your position in the project.
Me: I mean, we 'd better avoid this kind of thing.
Friend: Well...
Me: it should be done in turn.
You: understand...
Me: you can capture quality control.
Friend: Well
Me: for quality control, see test-driven development.
You: Good. Check it out.
Me: Test-Driven Development Quality
Me: You just need to take the test.
You: Well, I fully understand this.
Me: This book tells us a very important truth, that is, testing is the lifeblood of development.
Me: testing should take precedence over development. For example, first write the test code and then write the development code.
Q: Is testing the lifeblood of development? Unfortunately, I do not know much about the test now.
Friend: It looks like I should read this book right away.
Me: Not a unit test, it is an automatic test based on assertion (more advanced than assertion)
Friend: Oh ~~~~~~~~
You: Who wrote test-driven development?
Me: when designing, you should check whether structured design is used as much as possible, rather than object-oriented technology. Kent Beck
Friend: Well
Me: Use inheritance, polymorphism as little as possible
Friend: I know this.
Friend: Well
Me: access data through functions. Do not directly access data.
Me: The rest are free to play
Friends: these are poor encapsulation performance.
Me: Right
Friend: I don't want to limit my personality.
Friends: I hope they can make full use of them freely on a certain basis.
Me: Well, we mainly consider the C ++ level,
Me: polymorphism, inheritance is not easy to write code that is difficult to modify
Me: This is where c ++ is prone to errors.
Friend: The C ++ level is one of my biggest concerns.
You: I only have one C ++ programmer.
Me: No worries. c ++ is a structured C, and the quality is guaranteed.
Friends: Good
Friend: I understand...
Me: at the beginning of coding, you should focus on the automation of the development process.
Friend: What does this mean?
Friend: I don't understand
Me: Isn't ide available for development now?
Me: This is not conducive to the cooperation of many people.
Friend: Yes
Friend: Well
Me: You can use scripts (BAT files under DOS), command line compilers, and makefiles to completely automate the construction and deployment processes. That is to say, you only need to click once to complete the build and deployment.
Me: I mean daily build.
Friend: Oh ~~~~~
Friend: a little advanced
Me: This is much easier than writing code.
You: I have no research on this.
Me: Just write the dos bat file.
Friends: Oh
Me: for example, your application uses two DLL files and one EXE file.
Me: Now there are three developers
Friend: Well
Me: Open Visual Studio
Me: edit, and then press the build button.
Friends: Right
Me: Finally, copy these things to one place and pack them, right?
Friend: Well
Me: Now you need to write a simple script program without using any program with GUI. Double-click the script program to complete all the tasks (including packaging)
You: Understand
Me: This is a popular management technology in the industry. We do this all.
Hi tech!
You: Understand
You: inspired
I: That's to say, you should not be stuck in the development process. If you are a programming idiot and you don't even know Visual Studio, how can you manage it?
Me: click the mouse once.
Friends: Haha
Friends: MEETING
Me: this technology is very useful and does not require programming basics. In fact, you can delegate specific script writing to others. You only need to make a request.
Friend: Well
Me: the key is that you have to stand at the manager's point.
Me: If you don't know anything, you must have the simplest and easiest way to control quality.
You: from the manager's perspective...
Me: So you should try your best to eliminate human factors in the process.
Friends: Russia
Me: I am referring to negative human factors, so automation is required. Every day, you just need to click the mouse once.
Me: You need to click the mouse once every day.
Friend: Well .......
You: The process above looks very simple.
You: it may be difficult to implement it.
Me: Right. In the future, you just need to click the mouse.
Me: how can it be difficult?
Me: What do you do first?
Me: I got a single-direction script, and I couldn't even use the if logic.
Me: Easier than VB.
You: This is based on the preliminary development work.
You: it is difficult to monitor the quality of development work in the early stage.
Me: So integration started from the first day of development.
Me: This is a natural conclusion.
Friend: This is the daily build.
Me: there is no such big stage as system integration.
Me: system integration started from the first day.
Me: Haha
Friend: I understand it a bit.
Me: assume you are a programming idiot.
Me: The only thing you need to manage is to click the mouse.
You: It looks like you have to practice it well.
Me: Can you give up management in the early stage?
Friend: No
Friend: Absolutely not
Me: So we started system integration from the first day of coding.
Friend: Well ~~~~~~
Me: if not, let them find a solution. Otherwise, you give up management (because you only click the mouse)
Friends: very touched

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.