I used to be a project management assistant of a partner in a Huawei project , Technical architect role . Here are some thoughts on technology and management .

1. technology

    Huawei is developing its own cloud platform technology . It's called Huawei application engine (HUAWEI Application
Engine). It is based on J2EE Cloud platform of , There are many customized front-end controls of Huawei , Front end controls are quite complete .REST No need to write about the service java Code can be built , Configure some sql Statement . It's also powerful . The disadvantage is that these front-end controls are somewhat rigid , Not meeting all requirements , The application team must rely on Huawei's application engine team to modify these controls . Complex call relationship between background services , Difficult to maintain . The application team thought about localization , Can write more java code . However, the complex call relationship between background services needs to be improved . Low unit test coverage . Code quality is difficult to guarantee .

  In addition, the platform is based on Huawei's own secure login system w3. But from the experience gained in the past , Some security flaws were found , Xiang Huawei pointed out these security problems . Huawei's architects also accepted .w3 Login system as a platform widely used in Huawei . It is still necessary to reduce safety problems and hidden dangers as much as possible . As an architect , Consider meeting functional requirements , Scalability , Maintainability , Scalability , Security , Robustness , Wait, wait, wait . So there's a lot of work to do .

Unit test is not convenient . Whether it's the front desk javascript, It's still backstage service It's not easy to do unit tests .HAE The platform and the application are not testable . Poor configuration management , Unable to deploy properly . It's hard to get a testable version at the end of every day . It will take days or even longer to piece together a barely testable version , But one move to another . It's time to stop . It's going to take days .

    Huawei's application engine still has a long way to go .


2. Administration

The team is big , Yes 100 Many people . Teams try to adopt agile methodology , But what we do is not agile . Huawei project manager and supplier project manager manage such a large team together . Divided into several small teams . Treat each small team as an agile team . Sometimes these small teams are 10 About people , Sometimes 20 people . In fact, this number is not suitable for agility . commonly 7 reach 8 People are more suitable . There is no real agile definition PO(Product
Owner), The organizational form is waterfall .BA(Business Analyst) Acting as PO.

    There are various risks in the project , Personnel risk , High turnover rate , Need to arrange work handover . Technology risks , For example, some functions of Huawei application engine need to be modified , We must ask Huawei's application engine team to modify it , But Huawei's application engine team serves multiple projects , Need to coordinate resources . There's a lot of work in this area . Risk of demand understanding , Development and test pairs BA The understanding of given requirements may deviate , Requirements are not well versioned , So sometimes BA Changed requirements document , Forget to inform development and testing , Or just inform the developer , No notification test , Or just notified the test , Development not notified , Different understanding of requirements , Leading to disputes between all parties at the later stage of the project . Last project extension . At that time, Huawei's application engine was not robust and stable enough , There are always problems , It took a lot of time for the team . Risk management was once managed . But the team didn't stick to management .

Huawei's application engine platform was not labeled at that time , So version management is very difficult , Configuration management is a headache . Do it once Build, Redeployment . It's been a long time . Either this or that , Wrong code version is a common thing . This should identify all configuration items well , Requirements of this platform , It has many configuration items , It has to be identified , Well managed . This work has not been done well enough , Some configuration items are always managed by the developers of some development teams . Even when deployed to the production environment, these developers are in charge . A large number of deployment steps are manual , No script . Error prone . Even with scripts , The quality of scripts is also worrying . It's compared to what we've done in the past . It's a long way off .

  It can be said that the team applied a few agile forms , But there is no essence of agility . The essence of agile is that agile teams PO 's proactive delivery commitment . It is after the agile team understands the requirements , After analysis , Need to be disassembled , After understanding its complexity , towards PO Proactive delivery commitments made . The reality is that the team has no active commitment , Both project managers and BA Scope of the team , Demand and duration . And then there's no way , Only passive commitment , But most of the promises have not been fulfilled . quality , Duration , The scope fails to meet Huawei's requirements . If you really want to be agile , Need Huawei and supplier to turn to agile thinking .


What is said in the article , Part of it reflects the situation at that time . May not be accurate . It could change later . For example, things have changed .


©2019-2020 Toolsou All rights reserved,
It's unexpected Python Cherry tree (turtle The gorgeous style of Library )Unity3D of UGUI Basics -- Three modes of canvas os Simple use of module computer network --- Basic concepts of computer network ( agreement , system )html Writing about cherry trees , Writing about cherry trees Some East 14 Pay change 16 salary , Sincerity or routine ?Unity-Demo Examples ✨ realization UI- Backpack equipment drag function 06【 Interpretation according to the frame 】 Data range filtering -- awesome java Four functional interfaces ( a key , simple )