This article illustrates five habits of software development teams that make them more effective and therefore more profitable. It first will describe the demands the business team puts on its software development team and the software they create.
Next it will explain the important differences between state-changing logic and behavior logic.
Finally, it will illustrate the five habits using a customer account scenario as a case study.
There are many; and many of these are specific to types of work. I shall try and list some of the most important. Bear in mind that there's a lot hiding under each of the topics I list.
1. Treat every defect as an opportunity to learn; how did the defect get there? What can be done to prevent that type of defect happeining again?
2. Simple Design. Think about how much you can take away and still meet the requirements, rather than how fancy a solution you can build to the requirements. Keep a look out for code duplication - where the same decision is made in more than one part of the code.
3. Communicate. You can learn something from everybody. Talk to the people who are providing the requirements, who will use the system, who will test what you design, who are designing other parts of the system, who are looking at the overall architecture - if there are such people for your system.
4. Learn. All the time. Everything. I guess this isn't essential, but all the top developers I've ever met seem to do this, so I think I see a pattern...
5. Be able to work in other peope's roles. You don't need to be good at everything, but know enough about the basics of testing, requirements gathering, architecture, live support, project management etc. that you could cover those roles for a short period, with help.
6. Teach. Not all the time, but trying to explain concepts to other people is a great way of getting them straight in your own mind.