Mike MacDonagh's Blog

Somewhere in the overlap between software development, process improvement and psychology

Tag Archives: microsoft

Process vs. Tools

What’s more important: Process or tools?

I’ve sat through numerous arguments with people trying to work out whether process or tools are more important to their software development effort. The arguments go along the lines of:

Process Geek: Tools are just the things you use to do the process, the value is in the process. Let’s do a process first roll out.

Tools Geek: Tools are the things people actually use. Process is academic and is constrained by the tool features anyway. Let’s do a tools based roll out.

Sadly both of these are real life quotes from people I’ve worked around in the past. I won’t embarrass them by naming them because they’re both really wrong. For me the real value is not in the tools or the process but in the people. Process and tools are something that you add if the people need them.

Minimal Tooling

For me the best planning tool is a whiteboard. The best architecture and design tool is also a whiteboard. I like to capture some info about what I’m doing and how close I am to achieving my goals, some really simple measures. The best tool for that is probably Excel, despite my love of Open Source. Other than that I need to manage some lists of things like requirements (stories/use cases whatever), defects and whatever other bits the team thinks are important. They might fit on a whiteboard but typically we want to have some attributes on them, be able to sort them and link them. The one downside of a white board is the lack of drag and drop. I’ve used a few different types of smart board and active touch screens but none of them have really given me the smooth experience I want.

The one bit of tooling I really need is my IDE + SCM + Continuous Integration.

Minimal Process

This is potentially a can of worms if I go into things like process kernels and ideological arguments about different agile approaches and practice collections. There’s no such thing as a process silver bullet so for me though it’s all about the team and being effective. Teams need to:

  • Have Clear Obligations
  • Have Clear Business Priorities
  • Seize their autonomy
  • Have the relevant technical skills and resource availability
  • Be active in actually doing their work (seems obvious but it’s something a lot of processes seem to hinder rather than help)
  • Demonstrate visible progress (via working software not a tracking gantt chart)
  • Continuously improve themselves (because no way of working is perfect)

This list based on the 7 Habits of Agile Teams by Roly Stimson

So why go more complicated?

Unfortunately life is rarely simple. Many teams work in complex environments where a number of factors might make them choose to need more than this kind of minimal set including things like physical distribution; audit, regulatory or security constraints; cross-team interaction in system of systems environments, more people etc.

When faced with increased complexity it might be appropriate to add more powerful tooling or development practices. The more people involved in a project the harder it is to herd all of those socially complex cats into working together.

This is why ALM suites exist ranging from plugging together some open source bits like git, SimpleGit, jenkins, agilefant, bugzilla etc. to commercial vendor products like IBM Rational RTC (which does agile planning, work item management, scm and build in one tool) and other IBM Rational Jazz tools – it’s worth noting that you can also get RTC for free for just 10 users or for academic/research use on jazzhub.

Alternatively there’s Microsoft TFS for source control, work item tracking etc. tying together existing Microsoft stuff like MS Office, Visual Studio and sharepoint if you’re a more Microsoft focussed development house.

Of course you can also mix and match this stuff to a greater or lesser degree with various integrations. No toolset is a silver bullet however and each have their own problems.

So what’s my point?

My point is that process and tools need to reinforce each other, that both should be selected based on the needs of the team and the environment the team has to operate in. In the process vs. tools argument both lose out to the people. People in a development organisation create value, they just use tools and process to do it.

Advertisements

Manipulating web content in Excel, or, My Excel can haz ajax?

Yes. Well, kinda. Not really. Er… maybe. Hey look, it works!

There’s not much better than Microsoft Excel for mucking about with big grids of stuff really easily. I’ve often used Excel to “screen scrape” or at least “DOM scrape” web content for various reasons. One of the most common is to get stuff from a web app that doesn’t provide a “download to csv” option or a decent API. Another reason is to grab stuff from an RSS feed to mix in to whatever my spreadsheet is doing, or just to use it as a REST client. So I offer you the following generic solution, I’ll base this one around the RSS example…

Wikipedia, the absolute source of all knowledge and truth, says that for something to be AJAX “the use of JavaScript and XML is not actually required, nor do the requests need to be asynchronous”. Despite this  “AJAX” is generally considered to be an initialism and acronym for “Asynchronous JavaScript and XML”. Taking both of these into consideration I must conclude that AJAX means whatever we want it to mean. For me it’s when I’m using an XMLHttpRequest object in one way or another to yank some xml/html/whatever from a web server.

In Excel I’m not using javascript asynchronously but I am using xml and even a XMLHttpRequest object via com interop so for me that qualifies as doing ajax in Excel.

How to do it:

1. Avoid late binding of com objects and help yourself out by adding a reference (code editor: Tools -> References…) from the Excel app to a library that will provide a XMLHttpRequest object. Happily, “Microsoft XML, v6.0” provides such a beastie for us.

2. Write some Ajaxy code to use the object like this:

Private Sub MMD_DoSomeAjaxyStuff()

'declare some useful vars
Dim req As XMLHTTP
Dim doc As DOMDocument
Dim url As String

'Some things to process the XML
Dim entries As IXMLDOMNodeList
Dim entry As IXMLDOmNode

'The RSS to get, naturally
uri = "https://mikemacd.wordpress.com/feed/"

'make a new XMLHttpRequest object
Set req = new XMLHTTP

'Load the xml
req.Open "GET", uri, , "", ""
req,Send
While req.ReadyState <> 4
  DoEvents 'yeah I know...
Wend

'Read the XML
Set doc = New DOMDocument
doc.loadXML req.responseText

'Do something with the RSS
Set entries = doc.getElementsByTagName("item")
For i = 0 To entries.Length - 1
    'Do something with the RSS like stick it in a cell
    Set entry = entries.Item(i)
    Cells(i + 1, 1).Value = entry.childNodes(1).Text
Next i

End Sub

3. w00t 😀

Microsoft VSTS, Camano and UML

I recently had the pleasure of going to visit the Microsoft Technology Centre to learn about all things MS for software engineering. Having long been a Visual Studio user and a VSTS (Visual Studio Team System) user since it turned up I was really pleased to see VSTS 2008 and some interesting stuff coming in 2010.

VSTS seems to be really maturing and now has a nive new non-sharepoint web UI. It will be interesting to see what happens in terms of Microsoft VSTS vs. IBM Jazz. I’ve written about Jazz before on this blog and haven’t gotten around to a detailed comparison yet but I was excited to see how mature VSTS is now looking and how nice it is to use. It’s designed to make developing easier and use the tools people already have in many cases. For example, using MS Project, Excel, Word, SharePoint etc.

Things of special note were the automated testing support (including coming soon recording and playback of GUIs other than web), the upcoming cool manual test runner, Camano for test management and test execution by proper testers not just developers doing unit tests etc. etc. Also checking out the project + project server for portfolio and project management views was interesting.

What I really really liked are the VSTS 2010 architecture tools. Microsoft has seen the light and embraced UML + DSLs (or DSLs + UML if you prefer) as the pragmatic modelling solution. I really like the idea of being able to do just enough  modelling, using the most appropriate language such as a high level architecture diagram that then imposes constraints on the code through things like check in policies!

I think this stuff is going to be really powerful and I can’t wait to get my hands on it properly (and somehow conjure the time from somewhere) to do some detailed analysis and also a comparison against competing products/toolsets.

Of course if you are using Visual Studio (or Eclipse) you can still use EssWork to use practices and processes directly inside your IDE

EssWork in Visual Studio

EssWork in Visual Studio

RSDC 2009 Call for papers

So it seems like RSDC 2008 has only just finished. In fact RSDC 2008 UK was only a few weeks ago! But things are starting up for RSDC 2009 already. I hear that call for the papers will open tomorrow. The website isn’t up yet so I don’t know what the theme will be but you can expect more stuff turning up at www.ibm.com/rational/rsdc over the next few months.

This will be the 4th year in a row for the Rational Software Development Conference (May 31 – June 4) at the Swan and Dolphin in Orlando, and I heard somewhere that the next 6 will be as well! Not surprising really as it’s a great venue for the conference.

It seems call for papers starts earlier every year, but that’s no surprise seeing as there are more people submitting and going every year. Technically I expect this year to be about the maturation of the Jazz platform, and I would speculate that we will see some cool things like the Visual Studio integration (since screenshots have already been released). There should be some interesting uses of RTC out there (I’m planning to talk about this myself). I’d like to see something about Bluehouse, Focalpoint, Telelogic and Rational Jazz stuff.

I think that the words Tara, Vega and MCIF will be extremely prominent 😉

Open Letter regarding PDC

It’s almost Microsoft PDC (Professional Developer’s Conference) time. The organisers of this excellent event have published the following open letter 😀 I went to the last PDC and I strongly recommend this event to anyone who wants to know what Microsoft will be doing over the next few years.


Dear {Enter Your Manager’s Name Here},

I enjoy my job and have always appreciated how well you manage me. As you know, I don’t ask for much. I am a humble employee with simple needs, and I would like to attend Microsoft’s Professional Developer’s Conference in Los Angeles, October 27th-30th.

Wait! Before you respond, let me explain. This is not the typical conference that is more boondoggle than substance. The PDC (which is what the kids on Facebook call it) is where the best and brightest come together with the technical geniuses of Microsoft.

The PDC is where the speakers are not marketing folks, but actual developers and technologists who build the products. Remember those tough questions about Microsoft tools we had last week that we could not find an answer to? Well, I will have an opportunity to talk directly to the product team from Microsoft. In fact, one night they all gather in one place where I can ask all the questions we ever had and get real answers! And business cards!

But it isn’t just the speakers; it’s the other attendees. These are some of the smartest folks using the same tools and technologies we are. I can learn a lot from them and see how they have overcome issues we have run into. I keep reading the blogs (on my own time, of course) and everyone says that networking is one of the top reasons to attend.

I promise I won’t come home empty handed. I just read that they are making Windows 7 available to attendees! We will be able to get a first look at the operating system before everyone else. They are also are giving out a hard drive, called The Goods with all kinds of bits and bytes on it that we can use. Plus, I will come back with a ton of business cards.

Finally, I will come back inspired. The PDC is where Microsoft lays out its future strategy. You had the most spectacular idea yesterday about how we need to be a little more cutting-edge. By going to the PDC, I will see the technology roadmap for Microsoft and come back with ideas how we can make your genius idea a reality.

Thanks in advance for your approval on my humble request and I promise to bring you back a t-shirt, trip report, Windows 7, The Goods and a very inspired and much smarter employee.

Your favorite employee,

Mike MacDonagh


Source

Microsoft Sphere

Interesting links in the world of software development

At IJI we have an internal newsletter than includes a section about software development industry news. For the most recent edition I collated a few links and I think they might be interesting for broader consumption. Of course one of the best links for Microsoft, Rational, Jazz and Borland information is my blog 😛

So subscribe

Here’s the links:

And an addition:

What’s new in terms of Rational Jazz products

Open Space as the PDC

I really like this idea:

Open Space

Open Space is a way to bring together groups of people interested in a common topic to have an interactive discussion. In an Open Space session, there may be an expert who is passionate about a topic presenting to an audience or there may be a small group of people discussing an idea.

Four principles of Open Space:

  1. Whoever comes are the right people to be there
  2. Whatever happens is the only thing that could have happened
  3. Whenever it starts is the right time
  4. When it’s over, it’s over

All you need to do is suggest topics onsite that you wish to discuss and participate in sessions that sound interesting to you. It’s the unconference with content by attendees, for attendees.

That quote comes from this page about UnSessions at the upcoming Microsoft PDC in LA. I went to the last one a few years ago and I’ve been to a few of the IBM Rational RSDC’s and this idea really works for me. I’d like to see that kind of thing going on at the RSDC too.

I’m in two minds as to whether to go to this PDC or not (they don’t happen every year unlike the RSDC, or TechEd). It was certainly extremely valuable going to the last one but this time around I find myself conflicted between needing to grok all things Jazz and similarly needing to grok all things VSTS/TFS, not to mention that I’m a c# developer at heart so I like to keep up with all the techie stuff in the MS space. At the moment I’m thinking that someone from IJI should go but probably not me. If you go, make sure you attend any session or unsession that Anders Hejlsberg is running, he’s always really interesting to listen to and has a brain the size of a planet.

My first Jazz (Team Concert) Demo

So I just finished my first proper Jazz demo with my favourite customer. I demo’d Team Concert both in Eclipse based on my own process template based on EssUP from IJI and also in my trusty FireFox. We also went and looked at the project dashboard for the Jazz project itself hosted on jazz.net 8)

The best thing about demoing or even just playing with Jazz is how easy it is to setup and play with. The guys in the Jazz development team have done a great job in making it accessible and consumable. You can literally just download the server and client, unzip, run the server through a batch file then start accessing the clients. From download to up and running took me about 3 minutes the first time I tried it. Compare this to wanting to play with something like RPM and the other Rational tools and you’d be banging your head against walls!

Team Concert is a great product – I just want to see the technology integrated into Microsoft Visual Studio. And of course to see what other Jazz tools are going to be announced at the RSDC in a few weeks time.

Here’s what’s happening around Rational Team Concert and Jazz at the RSDC

Check out my preview posts in this blog on what’s coming up a this years RSDC .

Here’s a screen shot of my very important risk list in my test project 🙂

Screenshot of my demo risk list in Jazz Team Concert

(click for full size)

#jazzdev twitter hashtag stats

%d bloggers like this: