Word is spreading that Microsoft is likely to be passing out Samsung tablets running a pre-release version of Windows 8 to all BUILD conference attendees next week. (Let me note that as a journalist covering the event, I will -- yet again -- be ineligible for any of the booty. No, I'm not bitter. Why do you ask?)
The tablets, again according to rumor, will be powered by a quad-core ARM processor. Even with this lower-power chip, Windows 8 is supposed to be fully backwards-compatible with Windows 7, as Microsoft has repeatedly stated.
I'm not sure I want it to be, though. I'm not sure it's the best direction for Windows 8 and Microsoft. Why? Because of how I use my iPad 2. I've had it for months now, and have a pretty good idea of its uses -- and limitations. It's a great for:
- Web surfing
- Social media
It also has uses for other areas of my life: for example, it has some nice filmmaking apps, note-taking capabilities and the like. In short, it's an awesome device for what it does.
But although I'll be taking it to BUILD, I'll also be bringing my Dell Studio XPS laptop (maybe it's a good thing after all that I don't get a tablet -- don't think I could fit another computer in my bag.) I'm lugging the Dell along because I also need to get real work done. I need to write a cover story. I also need to edit stories and PDFs. Some of the programs I'll be using include:
- Word (the full-featured version)
- Excel (ditto as above)
- Acrobat Pro
Those programs aren't available on my iPad. They wouldn't work well on the iPad even if they were, given its relatively wimpy processor. I have no interest in using the iPad for those duties; the laptop is my device of choice.
And that's OK with Apple. It knows the iPad isn't all things to all people, and doesn't try to be anything else (of course, Apple's happy to sell you a MacBook Air for the heavier lifting). The right tool for the right job, as a carpenter might say.
It appears, from what I've been hearing and seeing, that Microsoft prefers a one-size-fits-all approach to Windows 8. A single tool for all the jobs. So rather than building an OS for everyone, they may instead be building an OS for no one.
Why not, for example, make Windows 8 (renamed, to distinguish it as a mobile platform) an OS built for mobile devices like phones and tablets, and leave Windows 7 and its successors for the laptop/desktop world? Yes, this is Apple thinking. But it's also good thinking. A mobile OS doesn't need to do the same things a desktop/laptop OS does.
Can Microsoft pull off the hybrid gambit? Perhaps. But it already has a great desktop OS in Windows 7, and a great mobile OS in Windows Phone 7. Why not continue to build on the strengths of each, instead of combining them in a goulash that may weaken both?
Posted by Keith Ward on 09/09/2011 at 1:15 PM3 comments
Microsoft's Dave Mendlen just announced he's leaving. Mike Desmond, who up until five weeks ago ran this magazine, asked him some questions about his time in Redmond. His revealing interview follows.
During his 15 years at Microsoft, Dave Mendlen has become something of a fixture in the development tools business at Microsoft. At one time a speechwriter for Bill Gates and Steve Ballmer, Mendlen first got his start in Redmond as a product manager for Visual Basic. He most recently served as senior director of the Visual Studio business at Microsoft, where he helped shepherd the launch of Visual Studio 2010.
Today, I learned that Mendlen is moving on to serve as chief marketing officer of.NET component and tools maker Developer Express. His first day on the job will be September 10. I caught up with Mendlen briefly and asked him a few questions.
Michael Desmond: Looking at your time in the Visual Studio group at Microsoft, what accomplishment are you most proud of?
Dave Mendlen: I'm most proud of the work I did in Visual Studio 2010 to simplify the product. We changed everything from the logo to the Web site to the product to the product lineup and everything in between, and all of it was focused on one thing -- simplicity for customers. We changed our product lineup from 14 products to 3 (Pro, Premium and Ultimate). What I've heard from customers consistently is, "Thank you for making it easier to choose the right product!"
MD: You wrote speeches for the both Gates and Ballmer and drove marketing strategy for a host of platforms ranging from Tablet PCs to Windows. Looking back, if you could describe one experience that defined your tenure at Microsoft, what might that be?
DM: I remember doing a VBITS speech with Steve Ballmer -- his first speech as CEO and my first time demoing Visual Basic.NET. The demo crashed and Steve looked at me and I knew this was not good. I tried it again and the demo worked. We high fived and the audience went wild. That was very symbolic of my career at Microsoft.
MD: Both Gates and Ballmer are widely known as demanding bosses. What was your approach to "managing" these executives, as it were?
DM: Bill is actually very, very funny. Most people don't know that. Steve is too, but it takes a little while to prove yourself to Steve. The key for me was standing up and telling Steve and Bill my opinion and defending it strongly. Once they knew I'd stand my ground, I earned their respect and then later their friendship.
MD: Obviously you bring years of experience at Microsoft to the table. How do you figure this background will benefit a major .NET component maker like DevExpress?
DM: Understanding the developer ecosystem and how Microsoft builds software provides me the opportunity to guide DevExpress and hopefully the industry in a new direction. What the industry needs now is a big shift to simplify the experience for customers. That's been the direction I've steered Visual Studio over the last few years and it's the direction I'd like to help shift the third-party ecosystem as well.
MD: With Windows 8 and an update to the .NET Framework on the way, we're reaching another important inflection point. How is DevExpress poised to engage the market as these new platforms emerge?
DM: DevExpress is hyper-focused on enabling bridges between technologies. That's what is so exciting about their products. They are known for their world class support and high quality extensions, but what is often lost is the bigger picture. DevExpress focuses on helping customers make technology shifts and supporting customers even on what many consider legacy technologies. With the shift to Windows 8 and Visual Studio 11, there is another shift about to occur and DevExpress stands poised to uniquely help customers make that shift.
Posted by Keith Ward on 09/07/2011 at 1:15 PM0 comments
I recently had the pleasure of emailing with Don Syme, creator of F#, and his team of collaborators. I asked the group a number of questions about the language, which I feel is still under-utilized and under-publicized. A number of the responses have come out in different formats, but the full Q&A has yet to be published. It's fascinating, so I wanted you to have it.
Q: Why was F# created? What need does it serve?
A: The modern enterprise has a range of software needs that don't fit the traditional "business apps" IT model. For example, financial modelling involves quantitative finance domain experts ("quants") who need to write and deploy models that analyze the value and risk of market positions. You can think of these people as one example of a domain-oriented programmer. There are many similar examples in modern enterprises and start-ups, including machine-learning, statistical, parallel, scientific and algorithmic experts: these people are often at the core of modern software teams. Domain programmers are always on a search for tools which improve productivity, performance and robustness in balance and often utilize analytical scripting languages as part of their work. Dynamically typed scripting languages are great in many ways, but can lead to real problems. For example, dynamically typed languages can lead to problems as applications grow in size. Often, they do not have good visual tooling (e.g. no IntelliSense), and may not be very performant when fresh code is written in the language. Finally, components don't live in isolation, and ultimately need to be deployed as encapsulated software components in the context of larger .NET systems.
When you look at examples across the industry, the common need is for a simple, succinct, efficient and typed language that allows math-oriented and domain experts to work in their problem domain, rather than get lost in a sea of OO class-oriented code, while still contributing professional software components that interoperate well. That's where F# fits in. Ultimately, this kind of tool makes domain experts happier and more productive members of software teams.
A similar story applies in other domains too - for example, modern server-side programming. Many companies need to write scalable services, and these services are often both asynchronous and parallel, including both I/O intensive and multi-core programming. This code can get very out-of-hand if using traditional OO techniques, leading to late project delivery or poor scalability. F# gives great tools to simplify server-side programming, including a wonderful asynchronous programming model and a functional programming methodology which minimizes the use of state. These allow server-side programmers to concentrate on solving the hard problems and achieving their performance and correctness goals.
The special thing about F# is that we manage to get the benefits of rapid development and succinctness of dynamic languages while also still retaining the benefits of strongly typed languages (robustness, performance and visual tooling), all in the context of a highly interoperable platform.
What are the most common scenarios for use of F#?
F# can be used for just about anything, but it excels at what we call "analytical component development". This includes financial and market analysis engines (including event-driven ones), server-side machine learning components and other data-rich analyses. There are several good examples case studies available on the Microsoft websites. Some interesting examples outside finance are the uses of F# in energy trading, Bing advertising, Project Emporia (a personalized news selection service based on machine learning techniques), and in the AI engine of the Path of Go game. All of these show where F# excels: analytical engines in the context of professional .NET software delivery.
What are the main advantages F# has over C#? C++?
F# differs in many important ways from C#. Technically speaking, some of the things you'll notice are the functional-first methodology and language features (such as tuples, lists and pattern-matching), the strong focus on immutable data, the inclusion of key typing features relevant to scientific and numerical programming (including F# units of measure), the increased use of expressions as a form of software re-use (including language features such as object expressions), the succinct representation of object-oriented programming, the declarative and compositional model of asynchronous programming (appearing in a future version of C#), and the inclusion of a dynamic interactive compiler called F# Interactive for scripting.
F# can be surprisingly intuitive for C and C++ programmers. Perhaps the thing they will notice the most is the immediacy of programming with F# Interactive: some C++ people get really surprised that it is so easy to get your hands on data and play with it in a strongly typed language, while still getting great performance. Software becomes fun and explorative again.
What are some of the best resources for F#, including education and practical use?
The two places to look are www.fsharp.net and www.tryfsharp.org. The first is the MSDN developer centre for F#. The second is something we've done over the last year with Microsoft Research Connections, and is a great site where you can play with and learn some basic F# coding in your browser.
In what scenarios would F# be a bad solution?
F# is designed as a value-add language to augment what is already there in .NET. This means that you shouldn't see it as a wholesale replacement for C#, VB and C++. For example, we don't advocate rewriting components just to move them to F#. Likewise, we don't advocate writing line-of-business apps with F# (except perhaps where you are utilizing F#'s special features in important ways). We also recommend that core matrix-crunching algorithms normally utilize native representations, often via a .NET wrapper for a native math library. Finally, there are some places where managed languages are not the right solution, e.g. C# is yet to be widely used for core operating system components and core components of top-line games. However, this way of thinking can go too far: for example, nearly all modern server-side systems can be developed and delivered in managed languages, leading to important productivity gains.
How do you see F# evolving in the future?
People thirst for simplicity. People need simple solutions to the problems that really matter: data access, code development, deployment, cloud computing, Web programming and parallel programming, to name but a few. One of the exciting things about working in the Visual Studio team is that there are experts in all of these domains working in unison.
The area that's really been interesting the F# team is data access, especially the amazing information-richness that is exploding on the Web and in the enterprise. Functional programming thrives on data, and what we see is a confluence here. F# can have a role in bringing these together: Information-rich world meets functional programming super-drug. We're putting this vision together in a feature called F# Type Providers, something we've begun talking about at TechEd and PDC. Type Providers are an extensible architecture to give the F# programmer strongly typed access to an ocean of data from the Web and the enterprise, including sources such as SQL, SharePoint, WMI and OData.
What are some of the most requested F# features your team is working on for future versions?
F# tooling in Visual Studio 2010 consists of IntelliSense, quick info, interactive type-checking, projects, debugging and F# Interactive. People often ask for additions and improvements to this tooling. In some cases we will be making the improvements ourselves; for example, in IntelliSense. Realistically, however, F# tooling won't encompass all the features you get in C# and Visual Basic. This is one reason why we did an open-source release of the F# compiler, as it helps enable the community to fill in some parts of the tooling through Visual Studio extensions. We are really happy to work with the F# community to help them to add to Visual Studio and/or the Mono-based tooling.
How active/involved is the F# community?
The F# community is great! One critical thing they've done is the F# online templates (under "New Project", "Online Templates", search for "fsharp" in Visual Studio 2010).
It's one of the real joys of our job to work with community members. We just see countless examples where the F# community members are answering questions and helping people do interesting things with the language. For example, we have one of the highest and most complete response rates on stackoverflow. We're really impressed with the quality of answers and blogging as well.
Posted by Keith Ward on 09/06/2011 at 1:15 PM0 comments
Have you seen all the upcoming changes in Windows Explorer for Windows 8? Most all the world's techies have by now. Microsoft's blogging about it on its informative new site. There's a lot of cool new stuff in it; new functionality that'll certainly improve the Windows experience.
And you know what? I don't care.
This isn't to imply that Microsoft isn't doing good work; it's clear that they're listening to customer feedback ("telemetry" seems to be the phrase du jour regarding Windows 8 now. It's used time and again as a stand-in for "the data we get from users who allow us to log information on how they use Windows".) Results of that feedback are showing up on the Explorer's ribbon interface, right down to the percentages of folks who use Copy, Rename and Edit.
I still don't care.
I don't care because people want to know a few simple things about Windows 8, and these plumbing updates don't answer those questions. The real questions to which they want answers are things like: "How will the OS handle touchscreen gestures?" "What will the tablet interface look like?" "Will there be an app store with it?" In other words, how iPad-like will it be?
Frankly, I don't think most folks are wondering about mundane functionality like how the file name collision experience has been overhauled. Again, good, important stuff. But answers to questions that aren't being asked.
Another factor seemingly lost in all the hype over Windows 8 is this: Windows 7 is great. It's Microsoft's best-ever operating system, by a pretty wide margin. And it hasn't been out that long, either. Users are taking to it in much the way they did Windows XP. For Redmond, that's a very good thing. It also means that most of us, me included, won't be looking to upgrade for some time yet.
No matter how awe-inspiring Windows 8 is, the vast majority, having recently upgraded to Windows 7, will view Windows 8 with interest, maybe even enthusiasm. But not buying-level excitement.
Not yet, anyway.
Posted by Keith Ward on 08/31/2011 at 1:15 PM1 comments
I ordered a new desktop PC over the weekend. This may shock some. And that shock is an interesting thing indeed.
If Steve Jobs is to be believed, we've arrived in the "Post-PC Era", that time when we work from whever we are, no longer tethered to some archaic metal box on a desk. We're free from the ball and chain of desktop OSes, too -- similarly bulky software that doesn't understand the needs of the modern worker. We've shed our poundage, and are finally light and agile. No one wants or needs PCs anymore. They're as dead as a vinyl record left out to melt in the sun.
And if you believe that, I have some Atlantic oceanfront property to sell you.
I bought my new desktop because it was the only real option. It does things my iPhone, iPad and even laptop can't do. In my case, I need to upgrade my video production capabilities. That meant a higher-end 64-bit processor, a 1TB or greater hard drive spinning at a minimum of 7200 rpm, and a fire-breathing graphics card with dual output for starters. And things like a faster system bus, 8GB or more RAM, and so on also come in handy.
Oh, and I wanted something for less than a grand. Think you'll find that in a MacBook Air?
Not everyone needs to be spitting out high-def video, of course. But for everyday productivity at a reasonable price point, a desktop computer can't be beat. A modern low-end, $500 box with Windows 7 and Microsoft Office will do everything 99 percent of businesses need to do. Sure, you can do spreadsheets on your Android, iPhone or Windows Phone 7 device. Do you really want to, though? It'll work fine in a pinch, but beyond that...
Another hidden advantage of desktop computers: they won't walk out of the building and get infested with the latest malware, then plugged back into the network the next day. Management is a comparative breeze.
Bigger boxes are great for developers, too. It's not unusual for devs to rock two or three monitors at once. And virtualization, a dev's best friend, works better and faster on the average desktop than the average laptop. In the brave new world of agile development, turnaround time becomes paramount, and even a small increase in speed can have a big impact in deliverables.
So no, Steve, the PC era is far from dead. I'm glad that we're now more mobile than ever, and we can get more work done on the road, in the air, in the coffee shop, wherever. As I've mentioned before, I'm a confirmed gadget guy, and have an iPhone, iPad, netbook and laptop among my toys. But the PC still has an important place in my work life, and in those of millions of others. That fact that one market is growing doesn't mean that others are dead. There's room for everyone at this party.
Posted by Keith Ward on 08/29/2011 at 1:15 PM2 comments
Like many other media outlets, we reported yesterday that Microsoft is now accepting and certifying "Mango" apps ("Mango", if you came into the movie after the opening credits, is Microsoft's first major update to Windows Phone 7 platform).
One bit of news that's flown under the radar in the Mango mania is the release, within the Windows Phone SDK 7.1, of the Marketplace Test Kit. I think that's unfortunate because it's way, way cool, and further demonstrates how serious Microsoft is about taking on Apple and Google in the smartphone wars.
The Kit is essentially Microsoft's WP7 certification environment for your local machine. The idea is that you build your app, then submit it to a battery of tests from the Kit. The Kit is well integrated with Visual Studio; in Solution Explorer, simply pick the app you want to test, then choose Open Marketplace Test Kit from the Project menu. There are manual and automated tests, depending on the functionality being examined.
The Kit's feedback will tell you things like whether your graphics pass muster, the Back button functions properly, memory management is correct, how fast the app starts and whether it shuts down correctly. When the tests are finished, you'll know if your app will pass or be sent to the back of the class.
I don't know about you, but knowing that my app will pass before submission would give me great peace of mind as a developer. Unlike, say, iOS developers. It's not hard to find stories about companies that have spent months developing an iPhone app that was rejected by Apple for reasons that were, at best, murky, and at worst, blatantly political or commercial. It's well known, for example, that you don't develop iOS apps that might compete with iTunes, unless you enjoy rejection. Others have been rejected for reasons the developers are still trying to figure out.
Microsoft, on the other hand, is making it easier for developers to get their apps to market. This is a good thing. Yeah, I know -- the so-far iffy adoption of WP7 means that Microsoft has to do these sorts of things. But so what? The point is that Redmond is doing it.
This is a good fight for Microsoft to pick. The success of Android shows that iPhone can have viable competitors, something we haven't seen yet with iPad tablet competitors. I believe competition is good, and it's forcing Microsoft to create a mobile platform that at least meets, and in some cases exceeds, the leader -- in this case, Apple. The Marketplace Test Kit is another example of Microsoft's different thinking in the mobile space. If it can lure developers away from Apple and Google and create another serious player, we all benefit.
(BTW, it's worth noting that I have no dog in this fight. I own an iPhone 4 and iPad 2, and love them both.)
Posted by Keith Ward on 08/24/2011 at 1:15 PM7 comments
Today Microsoft released a Silverlight for Windows Phone Toolkit, the first since last February. The toolkit features extra controls and builds on the Windows Phone 7.1 SDK, according to the Windows Phone Developer Blog.
Some of the new components include:
- An upgraded ContextMenu control
- A HubTile for adding animated tiles. Microsoft says it's similar in functionality to "Mango's" new People groups
- ListPicker has been updated to allow multiple selection
- PhoneTextBox that supports, among other things, action icons and watermarking
- Localization has also been significantly improved, including date and time converters, error messages and interface elements. The "Mango" update will support 22 languages.
In addition, the toolkit contains numerous bug fixes and "addresses many customer-reported issues", the blog states.
It's releases like this that should comfort the many developers concerned about the future of Silverlight. We won't learn much more about it until the BUILD show next month, but it's unlikely we'd see updates like this is Microsoft was abandoning the platform.
The toolkit is open source and available on both Codeplex and NuGet.
Posted by Keith Ward on 08/17/2011 at 1:15 PM1 comments
Windows 8 is primed to be the most radical OS out of Redmond -- ever. Yeah, I know, the switch from Windows 95/98 to Windows 2000 was huge. Going from Windows XP to Vista (sorry, not Windows 7 -- they're more alike under the hood than Microsoft wants to admit) was big, too.
But they will have nothing on Windows 8. It's the first OS that will need to span multiple paradigms: It will need to be a full-featured, rich environment for all the desktop/laptop needs of businesses. On the other hand, it also needs to work on tablets, smartphones, and the emerging mobile world. At least those are the hints Microsoft is throwing out -- it needs to be all things to all people.
Mostly, however, Windows 8 is shrouded in mystery; no one outside the mothership really knows much about it. That's why it's good to see the Building Windows 8 blog. The blog, which new DevDiv head Steven Sinofsky kicked off on Monday, looks to be completely geekified: Sinofsky promises that it will drill down on the "engineering of the product." He also acknowledged the balancing act between keeping its community in the dark vs. talking too much and overpromising:
"We've heard people express frustration over how little we've communicated so far about Windows 8. We've certainly learned lessons over the years about the perils of talking about features before we have a solid understanding of our ability to execute."
Sinofsky also confirmed that the upcoming September BUILD conference -- this year's replacement for the Professional Developer's Conference (PDC) and Windows Hardware Engineering Conference (WinHEC) -- will reveal many details about Windows 8 (although whether any conference details are released beforehand is still anybody's guess).
At the same time, he tried to reassure businesses, users and developers that their investment in Windows 7 won't go to waste:
" ... we're 100% committed to running the software and supporting the hardware that is compatible with over 400 million Windows 7 licenses already sold and all the Windows 7 yet to be sold."
I would think that implies extensive baked-in virtualization; all indications are that Windows 8 will hew more closely to the Windows Phone 7/Metro UI model (although this is just prognostication), which would likely require ditching the Windows 7 model. Windows 7 remains, after all, a desktop/laptop-only OS at its core.
With his frank admission of the anxiety and mystery surrounding Windows 8, and release of a few juicy details, the new blog is off to a strong start. Let's hope it continues to be a valuable resource, and not a marketing/PR faucet.
Posted by Keith Ward on 08/16/2011 at 1:15 PM0 comments
Microsoft is releasing an update to Entity Framework next week to squash a bug that's causing errors for some users.
The bug, according to a blog posting from EF Program Manager Rowan Miller, "...affects third party EF providers using a generic class for their provider factory implementation, things such as WrappingProviderFactory<TProvider>." This could result in Visual Studio blowing you a raspberry in the form of a message about invalid assembly names or codebases.
In a refreshing bit of candor, Miller admitted that Microsoft introduced the bug with EF 4.1, Update 1. He lists no workarounds, stating that the only solution is to stay at 4.1 and skip the update.
He goes on to note a naming convention change. Instead of calling this "EF 4.1 Update 2", they're going with the streamlined "EF 4.2". Miller also says that this is the only change between 4.1 and 4.2. Normally, a single alteration wouldn't require such a name upgrade, but this appears to be the case going forward, he states, "to get onto the semantic versioning path."
The beta for EF 4.2 is expected sometime next week, according to Miller, with an RTM version in September, assuming a smooth beta period. The beta will be part of the EntityFramework.Preview NuGet package.
One thing about Microsoft: they're more transparent than most companies about bugs in their products. They've learned, through hard experience over the years, that customers are forgiving, if you let them know about the problem. It's keeping them in the dark that really stirs up the hornet's nest.
Posted by Keith Ward on 08/12/2011 at 1:15 PM0 comments
It's not often you get to sign a star to your roster. When you get the chance, you do it. The Vikings, a few years ago, signed Brett Favre. The Packers, years before that, signed Reggie White, and he helped them win a Super Bowl. Many think the Eagles' signing this offseason of Nnamdi Asomugha will propel them to a championship. The Heat signed LeBron James, and ... nevermind; bad example.
I'm delighted to announce that we've landed a star, too. Microsoft's John Papa is officially the newest Visual Studio Magazine columnist. John will be writing a monthly print column called "Papa's Perspective", where he'll be doling out wisdom on his specialty, Web application development. In addition, he'll be writing for this Web site regularly -- look for his articles several times per month.
Microsoft's development platform is continually evolving, and is in a period of transition to the brave new world of mobile computing, including smartphones and tablets, and the cloud. We're in the middle of a paradigm shift, and having a guide like John Papa to help light the way is just what developers need.
Look for John's print column to debut in September, and his online contributions to start this month. Please join me in welcoming him aboard. And find more of his insights at his Web home and Twitter feed.
It's good to have another star on our team. I'm just glad that John didn't have an ESPN special to announce his "Decision."
Posted by Keith Ward on 08/10/2011 at 1:15 PM0 comments
So Microsoft's BUILD conference is just about a month away. Incredibly, it's been sold out for many weeks now. Fortunately, I have a press pass, so I didn't have to suffer the disappointment many of you undoubtedly did.
In other words, BUILD promises to be huge. It's almost like the developer Super Bowl.
I know you're as excited as I am too to look over the session descriptions, keynotes and pre-conference sessions to dive deep into the technology. I think the session I'm most looking forward to is...Well, let's see. There are no session descriptions, as of Tuesday afternoon, Aug. 9. At least I got to sign up for the pre-conference session on...wait a minute. Word has just come down from the irreplaceable Mary Jo Foley that the pre-conference goodies have been cancelled. Hmm. How about the keynote? It looks fantastic, with the speaker being...Oh. No keynoter listed. No keynote agenda/topics listed.
Yes, so far there's a whole lot of expectations for BUILD, but precious little data. For a show this potentially momentous, it's almost inconceivable that nothing regarding the actual, you know, content, has been published yet. Is Microsoft afraid that listing the agenda will give away state secrets? Is that the same reason the pre-conference sessions are six feet under?
I'm starting to feel like the BUILD conference has a huge, plastic dome over it, like the "Cone of Silence" from the old Get Smart TV show. No news gets out, no hints, no whispers, nothing. Let's just hope that Microsoft's execution is better than Agent 86's.
Posted by Keith Ward on 08/09/2011 at 1:15 PM0 comments
A well-known prediction by Gartner stated that by next year, agile techniques will be used in 80 percent of all sofware development projects. Statistics like that are growing proof that if you're not on board the Agile Train by now, you'd better hurry or risk being left at the station.
It's a sentiment that Ezi Boteach, VP Products for developer testing-tool maker Coverity, shares wholeheartedly. "The problem is that software complexity's growing, and that has a direct impact on things like time-to-market, brand name, customer satisfaction, and overall cost of sofware development," Boteach said in a recent interview.
Those factors are leading companies away from the traditional method of "waterfall" development, which emphasizes process, and hence is slower, more deliberate and far more complicated. Even though agile development is just 10 years old, it's revolutionized the software industry, Boteach believes. There are few shops anymore that waterfall-only. That doesn't mean waterfall is extinct -- only that the benefits of agile can be so overwhelming that it's captured the hearts of many developers.
It isn't hard to see why. "Traditionally, a lot of these companies used waterfall. It was the default methodology. It made sense; you start with the requirement, then you move into the actual coding," Boteach explains. "Once the coding is done you go into testing, and then you go into actual production. The problem is that when you talk about a long-term project, it can take months or years" to bring it to market.
That leads to problems in today's much-faster-paced software development environment, according to Boteach. "With waterfall it's very hard to predict what will happen. You don't know what will happen with people, with the complexity of things. You have a lot of moving parts and a lot of changes are being introduced as time goes by."
Agile lessens the risk involved, Boteach believes.
"The idea behind [agile] was to solve a lot of the problems waterfall had: Predictability, cost, complexity of development. The idea is to go to shorter iterations, and by doing that, you can actually make things much more predictable. Instead of a development cycle that takes months, you can go into something called a "sprint" which usually takes 1-4 weeks. And within that sprint it's a full development cycle. In that situation, or sprint, you're doing requirements gathering, you're doing design, you're doing development and you're doing testing."
It's the concept of "continuous integration," Boteach says. "You have a system that ties to the source control system. You get a preview whenever there's a code change to the source code system, and it automatically creates a build. Then you can tie [in] things like system tests or unit tests or static analysis, which you do for automated code testing, to become part of the automated cycle. By doing that, you're identifying a lot of the defects that otherwise you'd be waiting until the QA phase [to discover]. Obviously, the sooner you fix it, the less money you spend."
Spotting and fixing code problems earlier in the process results in substantial savings. Coverity data estimates that it's six times as expensive to fix a problem in production as it is to fix it in development.
Even with the cost and efficiency improvements, however, Boteach cautions that a move from waterfall development to agile should be done carefully. "I've seen cases where it's been a great success -- and cases where it's been a big failure, because people were thinking "I'm doing agile; I don't need to plan, I don't need to document,'" he says.
Agile development, he continues, is a "Really big change if you do the whole thing overnight. This is why in many cases a lot of companies will start small. The first thing you need to do is get approval and buy-in from all the parties involved. The second thing is you need to identify the areas you want to start with. You don't have to implement agile in the extreme on day one. I've seen customers do that, but it's extremely disruptive."
It's also no panacea. Boteach is fond of saying that agile isn't magical, that it takes an investment in people with the right mindset, best practices, and automation tools to make it work right. "You need to be smart about it and embrace it in a gradual manner." If not, he adds, "You're basically taking a big risk."
Done properly, however, the payoff can be enormous. In fact, Boteach thinks that companies holding to waterfall-only methodologies could be harming themselves. "If you take two organizations roughly the same size, doing the same type of development, it would be extremely hard for the company doing waterfall to get to the same cost-savings and responsiveness" as the agile business, he concludes.
Is your company exclusively waterfall? If so, let me hear from you. And follow me on Twitter.
Posted by Keith Ward on 08/08/2011 at 1:15 PM1 comments