Well, I am a software designer, and I'm not sure what I think of the idea. The algorithm used to design it would undoubtedly be able to influence the results of countless elections, and it would have to be the target of much scrutiny. As most politicians are not versed in algorithm design, they would find it very difficult to understand the problems with such an algorithm and order that they be fixed.
For example, if we took a look at a hypothetical city: let's say this city was primarily Democrat and is very densely populated, and let's say the surrounding area is primarily Republican but very sparsely populated. For example, if we used a growing/shrinking algorithm like you described, we would start out with a bunch of districts that are too large over the Democratic city, and a bunch that are too small over the lower-population Republican areas.
To fix this, we might choose one of the following two options: We might take some of the too-large Democrat districts and send some of that population to combine with the too-small republican districts. This might result in less districts with a lot of Republican representation because they all got additional members from the Democratic city interior.
On the other hand, we might combine two too-small primarily Republican districts with one another and split up two too-big Democrat districts into new districtions, which would result in a set of very heavily Republican and very heavily Democrat districts. The Republicans could have more districts using this algorithm.
So, I guess the real question would be: if a district is too small, do we give it new members from the highly populated regions, or do we combine it with another too-small district?
Because politicians are not qualified to understand how the intricacies of such an algorithm work, I don't think they'd be qualified to recognize why an algorithm heavily favors representation for the opposite party and suggest a suitable replacement. We might have the same district favoritism that we see today, except politicians would be less able to recognize it.
Is it a good idea to implement that sort of thing? I don't really know...
Anyhow, I've attached two simple pictures (designed in MS Paint, yeah!) of the situation I described above which show how I imagine the same area might be split into 10 Democrat districts and 4 Republican districts, or 6 Democrat and 8 Republican districts using two different algorithms.
On the other hand, I guess the same thing happens today all the time, so I don't know if this sort of algorithm is a good idea or not. I just mean that it won't necessarily get rid of the problem, and we'll no longer even be able to point the finger at the people we elected. Perhaps a better solution might be to draw more attention to the issue of our districts and try to show the people when politicians are doing unfair redistricting.