|
![]() |
Author of Test Driven (2007) and Effective Unit Testing (2013) [Blog] [HowToAskQuestionsOnJavaRanch]
A good question is never answered. It is not a bolt to be tightened into place but a seed to be planted and to bear more seed toward the hope of greening the landscape of the idea. John Ciardi
TDD does force you to write testable code, which often encourages better designs
Author of Test Driven (2007) and Effective Unit Testing (2013) [Blog] [HowToAskQuestionsOnJavaRanch]
I would disagree a bit. I think TDD as a methodology has matured already -- Beck, Fowler, Wells, Cunningham, Jeffries and other early XP'ers were doing test-first development back in the day before 1997, I believe... (The infamous C3 project was launched during '97)TDD is still evolving and is in it's early stages but the way things are moving it'll mature in about a year.
Try slotting Component Based Development, Aspect Orientated Programming into the list above.
Author of Test Driven (2007) and Effective Unit Testing (2013) [Blog] [HowToAskQuestionsOnJavaRanch]
Personally I wouldn't put learning UML in a list like this.
...
In my opinion, in a list of what to do to teach/learn O-O, UML is an optional thing to cover some while after basic O-O principles, along with extra languages, corporate "house styles" and "coding standards", specific editors/IDEs and so on.
I would not declare myself being a good OO designer yet but I just thought I should share this... About 18 months ago I was on a project that lasted around 6 months from scratch to acceptance. I spent the first two months playing with MS Word and Rational Rose due to the client's standard BDUF process. I haven't touched Rose for more than 5 minutes since. Nowadays I sketch when needed. Much better.There are a whole lot of good O-O designers and developers who never use UML.
Author of Test Driven (2007) and Effective Unit Testing (2013) [Blog] [HowToAskQuestionsOnJavaRanch]
We're on the right track, however, as the university folks around the globe get the hang of it and start pushing it early on.
At least Helsinki University of Technology has been running courses talking about agile methods (among other things) and I suspect most universities abroad have done the same. I don't count this yet as "active" but today every single faculty member knows what XP is on a high level (more people seem to have heard of "XP" than "Agile", which is kind of twisted...). HUT has also been doing one project course in collaboration with industry representatives acting as clients where the student teams are required to follow XP by the book, I believe.Does anybody know of any University that is actively doing this ?
They need not be, though. Nobody can learn to innovate by reading a book but many people can learn to build an environment that nurtures innovation and thus indirectly helps to innovate. This has been on the agenda for at least a decade, though. Maybe not in tech but in business at least.I'd also be interested in Universities that go out of the way to teach how to be innovative? I know, teach and innovative seem to be a contradiction in terms!
Author of Test Driven (2007) and Effective Unit Testing (2013) [Blog] [HowToAskQuestionsOnJavaRanch]
Stan , that's a nice link you have given there.
I can't decide who is more prolific - Scott Ambler or Robert Martin?
A good question is never answered. It is not a bolt to be tightened into place but a seed to be planted and to bear more seed toward the hope of greening the landscape of the idea. John Ciardi
posted by David Weitzman:
I'd insert refactoring practice between design patterns and TDD.
This has been on the agenda for at least a decade, though. Maybe not in tech but in business at least.
Where would you include Pair Programming and how would you go about it ? To me the natural place seems to be right at the start.
Author of Test Driven (2007) and Effective Unit Testing (2013) [Blog] [HowToAskQuestionsOnJavaRanch]
1.Pair Programming and XP principles and values
2.OO concepts and principles first
3.then An Introduction to UML
4.then Design Patterns - real life examples
5.Next TDD with an OO language(Java, C#)
6.Refactoring practice
7.Anti-Patterns
8.Followed by Design Patterns using OO language examples.
9.Show the students how an existing application has cross-cutting concerns and how these clutter the otherwise clean OO-code. Then introduce AOP.
Did you see how Paul cut 87% off of his electric heat bill with 82 watts of micro heaters? |