Please be sure to take the Team Architect Terminology Survey!
It would certainly be nice if there could be one way of building software. However, the truth is, there are many different types (e.g. embedded, packaged application, web service, three-tier client server, or web) of applications and so there must be just as many ways to build them. Compound this with the different software development cultures and the different types of competitive environments (hyper-competitive to regulated) and you can reach only a single conclusion. There can be no single software development process for all software development projects. This is the central philosophy behind the Microsoft Solutions Framework.
2005 marks the centennial of Einstein’s publication of the Theory of Special Relativity. Einstein’s work not only settled forty years of debate on the nature of time and synchronicity, but largely set the agenda for much of science, technology, and world affairs for the 20th century. According to most popular legends, Einstein was a solitary theoretician, who discovered relativity in nearly monastic isolation, despite the distractions of his day job reviewing patent applications.
Total global demand for software will grow by an order of magnitude over the next decade, driven by new forces in the global economy like the growing role of software in social infrastructure, by new application types like business integration and medical informatics, and by new platform technologies like web services,
mobile devices and smart appliances. Without comparable increases in productivity, total software development capacity seems destined to fall far short of total demand by the end of the decade. What will change to provide the massive increase in capacity required to meet demand? It is not likely to come from
adding developers. Instead, software development methods and practices will have to change dramatically to make developers much more productive.
Aaron Skonnard posted in his blog about contract-first development and mentions the role Whitehorse is playing, but he wants to know your thoughts:
I think it's important for MS to hear how people actually feel on this subect, rather than make inaccurate assumptions. Whitehorse is making advances in this area, but it would be interesting to hear what you want.
Christian Weyer has a Visual Studio .NET Add-In (WsContractFirst) that supports contract-first development:
Maybe some of you know that I am a big believer in contract-based Web services design and development. Web services contracts can be expressed explicitly in .NET code (see Steve's opinion) or by using schema (XSD) and WSDL. When using the second approach you may want a tool that can generate .NET code from your WSDLs/XSDs.
A couple of weeks ago flying back from Redmond I read 'Coding Slave'. I did not like it. It's a quick read but I found it too pretentious. Anyway, one of the claims (I hope that not serious) of the book is that as programmers are the ones that do the real job then they (we) have a lot of power, so we need to organize, etc.
Since we're on the subject of software factories, Harry Pierson of MSDN Architecture fame has this blog post in which he positions Visual Basic as "...the most popular DSL and modeling tool of all time (so far).":
Most enterprises have the expertise to develop abstractions in their domain of expertise and to codify those abstractions in frameworks, but very few can develop tools and DSLs for manipulating those frameworks. One of the goals of Software Factories (and VSTS Architect for that matter) is to make it easier to build tools that are really good at building a narrow range of applications.