Custom software development vs generic applications