When a problem statement is not known completely , we may write the program
initially, and then keep modifying it as and when requirement (problem definition)
changes. This methodology is known as prototype and patch. That is, first design the
prototype based on the information available and then perform patch-work as and
when extra information is gathered.
An alternative is designed development, in which high-level insight into the problem
can make the programming much easier. For example,
In add_time and increment, we were effectively doing addition in base 60, which is
why we had to carry from one column to the next. This observation suggests another
approach to the whole problem
we can convert Time objects to integers and take advantage of the fact that the
computer knows how to do integer arithmetic.