Friday, July 27, 2007
Book-Driven Development
Watching this Chris Anderson's interview, he explains the new development methodology they are using in the Connected Systems team.
He says they are going beyond Testing-Driven Development (and obviously Behavior-Driven Development), they are not thinking how to test the code they are writing, they are thinking how to write the book that explains the technology while they write it!!!
Really, I don't know if it is true, but it sounds good.
TDD and BDD are based on how your consumer will use your technology, and in this kind of team, their consumers usually read the book while they use the technology. I don't believe you can rigorously follow this methodology, but it could be an interesting principle to have in mind while creating new stuff.
P.S: BTW, he also thinks that WPF is a "tipping point" for model-driven development. May be the start for model-driven user interfaces? Who knows..
Labels: Developers, DSL Tools, TDD, WPF
Thursday, June 14, 2007
Microsoft Surface for Software Developers Teams
What do you see when you see Microsoft Surface? I tried to imagine me using it, in my daily tasks and not trying to create new activities... and I really think this new technology can help "software developers teams". I will write down the first two scenarios that came to my mind when I first saw this futuristic table.
DISCLAIMER: I will need this technology in table-format but in "picture-format" too (to put in a wall).
#1. Discuss diagrams
I am a visual-man. I like to see diagrams and discuss about them. I prefer to "see" ideas. I see things clearer in models than in other ways. So, I would want to see diagrams in the surface to discuss it with the team. That includes: class diagrams, database diagrams, navigation models, user interface prototypes, etc.With this new approach you can move the boxes around the table, zoom-in/out to focus in a particular part, change some thing while everyone is seeing it... but you can also make changes and it is reflected automatically in your software-modeling tool. You won't need to write the paper on the wall with a pencil and then change it again in the modeling tool, or re-printing it to keep it updated from time to time.
#2. Card lists
If you are using an agile process, you may be using Post-it! notes in a public wall. Despite the fact they are very useful behaving as Information Radiators, they have a very important problem: if you are also tracking your tasks (or user stories or whatever) in a management tool you will need to enter each task twice (as a PostIt! note, and as a new task in your tracking software). And you can't avoid it, at least you want to lose all your project information with the first strong wind.
But what about putting the tasks in your wall-surface? You could move your virtual notes in the wall by hand to the next iteration (and constrain the movement in the reverse way ;)). But the good thing is that you can share it with your PMO in the other part of the world. And also, you don't need to see all the day long the same thing, it can show semaphores, team productivity, etc.
In the meanwhile, we could show Mingle in a big TV. When will Mingle support touch?
A collateral effect is that we can save paper (and so, help to avoid the pulp mills ;))
Finally, if Microsoft want to achieve success with this new technology, they have to keep the developers of their side. Yes, you are right, I am asking Bill Gates to gift me this toy ;)
What do you think about it? Do you see it useful? Do you see any other use for software developers?
Labels: Developers, Table computing, UX, WPF
