Move the aliens back and forth:
...
alien_direction = 1
alien_speed = 1
...
while True:
...
# Move alien
if now - alien_start_time > ALIENS_STEP_TIME / alien_speed:
alien_at_right_side = alien_direction > 0 and max(alien_columns) == fb.width - 1
alien_at_left_side = alien_direction < 0 and min(alien_columns) == 0
if alien_at_left_side or alien_at_right_side:
alien_row -= 1
alien_speed *= 1.3
alien_direction = - alien_direction
if alien_row == 0:
break
else:
alien_columns = [column + alien_direction for column in alien_columns]
...
Full project: