F/OSS (or just free-as-in-beer) Visual Studio communication add-ins? - visual-studio

Our team is growing, but we're also growing specialized. We've already been using ticketing/bug tracking/case management software for years--as well as IM clients informally--but as another engineer and I were discussing, it'd be nice to have an IRC-like communication system. Basically, it'd be nice to have logs of discussions, as well as both long-lived and ephemeral groups/channels (the issue that precipitated this was a discussion that was happening on IM, while someone external to the conversation changed the state of a system we were working on).
At the same time, we all tend to spend a whole bunch of time with Visual Studio spanning our [one] monitor, so it'd be nice to integrate with screen real estate already being used. That, and it'd increase user buy-in by being able to point at an extant add-in and say, "Here. This is what we want to do, and this too makes it real easy." IRC would be great, but thinking about it, there's nothing inherently wrong with XMPP, either.
Are there any add-ins like this that people are using? I did find one that's four years old, and doesn't exactly have the biggest user base.
As a minor aside, the idea was also sparked by Ted Dziuba's most recent article, which shows XEmacs playing nice with an IRC client.

To answer the first part about having an IM with logs of discussions and groups/channels Microsoft OCS does that.
Now on to VS integration, well I can't find any OCS integration but I did find two addons:
What I'm Coding: Basic integration with Live Messenger which puts the filename into the status (like music programs do with the song you are listening to).
Instant Review for Visual Studio: Far more serious team tool with built in IM options. I suspect this is closer to what you are looking for.

Related

Getting Started type resources for TFS in Visual Studio 2010

I have been dumped in the deep end at a new job and I need to create, administer, and use TFS projects currently in some disarray. I'm looking for recommendations on good books, tutorials, articles etc. on using TFS as integrated with VS 2010 (and otherwise, but not s priority).
Given that I don't enjoy most beginner oriented and 'for dummies' material, what resources should I be looking at?
Books might give you a pretty decent general background, but my take is Team Foundation Server with Visual Studio 2010 is still a bit of a moving target (i.e. the specific issues in the TFS build that your employer is using may not match the TFS in a published book; you may want to check the configurations of your installations...). Of course, almost all software starts being updated Scrum-style before the latest update is pushed out to users anymore, but my "moving target" characterization of TFS is probably more appropriate than for the average development tool ... maybe not; it may not matter that much to most people that TFS is still a bit "fluxy" ... Brian Harry might use a different phrase, but I'm guessing that he would ascribe the TFS "fluxiness" as reflection of his recent pronouncement that TFS is open platform with lots of different things going on, lots of different moving pieces. We are all open source now!
If you are a glass-is-half-full kind of a guy like I am, you will see this "moving target fluxiness" as actually sort of a cool thing -- exciting improvements and great new features will be coming your way; you might even get to find new features, help make those improvements happen. Hopefully, nothing will happen to destroy a project your employer is counting on and sink you any further into the deep end in your new job -- look on the bright side, you may gain a profound sense of empathy for your predecessor before this is all through. There are always all kinds of positives in situations like this!
If you were a miserable cynic, you'd say that if Boeing built planes like Microsoft builds software, thriving ecosystems of "development" passengers on airliners would have hands-on (i.e. white-knuckle, death-grip) opportunities in every flight -- they would be involved in discovering and improving mechanical, electronic, hydraulic design features or maybe learning about something new related to a supplier issue, a new failure mode, new mfg and maintenance issues. Don't be a miserable cynic -- sieze the day; embrace change, you're in the deep end already, you might as well swim to the other side, right?
Since there will be a lot of people at Microsoft serving the MSDN community and trying use/build/tailor/improve the TFS "open platform" (to "eat their dog food," so to speak) you won't really know exactly where the best developments might come from ... I would routinely follow a search of all MSDN blogs for the "Team Foundation Server" keywords ... in my case, I pasted this RSS url into my RSS reader.
This book is from some of the MSFT guys. It is really good.
http://www.amazon.com/Professional-Application-Lifecycle-Management-Programmer/dp/0470484268
Visual Studio 2010 ALM Virtual Machine + Labs: December 2010 Refresh

Doomed technologies? [closed]

Closed. This question is off-topic. It is not currently accepting answers.
Want to improve this question? Update the question so it's on-topic for Stack Overflow.
Closed 14 years ago.
Improve this question
What technologies/languages/applications do you think have hit their peak on Windows platforms, those that are or should be slated for obsolescence? My votes, might be wishful thinking in some regards:
VBScript
Microsoft Access
ODBC
Flash
I ask because we are in the process of setting future directions for technologies and application development, i.e. don't use these unless there is no choice.
I think Windows has peaked in general. The latest version of Windows, Vista was viewed negatively across the USA, there are numerous examples of major organizations in Europe and Africa phasing out their use of MS Windows in favor of Linux, and all of this has come to great benefit of the Linux vigilante's. The worst part is that Microsoft employees some of the smartest people in the computer industry but are usually screwed over by Marketing people.
I expect I'm going to get hard in down rank points for this answer, but I figure its worth it. As a senior/lead developer I wish I could use a couple Microsoft technologies but I'm afraid of pulling my company under the Microsoft tax of existence, so that biases me to toward a company that had a big role in getting me into programming ( Apple Basic, then MS Basic, and then c++ with the win32 API in the late 90's ) which is disappointing.
I think that MS Access is not a dead technology/product. However the legacy 'Jet Database Engine' that is often associated with Access is definitely in obsolescence mode. I dont; think MS has released a 64-bit Jet Engine (I know they intended not to, but wouldn't be surprised if demand made them change their minds). Also the Jet Engine is no longer part of MDAC.
MS wants the future of Access database engines to be an SQL Express/SQL Compact/MSDE type of engine.
I really don't think Flash is doomed .. I'd bet on its future over Silverlight's right now
Not sure why Access is in your list. Still used heavily and a good choice for small scale DB.
Here is what I think MS wants to kill... whether it happens or not is a different story.
WinForms
VB6
C++ (for desktop apps)
IMHO Classic ASP (as opposed to ASP.Net) and Visual Basic (again, as opposed to Visual Basic.Net)?
In all honestly, I really think that anything which has the ability to make this list won't ever be doomed. It's really really hard to retire a technology. Look at COBOL. Everyone says that COBOL has met it's end of days and has been saying that for years and lo and behold, people still program in it, and there are a multitude of production systems running it.
He's another example, my first job out of college was a heavy Delphi shop. No VB and MS technologies are evil. It was clear that everyone in my area and most people around the U.S. were dropping it in favor of Visual Basic, or something more powerful like C++. I swore up and down Delphi was a dead technology and that Borland was going down the drain. That being said, it's clearly in use today. I was wrong. Popular technologies will never really die, or become obsolete, because of their ability to change and because people depend on system which are currently working (look at FORTRAN, I know of some physicists which still use programs written in it). Once a language/system gains popularity, there will always be a need for someone who knows it, and this means that there will always be a need for someone to improve. There are a lot of technologies that die, but that is because they were never popular enough to begin with.
Of the list that you gave, I would say maybe ODBC could be the one phased out, but with other legacy technologies, I think it is going to be a long time. You could maybe argue VB6 is going to be done away with, but I think it won't be long until someone (not MS) writes a new compiler for it and not necessarily revitalizes it's use, but extends it's life. There's too much written in it for organizations to just throw it away. People argue about things being rewritten, but how often does it successfully happen? The main mentality of people outside of IT is: "don't fix it if it isn't broken." That is going to keep technologies around for a long long time. We can say something is dead, but in reality they all will be around for a long time.
I agree that MS don't support C++ at all well, is this an attempt to create coders who can only write business apps, and therefore don't directly challenge MS themselves?
The other dead in the water is Vista, roll on Windows 7.
By flash do you mean Actionscript or the platform all together?
Flash CS4 has shown some great potential.
Here's a cool feature tour of CS4

Microsoft User Interfaces, are they user friendly still?

I find that most of microsoft's new programs are very hard to use.
Microsoft Office 2007 (word especially) I find to be hard to use.
Microsoft IIS 7.0 is a PAIN, I never remember which icon to click on, things are just to cluttered and hard to find.
As a programmer, we have to design according to what people are used too, what exactly is MS telling us to do?
we have to design according to what people are used too
Well that's a slight misconception. You're not wrong that people familiar with something will appreciate the interface remaining familiar, but not all change is bad. You have to weigh the power of the change up against the harm it does to veteran users.
Lets take Office 2007 as an example.
The ribbon interface is a huge departure from the interface Office has used for as long as I can remember but there is sound logic behind it.
User functions are grouped by activity and it's very easy to change which set of functions you're looking at.
They're also contextual so some thing only show up when you're on a table or an image (etc).
These both help keep the clutter down - something really quite useful as these apps grow in feature-sets. Rather than spending hours choosing and customising a set of toolbars, you have access to everything through the tabs.
And Microsoft did this all the right way. They tested the interface on lots and lots of real people. They listened to see what worked and what they should fix or drop. They also kept some legacy keyboard shortcuts for seasoned pros.
The redesign effort was targeted at making life easier on beginner and intermediate -level users. Mission accomplished. The problem you're having is overcoming your familiarity but I can't be more helpful than say: It'll happen in time, but you'll manage it in the end.
Look, I'm just a simple caveman, scared by your post-modern architectures and vroom vroom machines go honk. I'm used to the simple life of the paleolithic era; charcoal cave paintings and bone-based technology. I can't make heads or tails of your fancy ribbon UIs and pointy-clicky icons. That's why I'm never upgrading from DOS. The old ways were always the best, and learning new ones bad like fire.
Well, Microsoft has to balance this. On one side, users scream for new features and change-for-change's sake in a lot of MS software. On the other, lack of backwards compatibility (including subjective UI compatibility) is a deal breaker. Really no way to win there.
That said, I don't think we need to design according to what people are used to; neither does Microsoft. Change will never happen if we just do what has always been done before. IIS is not developed for programmers; it's developed for IT people. And the new interface serves them well. Likewise, Office is designed for office drones, not programmers, and the new Office is very discoverable for that particular group.
I think they take a while to get used to, but I do like them. (Althought I will fully admit I am a mac person and I like the mac UI a lot better).
The biggest thing I've seen about the UI that is difficult is the fact that it is so much different from previous versions (I'm talking about the current version of Office). That seems to be where most of the rub is.
The rule I was taught about UI design is that things need to be familiar to the user (that's really is what makes it "intuitive"). MS broke that rule ......but from a business perspective they are allowed a little leeway when doing this simply because they control so much of the market share. Ultimately, they know that a radical change won't cause a loss of much market share because for most people and businesses there isn't a real viable alternative. (I know there is open office, but migrating a mid to large office to it will cost as much money or more as it will to just continue using the same product).
Do we have to design according to what people are used to, yes we kinda do. Does this mean we have to make it look like what MS is doing now, not necessarily. What we have to do is create a design the users can relate to. They have to be able to make a jump of logic from what they know already to using the products we create. If not, they most likely won't use the application unless they are absolutely forced to.
User interface and user experience are totally separate concepts. (Simon Guest; User Interface Blog.)
Microsoft did quite a bit of research in the raw usability of Office 2007, and found that while there is a learning curve for people like yourself, or me, who are experts in the tool, newer users and non-experts experienced much greater discoverability of more advanced features, and wound up using more of the application's features and power. Yes, there is a learning curve if you knew Office 2003 inside-out (which, frankly, few of us really did).
Now I'm not making apologies -- Microsoft's UIs haven't always been easy to use, and sometimes they fail miserably. (Personally I think not standardizing all of their office products on the Ribbon is a classic example -- there's a large context switch in my brain when I open Project or Visio, compared to when I open Word.)
As for what developers are "supposed" to do: Bear in mind that the ribbon isn't ideal for every scenario. If you're using it as a glorified, prettified toolbar, it's being used incorrectly. It's designed to help you organize literally hundreds (if not thousands) of commands in a way that makes them discoverable to your end user. It's supposed to reinforce the traditional experience of discovering the abilities of your application in a safe way (see any edition of About Face), when the depth of your application is too great to function within menus.
Aside from that, bear in mind that we should generally be making the most appropriate UI for our own audience, as Microsoft is attempting to do for its own audience. Again, we may find these things more difficult to use, as we are used to doing things a set way -- but it's the right thing (typically) for Microsoft to do. Remember that we programmers are not the target users of most UI. (How many of us turn off visual themes, for example? Now how many normal end users? BTW, I don't fall in that camp; I'm one of the few who actually finds Vista moderately attractive.)
Again, at the end of the day, what Microsoft does matters only to the extent that it becomes what your users expect, and then only if you can't educate them that "your way" is better. In any event, if usability is truly critical for you and your users, it's time to invest in usability testing and ensure that your application really is as usable as you think it is. And start reading usability sites. (You don't have to agree with them all, but understand them.) Here are some samples:
AskTog (Bruce Tognazzini, inactive but the archives are a treasure trove)
UseIt (Jakob Nielsen)
jnd.org (Don Norman)
Office User Interface Blog (Jensen Harris)
Microsoft Windows User Experience Interaction Guidelines (The holy word on Windows)
It's interesting because there was a lot of talk about the usability testing that went into the design of the Ribbon controls, but along with almost everyone else I know I find them very difficult to use. I keep losing controls that I need and not being able to get them back until I've cycled through another three or four document views looking for them. I instinctively move my mouse to menus that no longer exist.
I wonder if they would be easier to someone not accustomed to the earlier office products- maybe this is who they did their usability testing with. I don't think the design of the new interfaces is bad as such, but it is different enough that for those of us who don't spend our whole time staring at Office but have been using the product for a long time it makes life difficult. I guess most real power-users would be doing most tasks from keystrokes anyway which presumably haven't changed too much.
The business problem is really that they need an incentive to upgrade and so they keep adding new features ( who do you know that uses all the features of Word ) and then they need to find ways to present those without making the application impossibly cluttered, which was certainly happening in the previous version of Office.
I'm not sure what we take from this as developers- maybe it's that we should design for usability from the start or find ways to make the transition between old and new functionality as easy as possible for our existing users.
Microsoft IIS 7.0 is a PAIN
I'm relieved to hear that others have found the new IIS UI a challenge. I stumbled into it without being forewarned, and was completely discombobulated. There is so much clicking around. You have to memorize where the feature is, or click and click. I don't know of a way to see all of the IIS settings at once (not that you could before, either, but at least you could stay in the single tabbed dialog).
I think it is really hard to adapt to an entirely new UI when you are so familiar with the old one. I am similarly disoriented by the ribbon menus. More clicking around to find the features. And not everything is in the ribbon. Some is in menus accessible from other entry points, such as file properties.
For new users who never saw the old UIs, it probably isn't so much of a problem.
I guess what I really dislike is having to spend the time learning the new UI, at the least convenient time. There is an immediate loss of productivity when you have to learn the new UI. You can't just drop into IIS, configure the website, and be on your way. The first few times, it's going to take a lot longer. Maybe with growing familiarity, we will come to like the new UIs better.
I wish they had given the option to show the menus for us old fuddy duddies.
I had a meeting with one of the Microsoft Office guys last year when I brought up the same points. His point was that the number of features had grown so much that a new method of displaying them was required. I was not entirely convinced and found it amusing that Microsoft are so touchy about the problem that he had a very nice, well-prepared PowerPoint presentation to give to try and explain it.
MS is trying to give users more power by being able to click this to do this or that and try to make what others may see as very advanced functions simpler to use and more powerful than the previous ones. I remember going from IIS 3.0 to 4.0 where suddenly, there are all these new buttons to click and things are different but it is kind of better. I also remember going from Windows 3.11 to 95 having its own shock of updating things.
Did you ever try watching a movie on VHS and on DVD or go from cassette to CD? Remember how the DVD suddenly had all these new features like chapters, no need to rewind, bonus features that you could just go to and not have to fast forward to find? Similarly how a CD organized things so much better than a cassette? Another point would be to look at TVs where it used to be very few options on a TV: There were 2 dials, the power and volume where combined into one place, and a few other knobs were all we had but now you have TVs where you can store favorites, closed captioning options, sound setting, and color style that could scare some people that remember the old days where you had to physically pull a knob to turn on the machine.
I find that most of microsoft's new
programs are very hard to use.
If you feel so, do yourself a favor and change to Mac. I did it and wont go back to windows. So much time wasted to achieve little things with Windows.
And Apple has Style Guides for GUIs. You dont have to stick to them, but as far as I can tell most developers do.
To prevent a Mac-Windows-Flamewar I would like to point out that this is totally my opinion. Please dear Windows user, do not feel attacked by my opinion.

How do you manage web developers remotely? [closed]

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 3 years ago.
Improve this question
I'm the leader of a small web development team, and I have a feeling that we will have a couple telecommuters joining the team pretty soon (either new employees, or existing employees that will begin telecommuting). Any idea how to effectively manage and collaborate with developers working remotely?
Most of the work we do is client-driven. We're doing agile development (or our version of it, anyway), but since it's mostly client work, we can't really assign a feature to a developer and set them lose for a week or two like we might be able to with a desktop app or something like that. The biggest problem we have when people occasionally work from home is collaborating - it's tough to work together without the benefit of a whiteboard and hand-waving.
It seems like software development is perfect for telecommuting, but I haven't been able to find many good resources about the practical aspects of working remotely within a development team. Has anyone else had any experience with this?
I freelance a lot and in doing so work remotely a lot of the time. These are the things that make my life as easy as possible (so might be things you want to "suggest"). I think they're mostly common-sense, but you never know...
[Everyone] Communicate well. When you're having a conversation face-to-face, you can be verbose and explain things in a round-a-bout way. When you're limited to email, IM and phone, all parties need to explain themselves fully but succinctly. I find that summarising long emails into request/action points goes a long way towards getting things done well.
[Everyone] Have a online project tracking space. Most tend to use a ticket system or some description, where action points can be assigned to members. It wouldn't hurt to use this same space for tracking emails and sharing whiteboard ideas. Most online project apps allow for that by default.
[Management] Don't pester devs. If you need something urgently, set the status of the ticket, give them a call and chase them up later on in the day. Half-hourly emails asking "is it done yet?" does more harm than good!
[Management] Make sure messages get passed along. If a dev says "somebody needs to do something", it's your job to make sure the message is passed along to the right person. There are few things more annoying than passing a message to a project manager for them to accidentally sit on it. I don't want to have to chase up things like that because it's, frankly, not what I'm being paid for.
[Management] Make sure people have something to do. If you send them home with nothing on their task list that they can immediately action, they're not going to put in the effort. It's a damned sight harder to keep yourself productive at home than it is in the office when you've little or nothing that you can do. You might have to juggle tasks if there's a blocker.
I work at home full time. Here are things that help in my small (6 people) team.
Set up rules for using IM. For example, allow remote workers to block off time not to be interrupted by email or IM. Require workers to keep status up-to-date somewhere (IM, Yammer, etc) which helps keep them accountable to stay on task. Stay in touch without being a distraction.
Meet in person occasionally if possible. Nothing can replace a face-to-face meeting. Skype is ok for group meetings, but not if whiteboards are involved.
Use SharedView or another screen sharing program for collaborating. Screenshots/screen captures are helpful as well to make sure both parties are on the same page.
"Any idea how to effectively manage and collaborate with developers working remotely?"
What does "effectively" mean? I can be negative and assume it means "with me, the project leader in control of everything". I can be positive and assume you want people to be as effective as possible.
Sometimes, "effective" is management-speak for "under my control". Or it means "not screwing around."
The question, then is "effectively doing what?" Effectively "working" is rather vague. Hence my leap to the dark side of project management. [Which, I admit, is probably wrong. But without specific team productivity problems, the question has no answer.]
"it's tough to work together without the benefit of a whiteboard and hand-waving" This is only sometimes true, there are lots of replacements. The "hand-waving" over the internet happens more slowly and more thoroughly.
The group-think around the whiteboard is fun -- it's a kind of party. However, for some of us, it's not very productive. I need hours to digest and consider and work out alternatives; I'm actually not effective in the group whiteboard environment.
I find it more effective to use the alternative "slow-motion" whiteboard technologies. I like to see a draft pitch for an idea. Comment on it. Refine it. A lot like a Wiki or Stackoverflow. I really like the internet RFC model -- here's my idea; comment on it. When there are no more improvements, that's as good as it's going to get.
I work in Mississippi and my home office is in Michigan. I spend several hours a day pair programming with my team with ease. The tools I use are:
SharedView
Remote Deskop Assistance
Live Meeting
Oovoo
Skype
Depending on who and how many will depend on the tool I use.
"Use the right tool for the job and invest in a damn good headset." - Me.
I've generally used some time of community based software such as a wiki, blog, or forum to handle the documentation areas. We also have a Cisco phone system and use some capabilities of the system. I'd also recommend live meeting or webex to do frequent team meetings. Skype and IM clients such as Live Messenger are also good tools. For the short status updates, twitter does the trick.
Check out the Agile Scrum methodology with VSTS. Scrum forces us to have daily 15 minutes meeting and small mile stones , It makes sure the effective togetherness and tight communication. Make sure you use Task,Bug assignment etc through VSTS
I agree with John Sheehan's response. I am a consultant and manage other consultants - both on a project basis (as PM) and on a client basis across projects. I have worked with developers on a purely remote basis as well as telecommuting (meaning the majority of time we are co-located). Working remotely is a matter of trust and communication. Co-locating is best, but if you work remotely, simply create a culture of frequent communication. IM and phone are great for this, email less so. If you have a less than communicative co-worker, it is up to you as the manager to reach out. Ask for status. Force code-checkin on a frequent basis for review.
[EDIT] - Yes, don't pester and set expectations! Be clear and concise.
First of all use scrum (daily scrum calls, scrum board w/ burndown chart (wikis do a great job there), iteration in sprints etc). Next to that use tools that make it more easy to collaborate remotely like skype and VNC (maybe campfire?) and a wiki. I worked for 2 years on a project w/ people in 3 countries on 2 continents and various time zones and it worked quite well. The key is having tools and methodologies that make it more difficult for people to "hide", so that everything you and your team does is visible.
I find clear communication and staying on task are challenging with virtual teams. I try to use regular scheduled update meetings (over the phone or video conference) with a written agenda to help with these challenges.
At the front on the agenda list the major milestones and the near term milestones. The first item is always "check progress" each team member simply updates us on when they expect to finish the particular tasks involved. We try not to get involved in long stories here. It's simply "what are you going to do and when".
Once the progress check is done deal with any other issues raised in during the last week and any issues the team has that can be sorted out whilst you are in the meeting. Anything let over (such as new issues raised) needs to have the question asked "who is needs to sort this out and when".
Once you set a common format for the meeting you can do this weekly in 30-45 minutes with teams of 5-8 people. Keep it short and sweet so it isn't viewed as an imposition. Keep it focused on actions and schedule so it can be valuable.
I'm currently the PM of a smaller project that has two developers (myself and another developer that works out of the office). We are currently having daily SCRUM meetings, which last for about 15 minutes. We discuss what got done the previous day, what problems were encountered and what I can do to help with these problems, and what will be done tomorrow.
They're pretty quick and seemed to be very helpful.
Using a Time Tracking Software for your remote employees can greatly help you in managing the team.
While hiring a remote employee, you would be concerned about,
The amount of time spent in getting a task done.
The quality of the work done.
Collaboration based on the progress of the project.
The real time progress on a task.
Collaborating to solve bugs and logical errors.
I was in your situation a while ago and then I tried StaffTimerApp and it helped me in the following ways.
A Time Tracking Software gives crystal clear statistics about the time spent on getting a task done. StaffTimerApp captures screenshots and converts them into billable and non-billable hours. Hence, you would know if any time was wasted while getting the work done. You would also know the exact amount of time spent in getting the work done. If you pay your contractor by the hour, this application can help you tremendously.
If you use a time tracking software that captures screenshots, you can look at them to analyse the quality of work that is being delivered. I used this feature and was able to save some tasks from derailing.
A Time Tracking Software lets the employer know how far along the employee is with the task, hence the information extracted by Time Tracking will make collaboration easier. StaffTimerApp proved to be very helpful as I was able to collaborate with the other employees based on this information.
The screen sharing feature equipped me with the power of viewing my employee's laptop screen in real time. This way I would get to know about the progress on a task.
So you need a good Time Tracking Software with great productivity analytics and employee monitoring capabilities to feel comfortable with hiring a remote developer.

What messaging/communication programs can be embedded into Visual Studio?

Does anyone have experience with embedding messaging or mailing programs into VS? I'm interested in things like Skype or Instant Messenger being embedded as tool windows. If you use (or have used) something like this, how has it affected your productivity?
I'm not sure why you want to do this? I find I already have too little space in VS.
That aside, almost every dev team I have been on now communicated via a combination of IRC, MSN, Skype etc. We have always found that a flashing toolbar is a much smaller distraction to your programming zone than a tap on the shoulder. It also means we can stick our headphones on, and faze out into focused programming land, aka "The Zone", without concern for missing co-workers trying to get your attention.
I second the fact that I would find this very annoying; I prefer to read messages on my own basis, not when someone wants to send me something, and then be forced to distract my attention from what I'm on.
That said, you could fairly trivially host some sort of messaging website (twitter perhaps, or any other) in a tab in VS. I wouldn't, but you could.

Resources