TFS – Does It Suck?
I'm not sure, but I don't want to find out either.
I'm currently tasked with recommending a new source control platform and a new defect tracking platform as well.
I'm late to this post from March 2010, but Martin Fowler posted an internal ThoughtWorks survey of version control tools:
I conducted the survey from February 23 2010 until March 3 2010 on the ThoughtWorks software development mailing list. I got 99 replies. In the survey I asked everyone to rate a number of version control tools...
...there's a clear cluster around Subversion, git, and Mercurial with high approval and a large amount of responses. It's also clear that there's a big divide in approval between those three, together with Bazaar and Perforce, versus the rest.
The biggest offender? TFS with a 0% (yes, z-e-r-o) approval from the ThoughtWorks staff. Scary.
James McKay provides an interesting take on it:
Team Foundation Server advocates claim it’s unfair to compare TFS to other source control tools, since it’s not just source control, but an integrated end-to-end application lifecycle management solution. Comparing TFS to, say, Subversion, is like comparing Microsoft Office to Notepad, so they say.
Now where have I heard something like that before? Oh yes, Lotus Notes:
The main focus for frustration is Notes’s odd way with email, and its unintuitive interface. But to complain about that is to miss the point, says Ben Rose, founder and leader of the UK Notes User Group (www.lnug.org.uk). He’s a Notes administrator, for “a large automotive group”.
It’s regarded by many as an email program, but it’s actually groupware,” Rose explains. “It does do email, and calendaring, but can host discussion forums, and the collaboration can extend to long-distance reporting. It will integrate at the back end with huge systems. It’s extremely powerful.”
The thing is, it wasn’t the detractors who were missing the point. It was the Lotus Notes guys. You see, e-mail is right at the heart of any groupware application. It’s the part of the application that users interact with the most. It’s where usability matters the most. And it’s what Notes got wrong the most.
Is TFS really that bad? I haven't used it or recommended it (mostly out of concern for cost), but 0% approval?
On a related note, I've been digging into Redmine the last few days to try to examine its suitability for a project that I'm taking over and new products that I'll be bringing online. I've been really impressed with it, even compared to the excellent Trac. Compared to Trac, Redmine just feels more well put thought out (i.e. native support for multiple types of source control systems, native sub-projects, so on) and the UI is a bit cleaner and easier to use. I expect to be blogging about it frequently in the coming months.
Lev Grossman on The Cloud
Lev Grossman has an article in Time this week (not available on Time.com) that pretty much hits it on the mark -- at least in my book -- with regards to The Cloud. I look kind of befuddled when people tell me we should do this or that on The Cloud or how their product is a Cloud solution.
Grossman lays into this in his opening paragraphs:
The best thing about cloud computing is that word: cloud. Telling consumers that their data is in the cloud is like telling a kid his dog has gone to doggie heaven. There is no doggie heaven, and your data isn't in a cloud. It's in a windowless, fortress-like data center somewhere in the rural U.S.
Cloud computing is just a buzzword companies use to describe what they're doing when they move data and processing tasks you're used to hosting on your personal computer onto their servers, which you can access via the Internet. It isn't new; far from it. It's at least as old as webmail services like Hotmail. It just didn't have a cool name back then.
Of course, The Cloud has its merits and convenience (for consumer applications) is surely one of those merits as is scalability (for enterprises and businesses); however -- as Grossman argues -- one of the biggest pitfalls of The Cloud is the lack of control over you data. Grossman continues:
But in some ways, the cloud is a step backward. It harks back to computing's primordial past, when everything was cloud computing -- dumb terminals connected to central mainframes.
The thing is, I'm not sure I want my computer to be just a device. Cloud computing goes hand in hand with another trend: the netbookization and iPadization of the PC, with its transformation into a beautifully designed but lobotomized device that relies on an Internet umbilical cord to do most of its actual computing.
As for me, from a development perspective I'm not too caught up in The Cloud hype. For most purposes, unless you really know that you have a hit on your hands, you can host your applications much, much cheaper on shared hosting for about $10/mo. which is still probably the best way for a small business to get started. And when you need to scale, well, hopefully, you'll have tons of investment capital at that point, too and you can just port your app to The Cloud.
More Commentary on Windows 8 and HTML5
Arstechnica has another feature on the aftermath of the Microsoft's game-changing Windows 8 + HTML5 announcement.
First, a quote:
The lack of broad platform support meant that Silverlight could never quite rival Flash on this front, but it was there, and it worked well on those platforms that were supported. With Internet Explorer 9, however, Silverlight took a back seat. HTML5 became the way forward. If Silverlight were to be used at all, it should only be used for those things that HTML5 couldn't do very well, such as streaming video. For anything else, the message was that developers should use HTML5.
Microsoft did have a point. If you're really wanting to target people on any platform, HTML5 is the way to go. For Web-facing applications that don't have any special needs such as DRM video, HTML5 is the long-term bet.
Excuse the smugness, but I've been saying this from the day Silverlight was released (you know, because it's basically Flash and we all know how everyone loves the Flash website experience...). It's plain silly to suggest using Silverlight for anything other than an intranet environment where DHTML could do the job.
While Peter Bright opens the article with a discussion of the teeth-gnashing that many Windows platform developers are going through, I -- for one -- could not be happier that we'll finally see HTML5 on the desktop. I think it's a beautiful thing Finally: the richness and variety that we've seen in web based applications will manifest on the desktop because the skills and techniques that folks have used for over a decade to build beautiful web applications will now finally translate.
However, I do disagree with a few points that Bright makes:
Where Silverlight programs can deal with buttons, icons, list boxes, tree views, and other interface controls, HTML5 applications must generally deal with boxes of text, with no higher-level concepts to work with.
There are a few points to address here. The first is that -- obviously -- HTML has buttons and icons (<a class='icon'><img /></a>)
The second is that, to a large degree, deficiencies in the area of higher level UI abstractions in the DHTML world have largely been handled by any number of open-source UI script and widget libraries which provide even better alternatives to those on the Windows native platform. jsTree is one example of an excellent tree view library that is incredibly rich. Third, having worked with tree views via DOM and tree views via WinForms and WPF, my personal feeling is that it is many, many times easier to deal with the creation, manipulation, and styling of HTML than it is with Windows forms controls. And finally, I believe that Bright misses the point of HTML+CSS; it's really not much different from the concepts put forth in WPF and Silverlight: that of applying visual styles to otherwise generic controls.
I also take issue with this assertion from Bright:
Another weak area for HTML5 is tooling. Design and development tools that work with HTML5 are not as developed or as robust as those that exist for Silverlight, making HTML5 development more complicated
Uh....HELLO?!? The term "HTML5" is a bit misleading as it's really nothing more than HTML4 with some new tags (and some new skills required to take advantage of those new tags). Why are current HTML tools insufficient? I'm not getting his point here as HTML development tools have been around for WAAAAAY longer than Silverlight or WPF development tools.
Bright closes the article with more doom-and-gloom and a bit of hope for going back to the good old days of the same-old, same-old:
The prospect of being stuck with HTML5 and JavaScript for their development is encouraging them to jump ship.
The details aren't clear yet, but next time we'll take a look at the pieces of the puzzle we have, and we'll learn why Windows 8 won't be a HTML-driven horror after all.

Apparently the reaction of Windows platform developers to the news that Windows 8 will promote HTML5 and JS as one alternative to building applications for the desktop
Contrary to Bright's doom-and-gloom, I'm fairly optimistic and I really, really, really hope that Microsoft sticks to its guns here. I can't be the only person who, while working with WPF, longed dearly for a jQuery-esque framework to traverse and manipulate XAML the same way that jQuery enables in web applications. I can't be the only person who's turned to using the WebBrowser control in Windows applications from time-to-time because it offered the simplest way of handling complex document layouts and, in some cases, interfaces that would require developers to resort to low level drawing of rectangles and custom painting of the UI controls and dozens to hundreds of lines of code that could be accomplished by HTML in a few lines of markup.
As a developer who has worked with DHTML, WinForms, and WPF, I -- for one -- look forward to an HTML5-on-the-desktop future.
PS — Is it just me, or are MS developers -- generally speaking -- a particularly whiny bunch that can't handle radical shifts in technology or methodology very well because Microsoft and Visual Studio has been holding their hands and enabling their ineptitude for so long? The comments on that Arstechnica article shows the straight FEAR that this news has instilled in the hearts of those legion developers. I love it.
A couple of commenters hit it right on the mark:
slogger: If you have a CS degree and you can't functionally use a new language within a couple months, you fail and are worthless. Switching to preferring some sort of JS API is hardly the end of the world.
jaman4dbz: First of all: Man up MS developers. This is why you should pay attention when you get your formal education. If you did you can switch languages easily. The language and libraries should not matter much.
Maybe now all those retarded MS developers can learn some theory, rather than what buttons to hit in their program maker.
deet: Nobody's talking about using HTML to write drivers, for fucksake.
emn13: I've written apps in Silverlight, WPF, and HTML+javascript. They obviously have their own pro's and con's, but this articles' assertion that Silverlight/WPF are more high-level is complete nonsense.
One of the huge problems of WPF/Silverlight is that they're very *low-level*. WPF doesn't have a sane styling system. In fact, styles are implemented as effectively side-effect laden getters+setters. This means it's quite hard to separate the content and behavior from the presentation.
WPF comes with a widely-used grid-based layout scheme (as opposed to HTML's tables). This is nice in some ways since it's easy to precisely specify where something goes on that grid (i.e. it's low-level). It's a terrible pain to use by hand however, since grid-alignment is done by row/column *number*; moving things about generally means renumbering everything.
WPF/Silverlight as general UI-specification language, I'd say: good riddance. And as a special-purpose tool to make particularly intricate, tightly controlled UI's? Well, it's not disappearing, is it; if you want more control but with helpful automatic layout system to do the basics, WPF/Silverlight will still be around.
This comment by bouncing deserves its own shoutout:
Hmm. Peter Bright makes an interesting case.
In fact, a crack team of usability experts, computer science PhD candidates, and Seth Godin impersonators recently compiled an exhaustive list of native apps which are, to any reasonable observer, far superior to web apps:
- Photoshop
- Various CAD programs
Although only two native Windows apps that do not suck were ever found, researchers believe the third "non-sucky .exe file" may one day be discovered. Unfortunately, locating the mythical trifectapp has proven a daunting task, as finding it requires digging through tens of thousands of incredibly crappy, hard to use, slow, confusing, mind-numbing, rage-inducing, serial-killer-inspiring "line-of-business" apps that IT managers force their interns to use on their behalf after booting a USB thumb drive flashed with a version of Windows 98 that's compatible with the version of Microsoft's far-superior C++ libraries the IT department develops on.
Perhaps Peter Bright, who wrote this passionate defense of the unnamed third native application which does not suck will tell us as to what, if any, business application is better in native Win32 than HTML 1.0. While he's doing so, a 22 year-old Ruby programmer will create a superior product using "primitive" technologies in exactly 1/100th of the time it takes a team of Certified Win32 Development Professionals to follow a stack trace in Visual Studio.
I'd also like to point out one of the stupidest comments that simply perpetuates this myth that JavaScript is inadequate:
VoodooTrucker: Is JS as mature as C#? No way. In fact its totally painful, which is what I think developers are afraid of. No strong-typing, no obfuscation, no refactoring, no generics, no direct casts, no direct disk access, minimal properties, no LINQ, no IEnumerable, no interfaces, crappy inheritance, crappy dictionaries....
This kind of makes me chuckle a bit as my own perspective has been that as C# has developed from 1.0 to its current iteration, it has taken more and more from JavaScript. Take collection and dictionary initializers in C#. Looks familiar? Because it was already done in JavaScript ages ago. Trucker's assertions are also completely off.
It's true that because JavaScript is interpreted, there's no obfuscation, but there is typing in JavaScript, you can clearly refactor in JavaScript, you don't need generics in JavaScript because an array can hold anything, you can perform direct casts by creating a new instance of a type (i.e. var five = new Number("5")), no direct disk access is a matter of the platform/runtime rather than the language itself, no IEnumerable is a misnomer because really, you can iterate over anything in JavaScript, crappy dictionaries make me laugh because JavaScript dictionaries are incredibly sexy and flexible.
And I Thought My Setup Was Badass…
Excessive? Maybe.
Badass? Most definitely.
Now I'd be way more impressed if those monitors were 30-inchers.
Ouch!
That's gotta hurt:
Windows Vista is Windows ME
Part 2. It took five years to develop because three of those were spent
building a brand new code base that didn't work at all and wound up
getting scrapped, and the remaining two were spent just tweaking the XP
code base. Almost all the features we were promised early on were
discarded and what we end up with is a warmed over Windows XP that
doesn't even do us the dignity of working properly out of the box. I
think it's particularly telling that they've already announced the next
major Windows release for late 2009.
From NotebookReview.com.
The Allure of the WWW
Not everyone can appreciate the simple elegance of the ethereal structure that we know as the Internet. It is not the average person that will sit and contemplate the transmission of data from one node to another, thousands of miles away in mere milliseconds, and be impressed and appreciative of the amazing times we live in (I mean, just 20 years ago, you had to actually walk into a store to buy porn
(*aherm*...not that I know anything about that)).
Most people are just happy that they can log on in the morning and get their mail in Outlook or check the weather on their local news sites, never taking a moment to bask in the glory of the immense amount of data that flows through copper, fiberglass, and the very air that we breath (isn't it weird to think that right at this moment, several megabits of data are probably bouncing off of me (or worse, passing through me (and you!))), each picosecond.
But then again, not everyone is a software engineer.
Via Gizmodo.
Could It Be?
After some drama in my life last week, I'm glad to report that things are kinda settled down, although I'm still not right in my heart.
But in any case, back to your regularly scheduled programming (or not).
Could it be? Someone in charge is finally starting to get it:
"So we understand piracy now as a business model," said Sweeney in a recent analyst call. "It exists to serve a need in the marketplace specifically for consumers who want TV content on demand and it competes for consumers the same way we do, through high-quality, price and availability and we don't like the model. But we realize it's effective enough to make piracy a key competitor going forward. And we've created a strategy to address this threat with attractive, easy to use ways to for viewers to get the content they want from us legally; in other words, keeping honest people honest."
When you start thinking this way, the goal becomes offering a more compelling product than file-swapping networks can provide, rather that attempting (for instance) to sue the users who like your content. For ABC, this has meant launching their own streaming media player and providing shows like Lost and Desperate Housewives online only minutes after they air.
Yes!
It's taken the media execs this long to realize that the majority of people do not want to engage in "illegal" behavior? The majority of the people do it because it's convenient and the media is delivered in a format that the masses demand. iTunes proved that people are willing to pay a fair price for content.
Television has been dead to me and most of my friends forever now with only live programming like sports worth bothering plopping down on the sofa for. Everything else? I'd rather just watch the good parts or watch it when I want to watch it. The concept of the timeslot is irrelevant in the 24/7 world of the Internet. Instead, the content itself becomes that much more important as
One thing that I've been contemplating lately is this issue of fan-subs. There is a huge sub-culture of anime/manga fans that work dilligently to translate the latest Japanese anime and manga because there is a huge demand for the product. It's amazing to think that most of these translators and video editors are working without payment to translate and distribute the content just hours after it airs in Japan.
It's not just Japanese content, however, as Wired touched on this issue a few months back with regards to the American comic book powerhouses Marvel and DC:
within 24 hours of going on sale at the local Android's Dungeon, every new comic is available on BitTorrent, scanned beautifully for your downloading pleasure. Sound familiar? Just like with music, movies, and games, when content companies don't give fans what they want in the format they want it, fans make it available themselves.
Similarly, there is a huge opportunity lost here by networks not picking up the rights to these Japanese anime/manga series and simply paying a relatively small fee to the fan-subbers for their service and adding short commercials or hosting the videos on the company's servers. The point is, with the near unlimited "bandwidth" (used here, not really in terms of bits and bytes) of the Internet, there's no reason not to try to serialize and distribute as much content as possible (compare this to television where your "bandwidth" is limited by the fact that there are only 24 hours in a day, 7 days a week, and only so many channels of programming).
The current model for distribution of tele-media is still very inefficient as shown by the success of YouTube. People want to see the good stuff when they want to where they want to. No one wants to schedule their lives around arbitrary schedules. I'm happy to see that the success of iTunes finally has others in the industry turned around on this issue of online video distribution.
Try OpenDNS
So I came across OpenDNS somehow last night and read about the service that they provide. From my days as a CS major, I was familiar with the high level workings of the DNS infrastructure and OpenDNS's explanation, at least in theory, made sense. The gist of it is that somewhere out there, there exists a network of DNS (Domain Name Servers) translating the alphanumeric URL that you type into your browser address bar into numeric IP addresses. This can be a slow process if the initial DNS does not contain a mapping for the URL that you entered as it means that the DNS will have to consult another DNS (and so on) until it is retrieved.
Of course, I was a bit skeptical of just how much performance there was to gain, but I have to say that it is noticeably zippier browsing today.
So I would give it a shot and see if it makes any difference.


