The site doesn't yet contain everything but things are trickling in.
So we have Test Driven Development and Model Driven Development or Design by Contract (similar perspective). But in the past, I've been a fan of Data Driven Development. This is a technique I haven't had the pleasure of using recently....because it relies on you building new applications with new databases.
What is this technique you ask? Well for me it is designing the data model first. In the early days of Client/Server, PowerBuilder and ERwin were my tools of choice. New applications. New databases. My design process (and that of many of my associates) was not so much to design a database but to document the data that existed in the organization - and do that in 3rd normal form. ERwin still stands as one of the best modeling tools ever because it actually made the job of coding up a database schema easier and faster than any other alternative. I could also use my model throughout the entire lifecycle since it did an excellent job at full round trip engineering/synchronization.
One of the cool features of PowerBuilder was your ability to annotate your database schema with UI hints. So you could say that a given column in your database should by default be shown as a checkbox, and that checked should be saved as “true“ and unchecked as “false“ - or whatever weird thing your DBA said it had to store. Whenever you designed a screen with that column, bam you'd have it the way you'd expect - as a checkbox. The downside of PowerBuilder's datawindows of course was that the data store/entity/container was quite pretty tied to your database and they made no attempts to hide that fact. But boy, productivity was really high - although I was producing tightly coupled, loosely coupled code :( .NET let's me build better code now, but productivity is still lacking.
At TechEd a couple of weeks ago, I stopped by the DeKlarit booth for a demo of their product by their lead architect Andres Aguiar. I was happy to see a tool that builds upon the Data Driven Development process. Of course, you don't have to start with an empty database, but this tool does an excellent job of making your job easy when starting from scratch. Andres promised to send me an eval so I can play with it some more to see how it works with existing databases but this tool so stay tuned. I could easily see this tool paying for itself in a matter of a couple of weeks.
As for ERwin, I'm still a fan although it really hasn't changed much in the past 10 years. I remember the first copy I had fit on a single floppy. So did the 200 table model I created with it. I was using LBMS System Designer who stored my model in some kind of 10mb black hole and took 10 minutes to generate a schema. When I first installed ERwin, I had it installed and reverse engineered by LBMS model - and forward engineered to from Oracle to SqlServer inside of 10 minutes. I couldn't believe the schema generation took 20 seconds compared to LBMS at 10 minutes.
No need to have a TechEd commnet password. You can download ALL the pdf's for the plethora of topics. Some good stuff to see how the newly announced stuff (Team System, etc.) works.
Update These links are broken, give this a try: http://www.msteched.com/TechEdLabManuals.aspx
A bunch of sessions that were formerly named “TBA” are really about the new Visual Studio 2005 Team System.
- DEV200 General Session: Managing the Software Lifecycle with Visual Studio 2005 Halls GH
- DEV300 Visual Studio 2005 Enterprise Tools: Software Project Management Room 20D
- DEVC36 Testing Visual Studio 2005 Applications Using the .NET Framework Cabana 06
- DEV302 Visual Studio 2005 Enterprise Tools: Building Robust and Reliable Software Room 20D
- DEV303 Visual Studio 2005 Enterprise Tools: Enterprise-Class Source Control and Work Item Tracking Room 20D
- DEVC39 Extending Visual Studio 2005 Team System Cabana 06
- DEVPNL4 Enabling the End-to-End Solution Lifecycle: Microsoft Partner Panel Room 20D
- DEV356 Visual Studio 2005: Managing the Enterprise Build Process with MSBuild Room 31ABC
Marcie Robillard has put together a fun game for TechEd attendees. You can print out your cards in the Sails pavillion where all those computers are lined up row on row.
It's official. I'll post more thoughts and analysis about this as time permits, but, things you should know.
- Microsoft now has a new Team version of Visual Studio to be delivered “Next Year“ according to Balmer.
- new source control - more details to follow.
- Project Management - so dev's will be able to see “Work Items“ in their IDE. There is also supposed to be a sharepoint portal of some kind that dev's & pm's can go to see a dashboard view of a project, milestone's, etc. integrated with MS Project Server.
- Unit Testing - yes, a very NUnitish thing built right into visual Studio.
- Code Coverage - yes in the editor you can see what code was executed and what was not.
- Static Code Analysis - a la fxCop integrated right inside of visual studio.
- Check in Source control process policy, so a manager type can say “if you check in something, all tests must pass, all static analysis rules must pass, and your code coverage must be 100%“.
- Also showed was some Load testing stuff that is going to be better than Application Center Test - more on that later.
Of course whitehorse class modeling & SOA designer were showed quickly. Nothing new to announce yet on that front that wasn't covered at PDC....although the guy doing the demo kept saying “Services Oriented APPLICATION” designer. Is this new? Is he changing the acronym from Architecture?
This BOF went pretty well and a huge thanks to Jim Newkirk for assisting in the delivery. He's a real authority on the practices around NUnit and a good guy to have a round. If you buy his new book on Test Driven Development with Microsoft .NET onsite at TechEd, you can probably catch him at the MS Pavillion to sign a copy.
Some interesting points discussed:
- Using Unit Tests to drive “example code“ for a framework or class library would be a nice to have.
- While Code Coverage statistics may satisfy external parties that we've tested what we've developed, percentages are not an accurate measure of code quality.
- If you write your tests after you do you coding, you already have too much information about your classes that negatively affects how you test.
- Testing first can really influence (positively) the design of your classes.
- Developers will work aggressively against source-code check in policies that stipulate a % of code as been covered in unit tests, and that the tests pass, and that they pass static code analysis.
- It's difficult to test User Interface code, and for a bunch of reason's, not a really good idea or worthwhile investment because the only person who can see your application from the outside in, is through the eyes of a specific user - and you'll never be able to approach that.
- At the end we also got into some of the difficulties of testing against a database and a bit about Mock objects. That would probably be a good bof on it's own.
Jim might have more comments, but the general feeling I got was that people still need more education about automating unit tests and that not a lot of people are doing it today, let alone Test First. Jim also mentioned that he didn't think it was possible to lecture to somebody and convince them about Test First, but more that it was something that they just really needed to see for themselves. I agree.
I attended the MCT meetings today. It was nice warm up to the rest of TechEd, although I felt a little out of place as a Developer trainer.....most of the room was IT Pro (MCSE) types, a fun crowd....geeky in a different way.
Anyway, lots of cool things in store for MCT's coming Oct 1 (beginning of the 2005 program). Most of that is at the doghouse.
I got to meet Paul Adare whom for the longest time has been the moderator on the MCT newsgroups. It's funny that I have to fly all the way to San Diego to meet a guy who live about 15 minutes from my house in Oakville. I'm not a big poster in the MCT newsgroups so I was surprised that he knew my name and said he reads this blog. “Hi Paul - say you need a blog so I can point people to it”.
I also had a chance to run over our new “Best Practice“ curriculum with David Lowe who is the Content Development and Delivery Training and Certification Manager at Microsoft. It would seems that we are not the only ones seeing demand from our customers for this new level of training above and beyond the simple how & why, but more of the when & where of how a technology or development practices applies in a developers day.
The final session was with Richard Klees. He does most if not all of the speaker training & coaching for Microsoft employee's and partners speeking at their events. I learned lots of interesting techniques for really maximizing the experience for the audience. I had a nice conversation with him afterwards and he offerred to do a 1-1 review with me later this week. I think I'll settle on trying to get him out to dinner (we share a mexican food grok) to get his thoughts on speaking into your computer/conducting web casts.
All in all, a great warm up to TechEd.
It was bumped from The initial 1.0 release, and then as of last PDC slated for Whidbey. Now it looks like we'll have to wait until Longhorn.
It's not all bad news however. ObjectSpaces is being re-orged into the WinFs file system. When you think about there is an awful lot of correlation to those technologies. I'm sure it's not terribly unrelated to the fact that the Microsoft Business Framework(MBF) that was to build on ObjectSpaces was also pushed off to Longhorn/Orcas. MBF is also to rely on an orchestration engine (Biztalk light?) features going into Longhorn so it all makes sense.
Some people will be disappointed - but this is a good rationalization of the way too many data access/storage visions within Microsoft. Both of these technologies have a common thread about objects/applications and data and breaking down the wall. Sure, MS could have released ObjectSpaces first, but do we really need that legacy and all the effort attached to YADAA (yet another data access api.
Microsoft has taken a lot of criticism (including from me) about the seemingly constant churn of all things data. So this is a good sign that MS is not going to do things, just be cause they can, but do them right. Just ask a Java developer what they think of EJB's. It's important to get it right
Bring your photo ID. You'll need it for registration.
Bring a single socket power splitter. I brought one of those double socket splitters than turn a 2 port outlet into 6...but guess what, there is almost always at least 1 important thing plugged into every outlet at the convention centre - important like a big computer/tv for displaying schedule updates.
Don't bring a knapsack. Bring your laptop, but you're going to get another one half full of crap so if you don't want to carry two around on the first day - just bring one.
Bring an electric golf cart or a donkey if you don't like walking around.