Development philosophy for Dev teams

I have been evolving for several years now, and frustrated with how some of the old programmers on my team started development and implementation without any development philosophy, which generally leads to further development problems, usually due to lack of flexibility and validation. I raised this annoyance with my colleagues, and they replied: "Well, then from which hundreds of development philosophy do you propose to use?"

This was a difficult question to answer as it is much easier to use development philosophy when working on you than when working as a team. I am a bit inferior for test driven development as I seem to feel that my code is working correctly, however TDD has its limitations, mainly in the overhead required to write all the tests, and to provide confidence that that there are no gaps in our test environment (which is difficult to achieve when working in a team). A friend of mine swears at the Agile Unified Process (AUP) and refuses to use anything else.

My questions

  • What development philosophies have you found to work well in team development, and how have they helped you deliver your product on time and on budget?

  • What challenges did you face and how did you overcome them?

  • Do you think they are even needed?

+2


source to share


5 answers


As a contractor, you may have little influence over the development philosophy of a particular company. This fraction of the price is for what most companies consider temporary. For you as a person, sometimes the best thing you can do is learn to adapt to your current corporate culture and learn what works and what doesn't when you are able to influence.

You can always execute the test driven parts yourself, so at least you know your code will pass the tests. I wouldn't look at it as an overhead, it's part of writing the code to test to make it work. There is much more overhead associated with not writing tests.

If a site doesn't have a specific development methodology, there are two ways to get them. First, if the developers basically agree on which philosophy to use and they just start using it and show control, it works and improves the product. Developers are remarkably free to figure out how to get their jobs done, not many other professional specialties. Use this to your advantage. Take a small group of like-minded people and just start using a method that you all agree with. Indoctrise someone new to the group in how you do it. Show real progress and the management to handle it (managers, like anything that makes them look good).



The second way to change the corporate culture is from top to bottom. Change the mind of one senior manager to this and he may instruct you to use the new methodology. This is ugly and people will struggle with it (this is called resistance to change, and this is normal and you need to expect to deal with it.) Create a few successes again and you will feel better, but your manager should tend to stick to politics through the difficult phase is getting people to use the new method, and there must be consequences for those who do not follow the new method. Sometimes, when a test project with volunteers to use a methodology can first prove value to others, sometimes people are just dead and won't change for anything.

People who, after some time and a multimillion-dollar chance to change, still refuse to step on board with the new policy, will need to be let go no matter how good they are as individual developers. If you cannot follow the team's rules, then you need to move on or move. Culture change cannot be achieved without everyone eventually coming on board.

Sometimes you can use outside influences to get managers to change the way they do business. We've changed the entire development process here to achieve the certification required by one of our biggest clients. HIPPA and Sarbanes-Oxley are also responsible for many of the companies that formalize the development process. If you can make the argument that formalizing the process to get some kind of certification or legal compliance is a benefit that will bring them more business, then perhaps they will suddenly notice the value.

+2


source


This is very subjective, but you need to read these methodologies, see if your workflows overlap, and then improve things using ideas from all the methodologies. All teams are different, methodologies work differently depending on the nature of the work, the ways of launching, supporting and launching projects.

Talk to the team and discuss what they are willing to do / change, rather than trying to impose something on them. You will run into problems of acceptance and change.



It's all about communication, and yes it is necessary.

+1


source


My clients use different methodologies (Agile / Scrum / XP, etc.). From my point of view, I see no performance difference between the two.

However, I see a definite difference in performance between teams using different aspects of these methodologies. Especially continuous integration (CI), TDD, and willingness to create / maintain tests, and release frequently / regularly. Teams I've worked with using them tend to do well (no matter what they call their methodology, have rack meetings, etc.) and those that don't tend to struggle.

I don't understand if you are using techniques like this (I don't think you are), but instead of pushing the methodology, I would suggest that you introduce specific practices (most likely CI / TDD) and work there, I think that it will be an easier pill for your colleagues to internalize and provide more benefits. Of course, you have to enforce the TDD methodology and I would get the management to buy this early on.

0


source


It takes years and years of experience to truly understand the full potential (and limitations) of a methodology, and even longer to understand when to use which.

The quickest way, I think, is to read a rough description of several philosophies, choose the one that seems most appropriate for the situation, and really go for it. The most important thing is to keep one track. Don't try to mix and match. Stick to one paradigm and use it completely.

It is also important to educate your employees and share their vision so that they truly understand why everyone should follow these principles. If you already know what the disadvantages will be, share them as well and make sure you clarify how the advantages of the methodology outweigh the disadvantages.

This is much easier said than done. The most important thing is to open an open dialogue so that everyone understands why and what you are doing.

0


source


  • Identify the risks that threaten the success of your project, prioritize and attack the most significant ones, first using short iterations that objectively demonstrate resolution through successful test execution.

  • Make design goals, constraints, and architecture explicit, and make sure everyone on the team understands them.

  • Fix each defect during the iteration in which it was discovered.

The main obstacle is always resistance to change. Give an example.

0


source







All Articles