hybrid software development