It seems that there are a lot of great people on Zhihu, and they have a happy development experience in large companies. . So, are there any ordinary programmers, working in ordinary small companies, sharing some ordinary stories? ?
Reply content:
Everyone is a full stack engineer
The experience is that there is no process. In addition to writing code every day, I still write code, so it is not too late to get off work. The working atmosphere is relatively happy, everyone is about the same age, and there is no sense of hierarchy.
Of course there are many disadvantages. Because there is no standardized process, task allocation is unclear and it is unclear which part each person is responsible for. When product changes are required, programmers change the code too casually and lack corresponding supervision. The project code lacks code review, and the technical level of the team is uneven, resulting in a spectacular mixture of good code and poor code.
Manage your own code
Eat your own dog food
If the system is broken, fix it in the middle of the night
If you can’t fix it, you’ll be an asshole
,,,, very “standard” DevOpt! ! !
- Adjust the code on the production machine, and then enter SVN after the adjustment is completed.
- I had a nightmare that I accidentally deleted the database, and when I woke up I found it was true.
- Cut pictures, code, database, front-end, back-end, operation and maintenance, API, WeChat, Alipay... Look at the chip data sheet to check the signal timing, look at the schematic board diagram to find the pins..., go to the production factory to teach workers to write test codes Looking at the test results... until he teaches users how to enter the mobile phone verification code and selects the configuration list for the customer's store desktop computer, it is all done by one person.
- I often worry about what to do with these projects if I get sick
5. Hesitant to remain anonymous
In August 2015 (the holiday after the college entrance examination), I joined my current company and was responsible for iOS Dev work.
Say it first,
Don’t go to a small company if you can, and don’t start a business if you lack experience. Life in a small company is a unique experience, really. Overall, it’s been a rough ride.
Seven of our members are all undergraduates in their first and second years (soon to be their second and third years), all majoring in software engineering.
It was a struggle at the beginning. Before the company was founded, none of us had any experience in starting a business, leading a development team, or designing an architecture, so it was extremely difficult to get started.
My job title is called "iOS Development Manager". It's not so much a "manager" as I am the only one in the entire team who writes iOS, and I started working after only two weeks of study. (Thanks for that little bit of talent
In August 2015, that hot summer, I wrote VSpace (East Big Assistant) alone at home. At that time, the entire team had high expectations for VSpace, hoping that this product would be an instant success. Let everyone in Northeastern University know us. But we were defeated by
ignorance. At first, we didn’t understand some technical details... Even HTTP POST will directly append the query string to the URL instead of putting it in HTTP. In Body, I think this is enough to make all technical colleagues laugh out loud... Moreover, we also know little about domain names and registration policies. Alibaba Cloud's domain names are blocked if they are not registered. At that time, the registration was delayed, and the result was "released" "At that time, the HTTP communication API used IP addresses. At that time, I was not even good at pure code layout. The UI was completed by dragging it into the Storyboard in Interface Builder and adding @IBAction everywhere... The release was even more impressive. It made me laugh, we couldn’t even pay for the Apple Development Program (this is a company, can you imagine), so we finally sent it to
http://fir.im, but the certificate was The problem was not solved in the end. The first App was stranded like this
(If you are interested in our bad code, you can find all of us at
http://github.com/Obisoft2017 After the program
, I registered for admission. This year, my GPA was not ideal, but I learned a lot without a master to guide me. At the beginning of the semester, the most impressive thing was at Northeastern University in mid-November. The Center for Innovation and Entrepreneurship used a conference room to discuss product requirements with another team from Shenyang University for 7 hours. After this back-and-forth meeting, we finally figured out the routine of product requirements analysis
And we have had it for a while ( Until now), we do a lot of outsourcing to make a living. Although the leader has always told us that we are not an outsourcing company, we can’t survive without doing this because there is no income and we have to pay high accounting fees (300 per month, haha, You all won’t believe this is really high for us), some are obtained from outsourcing agencies, and some are obtained from teachers. It’s really full of tricks: with a lot of work, we can definitely earn more. Money,
but we were at the bottom
.
Then the first winter vacation in college life came. At first, we cooperated with the SYU team, but because we were unwilling to take risks (the partners were short of funds like us), we had no choice. (can give us shares), the cooperation was terminated, and the short-term product development also ended.When the winter vacation was coming to an end, my leader and I met with an investor for the first time with an idea we had, but in the end the investment failed and we are still struggling to survive.
Many people only see investment in listed companies, but there are more companies that no one invests in. After the school started again, we won a prize (not valuable) in a school-level innovation and entrepreneurship competition at Northeastern University with this idea. After that, we developed and set up a flag saying that it would be released on the App Store in June 2016. However, because we were still undergraduates, our school’s software engineering training program had many courses for freshmen and sophomores, so the development has been stalled again and again, and it is still there now. In progress.
At this time, our development gradually broke away from the wild road. From demand analysis, prototype design, UI drawing (me) to development, the process was quite orderly. Later, we also adopted Scrum (agile), and the results were quite remarkable. The leader (backend, frontend) and I (iOS) both have basic design pattern application and architectural ideas, as well as my own understanding of things such as UI layout (now I am pure code + Auto Layout), network communication secondary encapsulation ( It facilitates flexibility), modularization and code reuse. Fortunately, it is completely self-study and finds its own path.
Small companies are still living a difficult life. I don’t know when we will come to the end. Leader said that 90% of startups in China failed in the first year. Are we lucky? But his death is probably not far away.
Everyone is a product manager.
1. Project management is relatively chaotic. It is often done by one person in the early stage of development, and in the middle and later stages, it is all left to one or two of them to maintain (because other people have gone to work on other projects). The requirements changes in the middle may be strange, what a pitfall. You have to fill it in for others.
2. The level of team members is uneven, and so is the quality of the code. A large amount of untidy and 0-commented code will test your mind. Because of the first point, I am refactoring this part of the code every day, although I am not a great person.
3. The salary is low, and the boss is not very willing to spend money. After working for several years, the salary will only increase a little. The best person in the team holds n number of jobs, so there is no time for code review and technical seminars.
4. The atmosphere is relaxed and overtime is not too much.
SVN code is often rejected and hidden
It is just a support department company and it should be very similar to a small Internet company. Programmer = web front-end + web back-end + desktop application development + database design + product manager
Plans can never keep up with changes