Saturday, December 20, 2008
At last, someone has written this book! I hope it is good.
One of the problems we face moving the world of agile beyond objects is that and managers in conservative companies need confidence that a different approach is tried and tested. This book has the potential to help do just that.
Since it's Christmas holiday season, I hope to have some time to read the book over the next couple of weeks and publish a review on this blog.
Monday, July 28, 2008
It's been a little while since we have released anything new, but with the Agile year's main event approaching fast we thought it would be a good idea to get some of the Agile2008 conference organisers to tell us about what they have planned. First up we have Grigori Melnik who gives us a 15 minute overview of the conference as as a whole as well as an insight into the selection process introduced this year. This year's conference is organised into stages - rather like a music festival - so we then we have 5 individual, shorter, talks from the organisers of some of the stages who tell us in much more detail what their stages have to offer.
Sunday, April 27, 2008
It's true that Agile teams do less documentation, but it is always replaced with better alternatives. I'll put that another way because it is important. Agilists do not throw away documents for the sake of it - that would be a pointless short term fix - but we are passionate about reducing waste in our projects and we have found there are more effective ways of doing some things that every project needs and they happen not to need as much documentation. (Mary and Tom Poppendieck showed us how to use Lean principles to identify and eliminate waste in software projects, this interview is a great place to start.)
Waterfall teams write test procedures to record the manual tests that need to run against each release. There are problems with this approach: the tests take a long time to run manually, they are subject to human error, and because natural language is imprecise and ambiguous technical details gets lost in translation by the tester.
Agile teams use Test Driven Development and executable specifications to create automated test environments that can be run quickly and easily by anyone on the project (including stakeholders). Automated tests are absolutely precise – they either pass or they fail, and if a bug occurs you can simply add a new test and that error can never happen again.
Requirements and design
In Waterfall, business analysts use requirements documents to capture what the customer needs, then the designers create another document that interprets the requirements in technical language. Again, there are two problems with this. It takes a long time, so requirements go out of date and because natural language is subject to human interpretation the customer's original need gets lost in translation.
Agile teams are cross functional including business analysts, designers, developers and testers all of whom engage directly with an empowered representative from the business. They work in short iterations of a month or less that deliver solutions to the most pressing business need at that time. There's no need to maintain detailed requirements definitions or design specs because the customer is able to communicate what is needed face to face and the tests accurately describe what the code does.
Change Control and Risk Logs
Honestly, does anyone enjoy working through these?
Requirements and designs go out of date on waterfall projects, so they need a whole extra level of documentation and bureaucracy to track changes and uncertainty.
Agile teams simply do not need any of this stuff because they are always working on immediate priorities and the chunks of work are small enough that they can actively address risks early in each iteration.
Look for the Principles
Of course, I have really just scratched the surface, but if we look for the principles behind the practices we find ways to improve our thought processes.
Documentation is a legitimate form of knowledge capture, but it's not always the best option. There are times when documents are necessary and useful, recording business metadata is an example that springs to mind, but next time someone asks you or your team to write a document, recognise it's a default position – the lowest common denominator of project communication – and everyone involved might find a better way of working if they were to kick the problem around for a while to address the root problem more effectively. Sometimes you will find a document is the best solution and other times you will not. In either case, you will reach a well considered decision based on a reality.
Saturday, April 26, 2008
Thursday, February 28, 2008
There have been massive changes since I was last there. Not least the fact that the Department of Applied Computing, as it was, has moved to a fantastic new building and become the School of Computing. The range of courses has expanded to include degrees in E-commerce Computing, Computing with Electronics and Computing with Interactive Media Design, along with the Applied Computing degree in which I graduated in 2000.
The software engineering course has changed radically as well. Janet clearly has a great feel for Agile and a passion for teaching it. She told me how she discovered Agile through her own reading, was immediately taken by the way it is tune with the way that we really develop software - as opposed to waterfall; which isn't. After attending a Scrum Master course to learn more, she has added a very strong Agile focus to the Software Engineering course I took all those years ago. While I was there, her students got their marks back for a group project assignment. Working with a real customer to write a scuba dive planning system for a mobile phone in C#, they used Scrum to manage their projects, co-located their teams and developed the code using pair programming and test driven development using nUnit. Part of the final submission was a report from a Continuous Integration system one of the 4th years was writing as a final-year honours project.
I am very impressed! It is great to see a university department teaching Agile so successfully and I think it is encouraging for the development of Agile that students are starting to come out of universities equipped to work effectively on Agile teams and influencing their future colleagues and managers to adopt better practices.
Both talks went well. I was impressed by the students' knowledge of Agile practices when I ran a short discussion at the start of the talk in which I asked them to suggest practices that support each statement on the Agile Manifesto. For example, one group identified working with a product owner as an example of a practice that values individuals and interactions over processes and tools. One of the students asked a great question about how to organise multiple teams working together on the same code base.
The second talk to the BCS was quite a different audience. I was pleased that there was a good turnout for my talk – especially since the talk was at 5.30 on a Monday evening! Many of the attendees professed no Agile experience at the start, but they asked lots of good questions showed a particular interest in Test Driven Development and if/how to integrate Agile with the wider process frameworks like Prince2 you tend to find in large organisations.
I wanted to say thanks to everyone I met for a fantastic day and for looking after me so well. Hopefully I will get the chance to come back again soon!
Saturday, February 23, 2008
I have always been a bit of a book hoarder, and being introduced to Agile was more than enough encouragement! Christmas 2007 was especially fruitful since I pointed everyone in my family at my Amazon wish list and I got a nice little haul.
There are also a couple more titles that didn't make it in time for Christmas...
- Patterns Of Enterprise Application Architecture - Martin Fowler
- Domain Driven Design - Eric Evans
- The New Turing Omnibus (66 excursions in Computer Science) - A.K. Dewdney
In fact, it was my birthday last month and I took the unprecedented step of asking people not to buy me any more books. I reckon I can make time to read about one a month so I'll be doing well if I finish this lot before next Christmas!
As I pointed out in my previous post, most Agile technical literature is focused on software development using Object Oriented languages and I think it's important for the development of Agile that we publish research into how to apply this vast resource of knowledge and experience to Data Management.
Now I have an influx of new books, I think now is a good time to start publishing reviews. I expect the format and structure of the reviews the evolve as I learn what works best but I think it will be helpful to the reader if I were to give each book a headline score that is easy to digest...
- Overall Score - how much did I get out of the book. Ranges from 1 to 5
- Relevance to Data Management - how much of this book is relevant to people on data management projects. Ranges from 1 to 5.
- Technical vs Management - 1 pure management, 2 bit of both, 3 pure technical
Let's see how we get on with that. I'm off to review a book now...
Tuesday, January 22, 2008
While I am on the subject, I was very pleased that Brian Marick took the time to review my previous post which was in response to his talk and advertise it on his blog. Thanks Brian!
Laurent Bossavit presented an alternative (complementary?) approach on January's Naked Agilists mini-conference which he and Brian Marick have cooked up with a little help from their friends.
It's a website called wevouchfor.org which borrows a few ideas from social networking sites to allow software people to publicly "certify" each other based on hard evidence of a job well done. For example, Clarke Ching certified Laurent as follows..
Clarke Ching certifies that Laurent Bossavit is qualified as a master, capable of innovating in the skill agile adoption, based on this evidence:
I spoke with Laurent on the nakeagilists podcast and I was very impressed with his thinking, intentions and attitude: putting his spare time into producing this website wevouchfor.org (along with Brian)which benefits our community. The website speaks for itself and for both Laruent and Brian's skills and motivations. Well done!
I think this is a wonderful approach, and very well executed too. One of Agile's strengths is its strong focus on team decision making as the only way to get reliably solid decisions on matters which affect the team's ability to deliver - your boss can only act on what he or she can see, but you can never pull the wool over your peers' eyes! This site is typical of that ethos and if it is widely supported it has the potential provide a very reliable indicator of an individual's true credentials. This would be as good for the individual as it would for his or her colleagues or potential employers.
The first iteration is now live and Laurent promises more features are in the pipeline. The registration and certification process is extremely quick and easy so I hope you can find a moment to sign up and give some credit to people who have helped you in the past.
Sunday, January 20, 2008
With reference to Moore's technology adoption life cycle, Agile methodologies have crossed the chasm between visionaries and pragmatists only to find that, in his opinion, there are not many true pragmatists out there and the only option is to skip straight to the conservatives. He feels that the original visionaries are now spread very thinly across the world consulting with Conservative companies and the development of Agile would be better served if they were to retreat back to Visionary companies and work together on real projects creating new innovations.
Well done to Brian for sticking his neck out and making such a bold statement. As one of the original signatories on the Agile Manifesto and a consistent contributor and leader in the community, he is well qualified to comment on how Agile is being applied across the industry. Clearly, he has seen some things that have disturbed him greatly and has been moved to comment this strongly.
He is also the first to admit (listen to the podcast) that he would love to discuss this much further so I would like to offer an opinion on a factor he might not have considered...
The Agile community is too heavily skewed towards Object Oriented languages and people believe it only works with Object Oriented languages.
Back in the day, the patterns community, who were the thought leaders in the objects community, met up with the leaders in the methodology community and created what we now know as Agile (OK, so I skipped a few steps along the way, but please run with it). Naturally, the technical practices on OO projects continued to evolve and the people involved wrote the definitive works on refactoring, TDD and Agile design.
Let's be absolutely clear on something. I don't want to, even slightly, cast any doubt on the excellence and relevance of these books and I am certainly not trying to belittle the efforts or success of the people who wrote or have read them. But there is a problem. No one is writing technical books about anything other then OO technologies.
So why is this important?
Because Big Companies Are Conservative
The converse is not true (there are small conservative companies too), but in order for Agile to become truly mainstream it needs to establish itself in IT departments at multinationals like telcos, banks, media companies, major retailers and energy suppliers (the list is endless!)
Big companies like these employ legions of programmers, designers, architects, testers, managers and support staff who don't know about objects, don't do UML and think Ruby is a sort of red diamond. It's not a problem though. They don't need to know about objects because they have built their careers with languages and environments like Ab Initio, COBOL, Siebel, SAP, SAS, PeopleSoft, Business Objects, Brio and Teradata to name but a very few.
These technologies are the heart and lungs of the company and the latest J2EE or Rails website would be pretty useless without them quietly churning away in the background supporting the business's ability to deliver. Of course, we know that nothing really churns away quietly, so we need people to look after them and projects to update them and add new functions when the business environment changes - just like anything else.
It's not glamorous or sexy, but it's still very challenging and often cutting-edge work which is subject to exactly the same project pressures as the latest marketing initiative.
Unfortunately, when the IT director at a multinational looks at Agile, his or her first reaction is not that of one of Moore's Visionaries who would wonder "will this help me achieve 10X productivity gains". It's more likely to be "how does this affect my ability to keep the lights on". And that's the right place to focus - failure to do so would be reckless, career ending and maybe even illegal (governments tend to take a dim view of telecoms operators that cannot reliably provide, for example, 999 emergency services).
So what can we do?
Scrum, Crystal and DSDM have shown us how to work iteratively, Lean has taught managers how to think about software development, but a team cannot be truly Agile without the Extreme Programming technical practices that allow it to truly embrace change. It is essential that we can provide documented proof and guidance on how to apply the technical practices across a wide range of modern and legacy technologies rather than just the new era of OO toys.
The adoption pattern is there to see from the OO world. We need expert visionaries from untried technical domains to stand forward, say "YES! This is possible using Product X", and then go and make it happen. We need blogs, articles, conference presentations, training courses and, ultimately, books to guide Agile virgins through the technical practices using a range of technologies. We need to show business software vendors that they can differentiate themselves by supporting their clients Agile development needs.
That's what I am doing, but I can only work with what I know so I will end with a rallying call to the next generation of visionaries:
If you are breaking ground in non OO environments - especially business software - please write about it! There has never been a better time to make a real difference and maybe a name for yourself too.
Wednesday, January 16, 2008
The conventional wisdom in the design and testing of Object Oriented systems is to isolate application functionality from the underlying data model. How then, do we adopt Test Driven Development for projects where the goal is to transform the raw data and Object Oriented languages are not used? This presentation introduces the TDD approach I have successfully pioneered on my own data management projects and FIT4Data - the FIT-based testing framework I wrote for the purpose.
We are having a few problems getting Skypecast to work at the moment, so please join the list to find out the new arrangements as they become clearer.
This group is for the discussion of all aspects of applying Agile principles and practices to data management projects. It is intended to compliment the existing Agile Databases group and the key distinction between them is that this group covers situations where working with raw data is the primary focus of the project or application. For example, data warehousing, data migration, data cleansing and operational data transformations.
The focus of the group is wide ranging covering both technical and management topics and is open to everyone from novices to experienced practitioners.
Friday, January 4, 2008
So what has led me to the (possibly rash) decision to take some time out of my busy schedule to maintain a blog?
A bit of background
I am a professional software developer based in the UK who specialises in data management using Ab Initio. I studied computing at university for the simple reason that I liked it and was reasonably good at it and I joined the workplace as a graduate developer back in 2000 full of bright eyed enthusiasm for writing great solutions. Like many developers progressing through the ranks from graduate to seniority I became increasingly disillusioned with the reality of the politics and methods used in the real world. It was especially disheartening to find that developers are almost at the bottom of the food chain in most companies (apart from the testers who, as bearers of bad news, are often treated even worse). We were the people who were creating the system so surely everyone involved would be judged on the success of that system from initial release to eventual decommissioning. Why, therefore, was everyone not not lining up to support us?
There had to be a better way! I just couldn't find it that's all.
It's not that everything was bad, of course. I have worked on many projects, some were great, others were not and most fell somewhere in the middle. On every one of them, I worked beside some fantastic, heroic people who made real difference. Sometimes they were even recognised for it! However, my enthusiasm for the job was seriously waning. I had retained enough of a spark for technology to resist the gravitational pull towards management but I was seriously considering leaving the IT industry to do something completely different.
Thankfully, everything changed when I was introduced to Lean Agile by the inspirational Nancy Van Schooenderwoert. She showed me there is a better way and it's even better than I could have ever have imagined. The Agile principles and practices made immediate sense to me especially the way Lean thinking and Agile methods put the team at the centre of everything with spectacular improvements on quality, productivity and team satisfaction - my suspicions were confirmed!
That's all very interesting Adrian, but why the blog?
The problem we face as data management professionals is that the vast majority of the Agile thinking and literature is focused on developing UI based applications like websites and gadgets using Object Oriented technologies so it's not immediately apparent how to apply agile to data management projects like data warehouses. The purpose of this blog is to publish the findings of my work with Nancy and my company M2Consortium on how to bridge this knowledge gap and explore new ideas as they come up.
Over the past year or so I have been greatly inspired by Jeff Attwood's blog Coding Horror. It has nothing to do with data management or Ab Initio and only makes occasional references to Agile but many of his posts are stimulating I like the way his enthusiasm for what he does comes across very clearly. If I can be even a quarter as good as Jeff I will be very pleased but I am up for a challenge and on his advice I have decided to pick a schedule I can realistically expect to meet. So, drum roll please...
I will post at least once every three weeks.
... cue muted applause...
OK, so it's not very often and I will try and do better, but I have no idea how this is going to work out so I would rather commit to something I can definitely manage than set the bar too high. Please watch this space and Happy New Year!