RSC 2009 – What to expect
I’m not attending the IBM Rational Software Conference (what used to be RSDC, RUC etc. etc.) this year however since it started today for partners and tomorrow for delegates so I thought I’d cast my opinion on what to expect this year. Of course I could be wrong since it’s just assumption but I suspect the main themes will be:
A vision of one notion of process for all Rational tools, made explicit in the relevant tools, surfaced through process rules and defined in practice libraries allowing easily composable and customisable processes based on the Jazz Process architectural elements.
So to tie it all together the Process Library (which of course is practice based probably driven by Rational Asset Manager) feeds definition of processes in RMC, which is measured by MCIF and delivered by the Rational Software Development Platform. So what does that really mean:
Rational Team Concert 2 beta – because it’s a lot better than RTC 1 which was pretty good to begin with!
Rational Tara - a Jazz based PPM (Project Portfolio Management) tool. Think MS Project by IBM on Jazz with better Resource Management stuff. It’s part of the replacement suite for Rational Portfolio Manager (RPM). Should be interesting to see how it ties into the other products (inc. some of the Telelogic ones). I expect this one to be big news – it should be. Gantts, bubble charts, resource utilisation views, agile dashboards etc. will abound. (Now known as Focal Point for Project Management)
Rational Insight – used to be codenamed Vega and is a data warehousing and RTL solution on top of Jazz. Cross project reporting goodness. Of course I’m sure there will also be integration through to the “classic” rational tools. Interestingly I read a bit of blurb recently from somwhere that referred to their old tools as the “classic rational toolset” I wonder if they borrowed that from me
MCIF – Measured Capability Improvement Framework – It’s been around for a while but with more emphasis from IBM now on practice based process the story between a more practice orientated Rational Method Composer, Health Assessment tools and Self Check tools is a bit tighter.
Telelogic – I expect there to be some announcements about the integration of the Rational and Telelogic brands. Especially around FocalPoint.
I’d also expect some stuff on other Jazz based tools like Requirements Composer, Quality Manager, Ensemble, Governor and stuff like that.
As I said due to other commitments I’m not there myself, but if you are there then please stop by the Ivar Jacobson International stand in the Exhibit Hall downstairs when they let you in. Grab a free beer and talk to my colleagues about how to achieve tangible process improvement with the use of effective practices in a proven framework. Also talk to them about achieving “Agile for Grown Ups” (TM of the MacDaddy) in your organisation. Ivar, Ian Spence, Kurt Bittner are all speaking at the conference and a bunch of other IJIers will be there so go along and say hi.
And ask for a free bag, they’re great for carrying around your exhibit hall swag
How to avoid Fragile Agile, Flexibility in Context
A presentation I gave at the UK RUG Annual Meeting on what can make agile development fragile and how to avoid that fragility.
Unfortunately animations don’t work and slideshare’s screwed up the agenda slides but you can still follow it
Why do people still waterfall their development process?
Generally the software development industry has caught on to the fact that iterative development is a good thing. Only people that don’t believe in common sense think it’s a great idea to leave all of your testing to the end and hope for the best. With that in mind then why do people still have a waterfall mentality to their software development processes?
At the beginning of a project you can’t possibly know everything about it, that’s one of the many reasons it makes sense to iterate, so you can do some work and then refine your plans based on your work. For some odd reason though a lot of projects, even though they might develop iteratively, seem to think they should define their process at the beginning of a project in great detail and then stick to it regardless of the facts due to some misguided need for process alignment or similar.
That attitude just doesn’t make sense. A view of what practices will be followed is necessary at the beginning so that everyone’s on the same page and now what they’re meant to be doing, but even the formally defined iterative processes like RUP say that the process should be examined and refined each iteration.
In my experience an extremely detailed formal process is difficult to change. If you’ve got a 50 page development case. huge stack of xml files in your favourite process authoring tool or similar it’s very hard to make useful changes to a process. Of course you can change the review requirements of the Use Case Specifications from Formal-Internal to Formal-External, but it’s not so easy to scale down the formality of business modelling while adding a practice to address user experience issues.
Software development process can (and should) be thought of as a collection of practices. Each practice should address a particular aspect of software development in a complete fashion. Every small technique is not a practice (in coding terms every idiom is not a pattern). Using Use Cases, being Iterative, using Component Based Development are all good examples of practices. They can be added or removed to your project’s way of working and the level of formality can be scaled up or down on each practice. Practices are the natural unit of adoption for processes.
It’s always best to start small and simple. At the beginning of a project just do what you can see. It might initially make sense to think about using Use Cases as a common way of managing requirements for your project and it clearly makes sense to iterate in most cases. Then as the project progresses and more understanding is reached more practices can be added as necessary. This is an iterative approach to software development process, it’s just common sense.
At IJI we’ve been doing this sort of practice based way or working for ages – in fact it’s what the company was created around as the fine brains we have created this approach and brought it to life in EssWork and EssUP which is a kernel and a collection of practices.
Anyway, enough of the company blurb, more about practices. I think everyone can agree that this is a sensible approach to software development as it applies the lessons the industry has learnt about software development back onto the problem. It doesn’t matter which vendors tools are used, or what process frameworks are used this is just a sensible approach, and the best thing is it is compatible with whatever you’re already doing that is successful or necessary in your organisation. I work with organisations helping them to change and adopt their processes and in every organisation I’ve been to is doing at least one thing well. Using practices to work with process improvement means that we can just add to what’s already working, incorporate the necessary governance or operational activities in an organisation, add SCRUM if that’s what’s wanted and have it all work together in a cohesive way of working.
To achieve this adding together of practices in a way that works you need to have a foundation that provides a common understanding of the basic concepts of software development so that practices can fit together neatly. This is intellectually quite tricky to achieve but necessary. It should also be practically invisible to the people doing projects – they don’t want to think about process geeky things like the process architecture that can support practice composition in a seamless way. At IJI we call this the kernel – which I think is a suitably geeky term. We have also built it both conceptually and in software (that’s what EssWork is) along with what we think are the “essential practices” (that’s what EssUP is) and now the big vendors are following suit and packaging their processes this way.
Maybe one day we can get away from branded processes by vendors and just have a software development community using, sharing and collaborating on practices.
Oh yeah, and they should be in tools not websites, and free!
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
RSDC UK 2008 Review
So RSDC UK is over and I’m finally getting a chance to blog about it. It was cool to meet so many old friends and new make new connections. There were even some blog readers that were able to recognise me IRL by mentally adding 6 years and a beard on to my blog picture
Very impressive!
I think it was the best UK Rational event for a long time, and there were some great speakers. Unfortunately the chairs were uncomfortable, some of the rooms too small and the venue would do well to invest in some air conditioning. I suspect that going to an event at the Royal College of Phyicians in the height of summer (assuming we ever have one in this country again) would be enough cause to need a doctor. Regardless of that, and the amount of walking up and down stairs I did, I think it was a great event. The buzz was mainly about the Jazz platform and associated tools (RTC, RQM, RRC).
Day 1
The conference was opened by Graham Spittle (IBM SWG UKISA VP) and Danny Sabbah (IBM Rational Worldwide VP) who set the scene well for Erich Gamma (in real life) and Grady Booch (in Second Life). Unfortunately the Second Life link went belly up and we did’t get all of Grady’s keynote. Which must have been extremely annoying for Grady since it was 3:30am for him! Erich then took over and gave an excellent Rational Team Concert demo (RTC). When he started his demo I was a bit worried he was going to cover all of my planned demo too, but fortunately it didn’t overlap completely. Since he did the Monday keynote and I did the last slot on Tuesday there was enough time and quantity of information for the delegates so a little overlap didn’t hurt. Erich also did a panel discussion on Agile development in the context of Geographically Distributed Development along with Scott Ambler and Julian Holmes moderated by Anthony Kesterton.
The great TQ (Terry Quatrani) was also present speaking on Agile Modelling, I had a meeting to attend so unfortunately didn’t get to see her speak which is a shame because she’s always great. I did speak to people that did go who just confirmed that I’d have rather gone than have a meeting!
Following the break it was then time for me to speak along with Linda Weedon of PwC and Matt Archer (also of IJI) on “CUPID – Implementing the IBM Rational Unified Process at PricewaterhouseCoopers” which is all about our experiences in deploying UP using a practice based approach. I think the session went really well, we had some pertinent questions which is always a good sign of people staying awake and listening
To close the day Ian Spence gave an excellent (as usual) talk on “Conversations in Context: Using Use Cases on Agile Projects”. Following an excellent dinner and a few glasses of wine kindly provided by a competitor it was time to commute home and eventually get to sleep at around 1am. It’s much easier at conferences when you’re staying at or really close to the venue! During the dinner there was a caricature artist or two wondering around who came to our table. Naturally we volunteered Ian to be caricatured and I managed to take a quick pic with my phone of him with his Mad Scientist caricature.
It’s a little known fact that Ian is also a Kung Fu master which is why his hand appears blurred in this pic. Fractions of a second later my phone was whisked from my hand at the speed of lightening.
Day 2
Day 2 was for some peculiar reason started 30mins earlier than day 1. This didn’t impress me, especially since like most people I hadn’t noticed until I was texted while on the train on the way in. Fortunately I was early enough anyway to get there on time. Mike O’Rourke opened the day with some description of the Rational 2.0 Roadmap (Jazz and future products). Rumours were confirmed about Rational Project Management and Rational Enterprise Reporting being released Q1 next year.
Ivar Jacobson then gave an excellent keynote on “Back to basics: Getting Good Software Quickly and at Low Cost” which focussed on using practices in a smart way, not following processes. I’ve seen Ivar speak many times, and many times on practice based development, which isn’t that surprising since I work for him but it’s always entertaining to hear the man speak.
I also had some meetings on Day 2 but the sessions that really stood out for me were Peter Eeles talking on “The Rise of the Development Environment Architect” which was based on his paper on DevelopWorks. This is an excellent formalisation of something that has been part of my job for some time. I also enjoyed Derek Holt’s talk on “RTC and the Agile Development Strategy”.
Finally to wrap up Day 2 I presented on own this time on “Live Jazz: Process Execution in IBM Rational Team Concert”. This started off with a demo of EssWork in Eclipse, shell sharing with RTC and creating a new process by composing practices as described in Ivar’s slideware at morning keynote. I then started executing my new process in RTC. It was the end of a long two days in a really hot room so I kept it quite light and I think it went well – and hopefully the audience got something different and new from the talk. If you are now kicking yourself that you missed this talk, fear not I’ll be repeating most of it as part of a webinar I’m doing in October – more details here.
Thanks to all those who attended my talks and came and said hello, especially those that read the Mac Daddy!
I’ll post the slides in a few days
Free Webinar series for October 2008 from IJI
IJI will be running a bunch of FREE (that’s right not even a hidden cost!) series of webinars over the winter. Some of these webinars will be hosted by yours truly (the first two and maybe the last one). Since these things are free I really hope you’ll sign up and see some of the exciting things that we’re working on at IJI. Go Register!
Psst There will be some more FREE webinars later in the year too
|
|
|
|
|||
|
|
|
|
|||
|
|
|
|
Edit: It seems that the fine folks that laid out this press release didn’t consider the effect on my blog theme. Oh well…
Knowledge Centered Support in my project
Kelly Drahzal recently published this great presentation on Knowledge Centered Support which made me think a bit on the nature of support mechanisms. I’m currently engaged in rolling out a large and complex enterprise tool (Rational Portfolio Manager) and associated governance, portfolio management and project management practices in a large and complex client.
One of the things we need to do to get these pracitices and the tool embedded in an organisation is manage support. Our support takes two forms, tools support and process support. Normally when a person thinks they’re asking for one of them they’re actually asking for the other
One of the interesting things about the support that my rollout team provides to the practitioners is that ultimately it’s a transient function – we won’t be the long term support team on this product, in fact support will be handed over to the centralised support function and the rollout team (comprised of external consultants (some IJIers, an IBMer and some independents) and contractors) will dissapate into the ether from whence it came. So obviously, as per Kelly’s presentation we’re very keen on knowledge centered support – we don’t want to waste our time, effort and brain power by re-recreating the answers to people’s problems.
So what do we actually do to try and avoid some of these problems and do some knowledge based support? We’re a transient support function so we don’t have and super tools or even specialist knowledge base management skills. What we do have is a highly skilled team and a number of communication channels.
We capture all support requests in a humble excel spreadsheet, regardless of their communication channel and categorise the requests into a number of categories. (Of course this gave me an excuse to write some cunning macros to keep everything updated automatically).
As well as providing lovely graphs the spreadsheet captures the issue and the response. As a result the team can all see who had what problem and how it was resolved. As problems are solved knowledge is created, capturing it in a spreadsheet is all well and good, and can be searched on by the support team but it’s not great in terms of sharing that knowledge broadly. (As it happens the support spreadsheet is publicly accessible via a guest account on our config management repository – but that doesn’t mean anyone is looking!)
To share the knowledge we communicate it through many channels. Sometimes it’s apparent that our education has been lacking some good guidance so we update the education programme (training courses, open surgeries, lunch ‘n’ learns). We have a wiki where we can post new bits of information, a message board/forum, emailing lists, laminated desk drops, a FAQ on the wiki and also some mentoring guides. One of the functions of our team is to mentor practitioners in the adoption of practices and tools and to do that we have a number of mentoring packages that we give to adopting teams. Ensuring that the mentors are all saying the same thing, giving the same solution to the same problem is important. One of the best ways of doing this it to get the mentors together to talk to each other, run through scenarios and gain consensus on the common answers. We also document these scenarios, sometimes in the practitioner facing User Guide and sometimes through mentor guides.
First Look: IBM Rational Requirements Composer
So I downloaded and installed IBM Rational Requirements Composer (RRC) today. I’m not very good at reading instructions so typically I didn’t read them but I still managed to set up RRC server and connect a client within an hour
Excellent job yet again Jazz people, in the past with the “classic” tools this sort of thing wouldn’t have been possible in such a short time. It even co-exists (but isn’t integrated) with my Rational Team Concert installation. At the moment I’ve got two Jazz server instances which is a shame, but this is only a Beta.
Anyway, I used the configuration utility and with only referring to the instructions once or twice I quickly got RRC setup and working. Having said that the config utility uses an embedded IE instance to access the Jazz Admin console and for me that wasn’t working so I gave up on the config utility and just used trusty FireFox.
The client is Eclipse based but isn’t shell sharing with my other eclipse shell at the moment. I’ve created a Test Project and thought about creating some artifacts to go along with it. I can’t see where to edit templates but since this is Jazz based I’m sure that everything is customisable. I’ve got a bunch of errors showing in my logs and in the Jazz admin web UI so I’m not sure if I’m seeing everything anyway. Perhaps reading the instructions is a good idea!
Overview
It’s clear that it’s an early Beta as there’s still a lot of simple UI bugs but the point of these releases is not to provide a finished product but to give people that are interested a chance to get to grips with the functionality and look and feel. So here’s some of my thoughts and screenshots (clicky piccies):
I set about creating a process diagram
Then a glossary that supported some of the terms that I identified in thinking about the business process
I also played around with creating a Use Case diagram
Because I’ve got a software development background I immediately decided to mock up a UI and screen flow rather than consider any of those pesky requirement things
At this point it seemed like a good idea to think about writing an initial Use Case specification, this was cool because I could integrate the various things I’ve done already such as embed the UI mockup, link to the business process and have glossary management done for me too
All of which left me with some cross linked integrated stuff to do with capturing my requirements as regards eating doughnuts
Conclusions
It’s quite easy to start setting up a set of integrated stuff including storyboards, process diagrams, use cases, UI mockups etc. and is very non-technical to use. Personally I found the UI mockup functionality to be limited, I’d prefer more free form drawing capability when I create a “sketch” it would take me longer to mock up a UI here than it would for me to build it in Visual Studio – but then again this is aimed at analysts that may not be able to use IDEs. The UI seems very windows based as well, what about trusty web widgets!
I’d like to get at the project template and see what can be done in terms of the elements and strucutre of the project, not to mention document templates for things like Use Cases.
Does this replace RequisitePro? No. Although it’s got requiremetns authoring, marking and linking RRC doesn’t yet provide full traceability management and (at least at the moment) I can’t see where I’d go about attributing and managing requirements attributes. That’s why RRC has integration into ReqPro to provide these things.
Personally I’d like to see versionable requirements artifacts, more flexible UI sketching, traceability management, attribute management and more integration into other Rational tools such as Rational Software Architect and Team Concert.
This is a good start in terms of providing a single tool to support requirements elicitation and elaboration, all the diagrams and docs in one place, easily distributed and collaborated on. I’ll look forward to seeing more of it as time goes by













