Recursion and corecursion have the following types
cata : (f a -> a) -> mu f -> a
ana : (a -> f a) -> a -> nu f
We call types of the form `mu f` data and types of the form `nu f` codata. Data is guaranteed to be finite while codata is not.”
Finely grained management of software developers is compelling to a business. Any organization craves control. We want to know what we are getting in return for those expensive developer salaries. We want to be able to accurately estimate the time taken to deliver a system in order to do an effective cost-benefit analysis and to give the business an accurate forecast of delivery. There’s also the hope that by building an accurate database of estimates verses actual effort, we can fine tune our estimation, and by analysis find efficiencies in the software development process.
The problem with this approach is that it fundamentally misunderstands the nature of software development.”