Can somebody explain me what "large Applications" are?
I read it many times, but when i compare it to the "little" Tools i write for my company, it seems that this "large" Applications are really really tiny.
So what did you understand under large Applications?
Large should be at least 80k lines of code, preferably more than 100k.
Another metric I go by is there is no one on team have overlapping knowledge of the code base. In other words, no other teammate is suited to review your code because they have no context of it.
By the second metric, Google is not a "large" software system because all code must be reviewed by someone with context on it. (Single-developer projects and codebases don't get anywhere at Google...I tried, multiple times.)
I think a decent definition is "software where no one person has the whole system in her head", i.e. where reading existing code takes as least as much time as writing code, and any change may have unforeseen ramifications on the system as a whole.
Single-developer projects and codebases don't get anywhere at Google.
As a Googler working on a single-developer project / codebase, I'm sorry to hear that you didn't get traction. Very grateful for my mostly autonomous role :) There are tradeoffs of course, but to me the reduced overhead of no meetings and greater creative control are worth the trouble of an increased workload and providing support.
Good luck. I really loved the experience as well, it's just that the project got canceled when my management sponsor moved to a different department and his replacement was like "No more one-off projects." The funny thing is - I'd been warned by some very senior and very accomplished (outside of Google) people that independent projects basically never launch, but since my manager was very supportive, I'd discounted the warnings.
Comments
Can somebody explain me what "large Applications" are?
I read it many times, but when i compare it to the "little" Tools i write for my company, it seems that this "large" Applications are really really tiny.
So what did you understand under large Applications?
It's a bit like Big Data and Deep Learning. As soon as those terms came around almost nobody is left working on Small Data and Shallow Learning.
Large should be at least 80k lines of code, preferably more than 100k.
Another metric I go by is there is no one on team have overlapping knowledge of the code base. In other words, no other teammate is suited to review your code because they have no context of it.
By the second metric, Google is not a "large" software system because all code must be reviewed by someone with context on it. (Single-developer projects and codebases don't get anywhere at Google...I tried, multiple times.)
I think a decent definition is "software where no one person has the whole system in her head", i.e. where reading existing code takes as least as much time as writing code, and any change may have unforeseen ramifications on the system as a whole.
As a Googler working on a single-developer project / codebase, I'm sorry to hear that you didn't get traction. Very grateful for my mostly autonomous role :) There are tradeoffs of course, but to me the reduced overhead of no meetings and greater creative control are worth the trouble of an increased workload and providing support.
Good luck. I really loved the experience as well, it's just that the project got canceled when my management sponsor moved to a different department and his replacement was like "No more one-off projects." The funny thing is - I'd been warned by some very senior and very accomplished (outside of Google) people that independent projects basically never launch, but since my manager was very supportive, I'd discounted the warnings.
I think no. I'm working on a application on which working more than 16 teams for more than 11 years. I think it is a large application.
We talk about large "Angular" Applications.