
In order for information inside the team to spread quickly, and any problems immediately get out, Agile prescribes daily morning meetings - stand - ups , where everyone briefly tells what he did yesterday, what he had time to do and what problems he encountered.
The code should be simple and readable so that it can be easily changed, and at any time to different people. To do this, your code must be constantly critically reviewed and refactored . Those who treat their code as a child, the requirement to constantly change the code is perceived as a personal offense. “I tried, I created , and now - to change again? ...”
To make sure that the project works, you have to write unit tests . I mean, the code turns out to be twice as large, and twice as much work is hung on the developer. And for what? All the same, the tests do not give an absolute guarantee and will never find all the bugs. So let the testers look for them, they exist for this!
To ensure that the project does not fall apart when integrating changes from different developers, Agile offers a Continuous Integration server. Here's another, come up with our head! Now in my mailbox a lot of some left-handed emails are pouring in that the build is broken. And I have to go to some server and figure out why the tests are red? Yes, I, maybe, have nothing to do with it, why should I waste time!
In order to constantly discuss all design issues, make continuous code review, instantly find errors and write tests to a friend, Agil has prescribed pair programming . Undoubtedly, developers are most afraid of this. Still would! All day, a dude will sit next to me who will tell me how and what to do. Poking my mistakes. Neither you read the mail, no news, no jokes. No, thank you! And if he has a different style? If our opinions diverge? If he likes to put brackets in the same row, and me - in the next? Are we going to argue all day? Thank you, we do not need such good.
In order for the developer to better understand the problem area and to be able to offer simple solutions in a timely manner, direct communication with clients is necessary. Oh, my, my colleagues and I prefer to talk on the phone, and with a client ...
The average developer is interested in writing some complicated intricate module (even if it is not needed by anyone), but it is not interesting to write a simple to disgraceful, but working product. I know what I'm talking about, I myself was like that. It was more interesting for me to write my own StringUtils class than to use an existing commons-lang type library. Just because it is interesting. Interesting is the process of creating this figoviny. And what about the client? Nothing will happen to him, he has waited for half a year and will wait. Now I will finish my StringUtils and then I will deal with its problem.
And most importantly: an ordinary developer appreciates his comfort at the computer. My workplace is my home. I set up everything here as I want, put my desktop, music, audio player, programs there are different, framed photograph on the table. I even have a separate cup here. Here I have a comfort zone . It's just me and my computer. Well, yes, sometimes supervisors and testers come in, rush into my little world, but this is temporary. Talk and leave. And peace will reign in my world again.For most developers, their own comfort is more important than working software, than the success of the company and everything else.
Pair programming is a great way to increase motivation. You can always agree with your partner about what to do and how to do it, so that it does not turn into routine work, you can dynamically change responsibility and not engage in “one and the same”, which you often have to do alone.

Source: https://habr.com/ru/post/131926/
All Articles