Do the ideas of traditional software engineering conflict with the newer agile development techniques? [closed]
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 5 years ago.
Improve this questionSo as a developer I am seeking to improve not only my coding skills but my design and managem开发者_运维百科ent skills. Because of this I'm starting to pay more attention to software engineering practices but i'm not sure where agile development fits into the picture. I can appreciate agility in projects but I wonder whether this conflicts with the traditional ways of software engineering practices and research.
If you haven't read Rapid Development, I highly recommend it. What makes it super pertinent now is how it leaves off just as it should start talking about Agile. So it gives you a thorough background of "how we got here". When you read the sections on iterative development and iterative prototyping, it will make any additional research you do on Agile that much more meaningful.
I thought that agile practices, as expressed by Kent Beck in "Extreme Programming", were merely best engineering practices turned up to eleven:
- If code review is good, we'll code review all the time by pair programming.
- If integrating often is good, we'll integrate all the time with continuous integration.
- If testing is good, we'll test all the time with test driven development.
If this is true, I'd say that agile practices need not conflict with traditional software engineering. They're merely traditional ideas taken to an extreme.
I'd also wonder if agile is less about practices and more about mindset and ideals: see The Agile Manifesto. I think this is where the real clash lies, because most of the companies that practice traditional engineering don't embrace those ideals. It goes against traditional project management thinking.
Agile should not change your engineering practices. Agile is a way of breaking up the work into story points and giving you the ability to track the project as it progresses.
Agile has nothing to do with s/ware engineering as it can be adopted for anything. Even toasting bread.
The simple answer is "no, they don't."
Agile methodologies are ways to impose discipline on software development and hopefully get to best practices. There are other methodologies that have the same goals, and those methodologies may conflict with Agile methodologies; but the goals are similar.
After a few years of software development in several companies I must admit if cars were developed in the same way software is, I would go to work on foot. I haven't seen any software engeering yet. It's always the same. Start typing without any plan or model or concept or anything just endless refactorings and changes. Most of them could have been avoided if there were just time to think before you start. Everyone wants to see instant results but no one cares about the quality and extensibility.
精彩评论