Многие компании используют оклад + бонусы за выполненную работу. Бонус например складывается из кол-ва в срок выполненных задач, сложность выполненных задач, вклад в развитие ядра системы или внутренних проектов компании. Оклад зависит от уровня знаний программиста (новичек,средний, старший, гуру). Обычно при поиске работника светят максимальной зарплатой, а при испытательном сроке используют мин. а потом корректируют по итогам работы.
Например работал в компании где бонус формировался из таких условий: кол-во прочтенной технической и художественно литературы, кол-во описанных (своих рабочих) бизнес процессов в MS Visio, занятие спортом, участие в группе по интересам компании.
При оценки зарплаты отталкиваюсь от норма часа который для себя выявил в результате работы на фрилансе