The 7 human skills for Agile Software Development

8 de May de 2014, by , Posted in News, Comments Off

The adoption of agile practices in software development has grown enormously since the late 90s, after Ken Schwaber Scrum has prepared and published his book [SCH01]. A simple comparison between Scrum and RUP on Google Trends shows that the search for ” Scrum ” is growing while the search for RUP is dropping every day.

It is increasingly evident that methods with more processes, roles and artifacts have given way to lighter, collaborative, and results that show value to the customer faster methods. Several authors have published many books and articles about agile methods but few give due importance to the main factor that makes the agility actually be earned in its essence: the human factor.

It is natural that many professionals in the field of Information Technology (IT) do not give much emphasis on the human factor when adopting a process of software development, since it is intrinsically linked to psychological, social and behavioral factors, which are generally not theme of study in IT. However, ignoring this important factor may make the decision to use an agile process (such as Scrum) generates frustration, demotivation of professionals and waste of company resources.

Thus, the following report some fundamental characteristics and skills that will facilitate the implementation of agile practices at its core.

Competency: The staff should be competent, ie, must have the specific skills necessary software and know the technologies involved in a particular project or initiative. Moreover people should possess comprehensive knowledge of the processes used. You can not say that a team can not work in an agile way if she does not know the key concepts of this process. In many companies, the team has all the technical skills, but do not know the process. This can be addressed with a simple workshop led by someone who already knows the process.

Collaboration: the good old ability to work in a team is also essential. People should cooperate among themselves and with all involved, for the sake of the project. This requires above all humility. Even the most senior developers have much to learn from other colleagues.

Focus: all team members must be focused on one common goal: to deliver the customer an increment of working software in agreed time. The team should also focus on continuous adaptations, always improving the process as needed. Remember that the team itself must stop from time to time (eg, every 15 days) to reflect on what is good and what can be improved in the work process.

Decision making: the development team should have the freedom to control their own destiny. Should have autonomy in technical matters and project. It is the staff who should define the best way to control versions of code, making builds, deploys, run tests, documenting requirements, etc.. The company can (and should) suggest good practice, but in the end is the staff (self-organizing) which will adopt the methods or processes that you think best. Those involved in development must learn to deal with conflicting situations, ambiguity and frequent changes, because scenarios are happening increasingly in day- day business. It is necessary that the staff record the main lessons learned, which will facilitate the continual improvement process.

Trust and respect: the team must be consistent and must demonstrate trust and respect needed to make a strong team. Remember that the main objective is to make the team strong enough that the whole is greater than the sum of its parts.

Self organization: is the team itself should organize to perform the work. You need to look at every moment what else can be improved in the process so that it fits more to the environment. Self organization has technical benefits, but it is very important to improve collaboration. The team selects how much work believed to be capable of performing the iteration and commits.

When deploying agile processes in your company, always remember that team members should guide the process characteristics. The agile development process focuses on talents and skills of persons (individuals). Thus, the process must be tailored to the individuals and teams involved. Be careful not to do the opposite, ie shaping individuals and teams to process.

Source: www.administradores.com.br





Comments are closed.