algorithmic systems development