TICLES_AMOUNT):
        self.obstacle = Obstacle()
        self.obstaclesList.append(self.obstacle)

    # make new sprite using list
    for i in self.obstaclesList:
        self.allSprites.add(i)
        self.obstacles.add(i)

    self.gameLoop()

def gameLoop(self):
    # main game loop
    while self.running:
        self.draw()

def draw(self):
    self.screen.fill(WHITE)

    self.allSprites.draw(self.screen)
    for sprites in self.obstaclesList:
        sprites.update()

    self.allSprites.update()

A:

Your code is fixed by

adding missing imports
adding missing constants
renaming animate to update in the Obstacle class
calling pygame.display.update after drawing
using a Clock to limit the framerate  
adding event handling
adding code to create a Game instance

Some more improvements:

no need for obstaclesList if you already have obstacles 
you can pass Groups directly to Sprite's __init__ function
remove a Sprite when it's no longer on the screen

Here's the code:
import pygame
import random

OBSTICLES_AMOUNT = 8
WIDTH, HEIGHT = 800,600
TITLE='some game of falling stuff'
BLUE = pygame.color.THECOLORS['blue']
WHITE = pygame.color.THECOLORS['white']

class Obstacle(pygame.sprite.Sprite):
    def __init__(self, *args):
        pygame.sprite.Sprite.__init__(self, *args)

        self.image = pygame.Surface((30, 30))
        self.image.fill(BLUE)
        self.rect = self.image.get_rect()
        self.rect.x = random.randrange(0, WIDTH - self.rect.width)
        self.rect.y = random.randrange(-100, -40)
        self.velY = 6

    def update(self):
        self.rect.y += self.velY
        if self.rect.y > HEIGHT:
            self.kill()

class Game(pygame.sprite.Sprite):
    def __init__(self):
        pygame.sprite.Sprite.__init__(self)

        pygame.init()
        pygame.mixer.init()
        self.clock = pygame.time.Clock()
        self.screen = pygame.display.set_mode((WIDTH, HEIGHT))
        pygame.display.set_caption(TITLE)
        self.running = True
        self.clock = pygame.time.Clock()

        