Tuesday, October 27, 2009

Roles Responsibilities of Software Developer

Being a software developer are mostly Involved in performing any or all of the following activities

* Architecture and design
* Coding / implementation / construction
* Component testing
* Runtime analysis

The point of discussion are:
To know up to what extent a software developer need to involve in requirement analysis, analysis on the technology part (WPF, WCF etc), designing of UI (When its a Web application (ASP.NET)) etc.

In my experience the best developers will get involved in all aspects of software delivery. Teasing out user requirements is, I believe, far more accurate and efficient when those who are doing the work are not required to go through a middle man. This does nit necessarily negate the need for a BA, but I feel BAs and developers should work collaboratively with the users.

There is a caveate however. Developers who interact with users need to be able to separate their discussion of user requirements from the technical implementation or limitations. Typically a user does not care HOW something is achieved, but that it meets their requirements. A good developer will be able to discuss in layman's terms and then convert those requirements into the best (pragmatic) technical solution.

In terms of UI design, many developers do not have a design flair, but will have knowledge about usability and UI patterns. Once again I believe a collaborating with designers works best. The key to this collaboration is to reckonise that, just as writing good code is important to you, so things like alignment, font size and color is important to the designer! You may be one of those developers who loves the tech and the 'crayons' (as a designer friend of mine used to call it). If so, your job may be easier as you also will consider the look and feel important.

In summary, i'm a great believer in evolutionary software design where all members of the process interact from day one. I believe in short iterations where users can see working (but incomplete) software early and regularly. Above all, I think the traditional 'roles' have somewhat blurred and that everyone on a project should work together to do whatever it rakes to deliver great software.

No comments:

Post a Comment