Developing Multicore Systems