[go: up one dir, main page]

0% found this document useful (0 votes)
160 views23 pages

Work Simulation

The document outlines key principles and scenarios related to work simulation, particularly in the context of Amazon's work culture. It emphasizes prioritizing requirements over deadlines, the importance of managerial input, and various situational responses to project challenges. Additionally, it includes specific examples of decision-making processes and scoring systems for evaluating effectiveness in different scenarios.

Uploaded by

zztkuro
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
160 views23 pages

Work Simulation

The document outlines key principles and scenarios related to work simulation, particularly in the context of Amazon's work culture. It emphasizes prioritizing requirements over deadlines, the importance of managerial input, and various situational responses to project challenges. Additionally, it includes specific examples of decision-making processes and scoring systems for evaluating effectiveness in different scenarios.

Uploaded by

zztkuro
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 23

special thanks to:

https://www.1point3acres.com/bbs/forum.php?mod=viewthread&tid=474434&highlight=work%2Bsim
ulation

https://www.1point3acres.com/bbs/forum.php?mod=viewthread&tid=448373&highlight=work%2Bsimu
lation

https://www.1point3acres.com/bbs/forum.php?mod=viewthread&tid=445121&highlight=amazon%2Bo
a

Work simulation(原则有先后顺序)
目前两大做题中最重要原则:
1.requirement排在第一,deadline第二。
2.有manager出现的选项无脑选manager,manager就是一个组的地头蛇。

Amazon9条主要原则
原则1:客户是上帝,requirement优先,任何影响上帝的事情都不能干,
如某个requirement影响了上帝的体验,
你就是死键盘上也不能砍了,宁愿miss deadline
原则2:为长远考虑,即客户几年之后可能会出现的需求也要考虑到,
不会为了交付短期的deadline,
而牺牲长期的价值。(比如 global api 和 local api)
原则3:最高标准,“最高”对应上面的“长远”。
原则4:一般情况,能请示manager就请示manager,manager一般不会出错
原则5:速度很重要,决策和行动都可以改变,因此不需要进行过于广泛的推敲
,但提倡在深思熟虑下进行冒险。
原则6:不需要一定要坚持“非我发明”,需求帮助也是可以的,四处寻找创意
,并且接受长期被误导的可能
原则7:敢于承担责任,任劳任怨,比如领导说谁会java,你会你就跳出来说我会
原则8:对问题刨根问底,探究细节
原则9:服从大局(团队比个人重要)

打分不是关键,排序才是关键。
大部分情况下其实并没有deadline 和 requirement谁更好,更多还是在
这个组合中你对ddl 和 requirement整体的权衡。

每个选项可以评1~5分,most effective 是5,然后1是least effective


刚开始让你看一些介绍amazon工作环境的视频
1.上来给一段video,场景是项目的晨会,就是把team正在推进的项目描述一下,
期间会有多个项目和你有关系,后面会遇到
2.进入工作界面,可以看到接受到邮件,接收到的instant message
3.进入工作状态。会有同事给你发邮件,发信息。需要你对他们提出的问题做一些判断,也就是给解决问题的选项
评分
4.一个21题,有log分析bug,有给报告出问题结论,有判断项目 走向的

情境1:给图书馆写图书推荐系统,关于book api
两个人,在表达不同的观点
选择:tell me more
一开始其实每个人都在强调自己是对的,即使有一个人更对一些,
也应该选tell me more(原则8),选了之后会得到更多信息

情境2:选图书馆的服务器有没有开放关于实体书的api
两个小哥讨论图书推荐的api应该是自己做还是用现成的。
自己做api覆盖面广,但是due赶不上,别人做的能赶上due。
requirement优先(原则2),tell me more层层递进

情境3:经理说咱们最近服务器老挂,什么情况?
先选看internal bug的记录
选 I think service 3 is the problem,
but I would like to see another report to confirm
烙印,义正言辞说自己做了20年服务器,不可能有错误,
刚刚调试过服务器,不可能是内部错误。
选自己去查,问题的关键在于不要麻烦别人
增加开发过程中测试的时间/测试覆盖更多case,放5
写Manuel test,放3
还有个是unit test,也放3
增加QA的人手,放1
让客户来当小白鼠发现问题,放1
情境4:Amazon recommendation system item,
给你推荐一些你感兴趣的item,第一个issue总是失败,
第二个issue总是显示germany
第一个问题是因为username 太长所以一直报错。
第二个问题是因为他用proxy的name来决定是不是语言了。

情境5:德国amazon除了什么问题,让你看log回答问题。问你大概哪里除了问题
亚马逊推荐广告,给英国人推了德文广告,给你log文件,
问你可能在哪,找bug in error log

情境6:员工们讨论case media network服务器最近好多compliants


有德国的,有invalid recommendation,有返回404,
找出错原因的相同点
德语因为服务器, 一个因为用户名太长,一个是有些用户的语言变成德语

情境7:具体客户ddl 只有两周,两个方案,延到四周,做完整。
另一个说先实现一部分功能做个demo,再慢慢做。
先做demo放5,按部就班四周放3, 通知其他组说两走做不完接着做美国放1

情境8:估计项目开发时间
Manager放5,找有经验的人请教4,上网查资料或是先做一段时间再估计都放3,
还有其他裸上的就1。

情境9:一个项目时间表设计
说你是这里最会用什么语言的,比如java

情境10:安排会议
视频会议 5 三个老二开会和老二去找老大开会 3 推迟会议和邮件开会 1

情境11:搞个数据库
两周时间可以搞个数据,**ben可以帮忙,大腿priya可以帮,但是要等一周半
报告manager放5,和**合作等大腿放4,合作/等大腿是3
自己单干,cut feaure都是1

情境12:系统是否升级
做两个feature,一个让100%用户爽,一个让20%用户爽,
但要升级系统,升级系统自己组会爽,但是升级会推迟做的feature,
不升级吧,升级之后还得做一遍
这题的中心是不升级,先做feature,先让用户爽。
先做100的feature再升级,再做20的feature,放5
不升级,因为我们承诺要做feature,放4。
不升级,要搞定feature,可以以后推了其他ddl再升级,放3
不升级,因为对其他组没影响,我们应该focus在request上面,放2
升级,推迟这两个feature的ddl,因为升级造福子孙后代,放2
升级,不然要做两次,放1
这题的关键在于升不升级,要坚定的站在一边

情境13:新产品设计
给8周时间,选择题,让你pick up 一个features的组合要求利益最大化,
每个feature都有相应的价值,H >> M >> L 都代表远大于
首先ddl是前提,中位数不能超过8太多,那样的话就算feature再多也没意义,
同价值,按照ddl排序,同ddl按照价值排序。

情境17:代码分析
三段一长选最长

Q1: Schedule the design review meeting (1)


1 - We can take our best guess at an estimate on our own
2 - We should work for a couple of days to gauge our progress, and then complete our estimate from there
4 - We should consulta coworker who has more relevant experience on this type of task
3 - We should conduct our own investigation utilizing online research materials and internal documentation
5 - Let's ask our manager how we should go about developing an estimate

Q2: Schedule the design review meeting (2)


3 - Ask all parties to identify a back-up person who could meet during a designated time
3 - See if there is a backup person on the Localization Team that can meet
5 - Set-up videoconferencing to include all POC's regardless of their physical location
1 - Agree to postpone the design review for two weeks when all parties have more availability
2 - Discuss the design review over email
4 - Agree to schedule the meeting at Xavier's location an hour away

Q3: Response toRavi (1)


3 - We should miss the conference and increase the timeline to four weeks because we have four weeks of work
4 - Take a day to investigate whether adding additional resources would allow us to meet the original timeline,
and re-evaluate afterwards
1 - Tell theLocalization team if can't be done in the timeline, so we should go ahead with the US launch and del
ay the global launch even though it means adding an additional week of effort to the four week estimate
5 - Take two weeks to create a prototype of the feature to demo at the conference, then take the additional two
weeks needed to fully complete the feature
2 - We can still hit the two week deadline without any changes by working harder and putting in overtime

Q4: Response toRavi (2)


Begin your investigation using the old error logs, but tell Ravi he will need to run the new logs if the old log
s aren't useful

Q5: Response toAaron and Jacob (1)


Can you tell me more about what you're talking about?

Q6: Response toAaron and Jacob (2)


You said we have an internal database of both digital and physical books. How did we get the physical book data
if the Book Database API doesn't give it to us?
Q7: Response toAaron and Jacob (3)
I recommend you go with Jacob's solution. We should miss the deadline to build our own service and meet all the
requirements.

Q8: Roadmap
Since you know more about the programming language than anyone else, you revise the estimate for porting to Jav
a.
Q9: Response toNadia
What were the internal test case results?

Q10: Most likely cause of German language issue


Site is using proxy server location to determine displayed language

Q11: Most likely cause of invalid recommendation issue


Database field storing username is too short

Q12: Log trace investigation success


5 - Increase time allotted for testing in overall lifecycle
5 - Update automated end-to-end tests to include broader data coverage
3 - Write more unit tests to include edge cases
3 - Have team members perform more manual testing before checking code in
1 - Increase the sizeof QA team
1 - Have more usertesting in beta phase
Q13: Response for meeting the deadline
2 - Work on the project on your own, putting in extra effort to finish on time
3 - Work on the project on your own until Priya is available, then continue to work on it together
4 - Work on the project with Ben, being sure to watch his work closely because of his lack of experience
5 - Tell your manager you will not be able to complete the project in the time available
1 - Cut features from the product so you will be able to meet the two week deadline
3 - Start working on the project right away with Ben. Then ask Priya to contribute what she can when she is avai
lable

Q14: Response for completing this work on time


4 - Work with theCustomer Incentives Team to identify the critical features that they need by the deadline, and
focus on those
2 - Push the timeline back another week to ensure there is enough time for all work to be completed accurately
3 - Ask your whole team for help, explaining the urgency that another team is blocked
5 - Ask your manager for help in determining the best approach to meet the new deadline
1 - Put in extra hour yourself to make sure everything gets done on time

Q15: Upgrade
4 - We should not perform this upgrade at this point in time. We promised the Retail Website Teamwe would have t
heir new features complete by the proposed deadline. Let's Postpone the upgrade to another time
2 - We should not perform the upgrade because it will not have a significant impact on the RetailWebsite Team's
experience. We should focus on the Retail Website Team's Requests
3 - We should not perform this upgrade at this point in time. Our top focus is meeting our agreed upon commitmen
t with the Retail Website Team, so we should finish that first.We can focus on the upgrade afterwards by pushing
our deadlines for some of our other projects
1 - I think we should perform the upgrade. The right thing to do is push back on the Retail WebsiteTeam because
it will keep our team from having to do the same work twice
5 - I think we should perform the upgrade. As a compromise, we can include the gift recommendation feature the R
etail Website Team wants by the deadline and then complete the upgrade. We can finish the seasonal-based gift re
commendations feature after the deadline
2 - I think we should perform the upgrade. The right thing to do is push back on the Retail WebsiteTeam because
it will allow us to more efficiently serve the customer and the customer will be helped in the long run.
Q16: New product design
2 - A, C, D, G
1 - A, C, D, G, H
4 - A, B, D
3 - A, C, F
5 - A, D, F
3 - F, G

Q17: ?
?
Q18: Problem withProduct.wasPurchasedByUser()
It has performance issue

Q19: Most effective way of improving ShoppingCart()


Change the design ofShoppingCart by removing ShoppingCart user and making shopping cart a property of User inste
ad
Q20: Five tests within ShoppingCartTest()
Fail - Test1
Pass - Test2
Fail - Test3
Pass - Test4
Fail - Test5

我记得有一个是email没初始化,一个是return个null,还有个输入是float输出是int,assertsame那有问题。

第一个是getdefualtpayment会返回null。第三个是user并没有初始化email,所以getemail会出错。第5个是 setprice的method 返
回的是integer,而testcase set的是double 。

Q21: Ask Jacob aquestion


3 - Do any other projects depend on fixing this problem?
5 - How many customers is this affecting?
5 - How does this affect customers
4 - Are we receiving complaints from customers?
2 - How long will it take to solve this problem?
1 - If I help you with this problem, will you help me finish my work today?

先是work simulation, 时间非常充足, 3 h 够够的 所以不用着急,


model1 =feature 1 2, 给你一个文件 里面列了 各自的优缺点, 多选题 让你选出各自的优点 有哪些,
然后问你你选 哪个
然后有人说选另一个, 你怎么协调
model2= code review 2 个说可以了, kevin 说非常不好, 重新来过,你怎么处理 group meeting 还是 单独meeting 他, 我很纠

model 3 = 两个algorithm , 给你数据 , 让你看 哪个卡车送货方案 路线好,
model 4= 有个同事要不test code 直接push , nizenme劝他回头是岸
model 5= 有pm 要你直接push code 别test 毕竟是个小问题, 但是 manager要你full test, 怎么办, 当然meeting 找manager 找
senior 等等啦
看log 错在哪里
1. 给你两个feature 然后回答三个问题
a. feature1会有什么positive impact (选3个)
b. feature2会有什么positive impact (选2个)
c. 最终选哪个feature(个人感觉是1 多选牛逼的feature)

2. manager告诉你有一个bug让你修,给你3天,pm让你今天就弄好
问题是:
a. effective way to solve this problem(排序)
b. Dai Wang遇到跟你相同的问题 问你该怎么办
c. 他没听你的意见出了severe issue,问你该怎么解决(排序)

3. 比较简单 三个人给你review code。有两个说写的挺好,有一个说你写的太差要rework 问你该怎么办

4. 两个alg,问你选哪个好。 给了一堆chart让你比较delivery数量和delivery距离 (这个题不太会 瞎蒙的)

5. log分析 很简单,找共同点就行

number to text .py


test = input()

list1 = list(test.split(" "))


list2 = []

for i in range(0, len(list1)):


test2 = list1[i]
test2 = int(test2)+64
test = chr(test2)
#print(test)
list2.append(test)

print(list2)

// java
Scanner scanner = new Scanner(System.in);
Map<Integer, Character> map = new HashMap<>();
for (int i = 1; i <= 26; i++) {
char c = (char) ('a' + i - 1);
map.put(i, c);
}

while (scanner.hasNext()) {
StringBuilder sb = new StringBuilder();
String[] current = scanner.nextLine().split(" ");
for (String num : current) {
int i = Integer.parseInt(num);
sb.append(map.get(i));

}
System.out.println(sb.toString());
}

scanner.close();

text to number .py


test = input()

list1 = list(test)
list2 = []
for i in range(0, len(list1)):
test2 = list1[i]
test = ord(test2)
#print(test-64)
list2.append(test-64)
print(list2)

// java
Scanner scanner = new Scanner(System.in);
Map<Character, Integer> map = new HashMap<>();
for (char c = 'a'; c <= 'z'; c++) {
map.put(c, c - 'a' + 1);
}

while (scanner.hasNext()) {
StringBuilder sb = new StringBuilder();
String current = scanner.next();
for (char c : current.toCharArray()) {
sb.append(map.get(c));
sb.append(" ");
}
System.out.println(sb.toString());
}

scanner.close();

You might also like