@derakon, on Mar 11 2007, 11:59 PM, said in Should Fighters Be Able to Kill Capitol Ships?:
Wow, we're getting off-topic.
Anyway, to go back to the cooking example, I'm presupposing that the 4 eggs are all the eggs I can get, whereas it sounds to me like you're suggesting that eggs are a product of chickens combined with corn; thus, why aren't my limiting factors taking into account the chickens and corn factors? If this isn't what you're saying, then feel free to correct me. If it is, though, the problem I have with that argument is that it doesn't actually change things; at that point, my limiting factor for cakes is still the eggs I have right now, not the eggs that I could potentially have in the future. The assumption is that the time it takes to make a cake is significantly less than the time it takes chickens combined with corn to make eggs, and thus, the potential eggs from the chickens aren't worth considering.
Even if they were worth considering - say it takes me 2 hours to make a cake, and 4 hours for a chicken to make an egg (that I can then use immediately) - then, based on our cake recipe (2 cups flour + .5 cups sugar + 1 egg), after I've made 2 cakes, I now have a fifth egg, so now I can make five cakes total. Then I make two more, and I now have 6 eggs; two more, and another, then one more, and now I've made seven cakes, there's a half-completed egg in the chicken, and I'm out of eggs right now, while still having some sugar (4.5 cups) and flour (6 cups) left. What I need is eggs, and there aren't any more; thus, my limiting factor is eggs.
Having the developer's productivity be a factor of his working speed and how much time he has is a different matter; you don't "use up" working speed as you get work done; working speed is just a matter of who you are and how you work. It's not a consumable commodity; thus, it's not a limiting factor. Now, developer productivity could be a factor of available time and pizza, since both are necessary to get work done. But again you aren't really changing anything at the "what does it take to get good AI done" level. You consume the time and the pizza to generate productivity, which then gets channeled into making AI. Once you're out of time or pizza, you're also out of productivity (say you ran out of time, because there's a $PIZZA_PARLOR right around the corner), and thus out of AI improvements. This is probably going to happen before you run out of CPU; thus, processing power is not a limiting factor, while developer productivity is (because development time was a limiting factor on developer productivity).
For what it's worth, this is the definition I'm using for "limiting factor": http://en.wikipedia....imiting_reagent
This is the first you have mentioned of chemical "limiting reagents." That means two things: a) You used the term "limiting factor" assuming that everyone would equate it to "limiting reagent;" This discussion is not about chemistry, therefore there is no need to discuss reagents. Yes, in a chemical reaction, there does exist the distinct possibility of a single limiting reagent. However, then you may also need take into consideration of other conditions, such as temperature, pressure, etc. Either way, your example is much more appropriate for chemical reactions than it is for work productivity. Even in your "Pizza+time=AI" example, you are looking at it as chemistry. I was using the term factor to mean "one of the elements contributing to a particular result or situation" (the first definition for factor from dictionary.com), not necessarily as a material to be used up.
Now, as you pointed out, people don't use up speed, and I never said that anyone did. What I did say is that the speed at which a you can work, and the time you have do so, as well as the materials needed to do the work are the limits. That's why my example works well. It takes into account what your maximum boundaries are (the box; aka, the processor), the rate at which you can work (speed; perhaps how many lines of code per hour, which may be affected by the number of developers), and the time limit in which you can work (um, aka, the time in which you can work). The key is not to look at worker productivity in the sense of a "this much A + this much B = this much AB and some leftover A" chemical reaction. It's more than just putting materials together and coming out with a new product. You could possibly look at it in kind of a chemistry way like this:
You have 10 units of A, and 20 units of B. When A and B combine, you get AB. They combine at a 1:1 ratio, therefore, for every unit of A and every unit of B, you get one AB. This is were your example stops: with us having 10 AB and 10 leftover B. That may wind up being our end product, but what about how quickly the reaction between A and B occurs, or the time we have to allow the reaction to occur, or the limitations of what we can fit into the space we're given? Those are the factors I am talking about. Let's say that they combine at 2 units/minute at 70ş (rate/speed), but they combine at 5 units/minute at 80ş and 10 units/minute at 90ş (increased rate/speed). So, if we throw our 10A and 20B in at 70ş, it will take 5 minutes to get our 10AB and 10B. Also, it takes 1 box of space to store 50AB.
Here's the important part: We have to keep in mind our goal production.
Let's say we want 150AB. (To make the analogy, that's the AI we want; 75AB--the old AI--just won't cut it anymore.) Well, we need to make sure than we have enough material. We have 200A and 250B, so we're set with the material limits. We even know that if we put it all together we'll end up with 50 extra AB and 50 leftover B. (I'm not sure how to equate those individual materials to AI, but really they only serve as the connection from your example to mine.) Next, we know that the person we are shipping this AB to has 6 boxes of space (processing power). Thankfully, we are only sending enough to fill up three, so that's not a worry. It might be a factor in the future if your customer asks for 500AB, but right now, he's not. But there's a catch: we have to have the 150 AB in 15 minutes, otherwise we lose funding. (The game has to be done by a certain day, otherwise you're fired and the game doesn't get published.) Now, if time wasn't a limiting factor, we can sit around for however long and wait for A and B to combine, but it is a factor. Also, since 200A and 250B doesn't make 200AB (our goal is only 150AB) instantly, the rate is another factor we must account for. Furthermore, your boss will only pay for one heater, which can only get the room up to 80ş. (The heater is analogous to an extra programmer. Without the heater, it would be 70ş, perhaps the same as having one programmer. You would like to have another heater to get the room to 90ş because you know that the rate is double that at 80ş, but your boss can only afford one; that is, with more programmers, you can work faster.)
So, can it be done?
150AB÷5AB/min=30min. Drat. You're fired. You just can't get it done. The time limit combined with the limit of production means you can't meet the goal. However, after 15 minutes, you would be able to produce 75AB, which is your old amount. (15minâ⏢5AB/min=75AB) If only you could change at least one of your limiting factors to get it done. You explain to your boss that you need fifteen more minutes. He says he'll give you 5. (20minâ⏢5AB/min=100) You tell him that you still can't get it done with all of those limits, though it would produce more than the old amount. If you could get another heater, it would be great. So he gets you another heater, and at a scorching 90ş, you get him 150AB in 15 minutes (150AB÷10AB/min=15min), just in at your original time, even. Now, you're boss only changed one limit at a time, (first the time, then the heaters) but he could have changed more than that at once.
Now, say you're working alone, and you boss tells you that some new investor wants to know how much AB you can produce. You tell him that there are a lot of variables involved, including the amount of A and B, the number of heaters you can use, how much time you have. You also tell him that it doesn't really matter how much you can make if the customer can't store it. You arbitrarily pick some limits, but not one of each: 1 heater, 10 minutes=50AB. You then tell him that you could make 70AB in 35 minutes without any heaters. You also tell him that if you had 2 heaters, and 40 minutes, you could make 400AB, even though a lot of customers couldn't store that much. Basically, it all depends on what situation your different variables combine to leave you with.
That took way too long to type. It's too late to argue anymore logic.
EDIT: Hey, it turned my b next to ) into a smiley.
This post has been edited by erikthered : 12 March 2007 - 02:16 AM