A year or so ago I wrote an entry about core attributes of wanted developers. The conclusion was having said responsibility team leaders had in minds responsibility for a relationship. The core of being responsible for something is responsibility for a relationship between all involved stakeholders. Doing tasks is part of it. But meeting stakeholder needs and increasing business value always comes with taking care of relationship.
So this evening I came to next critical attribute of wanted developer - it is ability to deliver. It's simply stupid - you may think. Well maybe it is - on the knowledge level, but today I've understood what it really is. Closing tasks, delivering pieces of work, moving work forward, getting things done - this is what the developer is expected.
But - Caution! Controversial! - ability to deliver has higher priority than technical quality (even in the form of 'good enough'). It doesn't mean that quality is not important, but being responsible for business goals and relations between all involved stakeholders over being responsible for set of tasks, delivering pieces of software over assuring technical quality.
"That is, while there is value in the items on the right, most folks tends to value the items on the left more". :)
Summing up: Ability to deliver is the thing which must be assured in time, technical quality is the thing which must be constantly improved through time!
agile (37) anti-patterns (17) architecture (32) books (10) cases (1) code speaks 2u (3) conferences (13) conversation patterns (26) customer collaboration (14) ddd (4) design patterns (15) dialogi (1) dsl (2) effectiveness (19) embedded (1) events (21) gtp (4) info (2) infoq (5) kanban (2) lean (2) orm (2) pea (2) product humanisation (1) refactoring (13) requirements (7) retrospections (1) retrospective (1) scrum (7) soft skills (4) software craftsmanship (14) tdd (1) team (20) time management (3) tutorial (1) uml (1) user stories (1) visions (26)