Japan Dragon Project Phase1 Lesson and Learned
We made a very good improvement and did a good project compare to previous, But we still on the way to be a wonderful dev team. Following is project's lesson and learned.
1. Planning Phase:
a) Our BA did a good job in business analysis, So some of developers start work without fully understand the whole business process, only focuses on his function. Though it isn't impact project successful. But it holds back team members improve business concept and to be talent developers. (A good technical skill & a fast business understanding comprise a talent developer) The reason of business concept shortage is "clear individual working/function scope and lack of interesting" after questioned each team member. "Clear function scope" is right for a big project. Shall focuses on how to anti-"lack of interesting".
b) New hire don't fully understand his job function, made more mistakes compare to other team members. "Correct action base on correct understanding". How to improve business function understanding?
Solution:
1. Emphasize a concept that is "master whole system business process is a key talent as a team leader and an architector". Make decision by yourself.
2. Add brief function introduce in peer review process.
3. Re-draw business processing diagram again after communicated with business analyst. Email his diagram to BA to double confirm. Email content shall contain all function related information, (Exp: If one function point changed, email content shall include whole function processing diagram and high light the changes).
4. New hire's fist mail shall be helped and sent by his mentor. Mentor give him/her a good example first.
5. Add more check points for new hire's job function.
2. Development Phase
a) Peer review wasn't enough, only covered 70% code.
b) System configuration met a little trouble. Whole team was continue struggling on the "right" configuration during the SIT phase until we made an agreement using same entry point to change system configuration.
c) We successfully did every day's "Daily Build", but don't have time to do "Daily deployment".
d) Sometimes dlls updated wrongly in SIT phase. There are successfully build dlls in daily build output folder, why not get them? That means urgent working time system update shall trigger daily build, passed build first.
e) Load test only covered 70% user case. Not too bad, not too good.
Solution:
1. A team member volunteer to be a peer review moderator. Trying to find a best practice balancing time and efficiency. She will help to plan team members time, follow up working item and so on.
2. Use same entry point for system configuration. Four entry points are required for Dev, SIT, UAT and Production configuration.
3. Import "Daily Deployment" in next project.
4. Get suitable dlls from daily build folder for every SIT, UAT deployment.
5. Load testing is a time consuming work item, key scenarios cover is required, all scenarios cover is better.
3. Stabilization Phase
a) Backlog orders problem. We did a little preparation for backlog orders which shall be loaded into new system. In the system go live day, backlog orders gave us a big surprise, there were too many of them, out of system capacity. Have to temporarily wrote a little program to split orders, it took 3 hours.
b)11 issues counted in the first two weeks, 3 of them belong to careless issue. Careless is a problem for some young developers, They will grow up by tasting and tasting painful result for his/her careless. It need time, What team can do is improve peer review process.
Solution:
1. Smoothly pass backlog data trap is not too difficult: a)How many of them? b) How to process it? c)Test it.
Enhanced peer review steps:
1.Follow up last review agreement.
2.Code owner hold brief function introduction, and present actual function.
3.Code owner run unit test
4.Reviewer review code sequence diagram
5.Reviewer go through unit test code and code.
Task completed standard:
In what kind of situation we can say "Task completed! Job done!" in Monday meeting during development phase?
1.Function completed
2.Unit test code coverage up to "90%"
3.Peer review passed