jump to navigation

Wabi-sabi, ongoing imperfections and struggling with hardware. 4 August 2008

Posted by Olivier Van Acker in agile, stakeholder involvement, technical, v-base.
Tags: , , , , ,
add a comment

Tracey sent me a nice link to read, probably to try to establish some inner rest in me after a week of struggling with hardware. It’s about wabi-sabi, a Japanese concept about imperfect beauty. What immediately caught my eye was the western use of this concept.

It’s employed in Agile programming to describe acceptance of the state of ongoing imperfection.

To deal with all the ongoing imperfections we have over time changed our requirements considerably. For example: because Oracle hasn’t released its product (11g) for Solaris OS on x86 platforms we decided to change the server OS to Linux (Red Hat Enterprise Edition) which does support 11g. This however has resulted in another ‘ongoing’ imperfection :-(

The drivers to make the Red Hat server talk to the Sun StorageTek data storage array, which we bought together with the server, are not what you would say ‘production ready’ – I got the source code for the unreleased drivers sent to me by Sun engineers.  Compiled it, added it to the kernel, hmmm, this ‘not production ready I thought; it just doesn’t work.

The first result; we had to postpone the move of the hardware to our production environment at Imperial College here in London, were we would be connected to the JANET network.

Second result: Having a good think about how to deal with this…

This afternoon I’ll have to present this <understatement>small setback</understatement> to our project’s governance group, and see if we can come up with some alternatives or a solution.

I’ll keep you up to date.

Olivier

YARI2 (Yet another refactoring iteration) (Final) 25 July 2008

Posted by Baz in technical.
Tags: , , , , , , ,
add a comment

For the past few weeks we have been working on converting the remaining main section (organisation + opportunities) to Presentation Model. If you are not familiar with Presentation Model read Martin’s blog post on 4th June 2008 (below) which gives a brief summary of the pattern.

By moving to the Presentation Model we have been able to increase our Test coverage significantly resulting a greater chance of detecting any bugs which could be introduced as we add more functionality.We use NCover to generate code coverage reports which indicates the percentage of the test as well as highlighting line of codes which are not covered with the test we have.

We mainly focus our tests on the Controller of a user control as that is where all the important stuff happens.

From Tuesday, It will be all about adding more and more new functionality iteration after iteration.

Until next time, its goodbye, ciao, adios

V-Base Support, the future and beyond… 15 July 2008

Posted by Paul in do-it, stakeholder involvement, v-base.
Tags: , , , , , , , , , , ,
1 comment so far

Hi,

Some of you may know me in the past from contacting the V-Base technical support help desk where we answer your queries, technical support issues and give advice on how to get the most out of V-Base.

When V-Base 3 is released we expect over 400 + existing V-Base-using organisations to upgrade to it.

V-Base 3 is a complete rewrite of the existing system and we anticipate that on its release our users will require more support than usual to learn the new system and use it effectively. At the same time we will need to support organisations who are still using V-Base 2.5 alongside support of V-Base 3 whilst users are transitioning from version 2 to version 3.

One of the mechanisms we will be implementing (in addition to our email and telephone support service) to improve and maximise the support we can deliver is the production of a dedicated support website. This will hopefully create an environment of self-sufficiency as people will be able to find answers to their queries outside the helpdesk’s operating hours or when the support team are busy dealing with other calls.

As part of our research for the support website we have created a short survey that will help us prioritise the functionality we can deliver. If I can have 5 minutes of your time, I’d really appreciate you filling it in.

To complete the survey please follow the link below:
http://www.do-it.org.uk/survey/s?s=3005

Apologies for cross-posting as you may have already read about the survey in the latest edition of V-Base Support newsletter or the do-it.org.uk re@d-it newsletter, but we’re particularly interested in hearing what you think about our plans.

The Support Website (aka V-Base for Dummies)
The Support Website (aka V-Base for Dummies)

Hopefully when the support website goes live later this year you will find it helpful and help you get the most from our services.

If you have any questions please contact me at paul.watson (at) youthnet (dot) org I’d be pleased to hear from you.

Online “Stand Up” Meeting 11 July 2008

Posted by cherryeve in agile, v-base.
Tags:
4 comments

Finally it’s my turn to write a post again, exactly on the day of IPhone 3G launch (If you are one of the people who camped outside Oxford Street O2 store, I do hope it is worth the trouble) :P

As for V-Base3, we did our first online “stand up” meeting yesterday. “Stand up meeting” is our friendly name for “Daily Scrum Meetings,” a practice of agile software development with Scrum. I had to wear the Scrum Master’s hat for 15 minutes to facilitate the meeting. It came to mind an idea to have an online “stand up” meeting instead. Firstly, this time round we have no update on the board for this iteration (i.e. the implementation for this iteration is completed and developers have been testing since the previous day). And one of us who was working from home on the day can join in. Wearing the Scrum Master’s hat is a nice experience (being in control!), though I am happy to pass the hat back today.

Online "Stand Up" Meeting

Online "Stand Up" Meeting

If you are not sure of what Scrum is and how it relates to “Ham and Chicken,” I suggest clicking on the link. The section about Scrum roles is particularly interesting.

and they all rolled over and one fell out… 27 June 2008

Posted by Tracey in Uncategorized.
Tags: , , ,
add a comment

a group of youthnetters recently spent a saturday moving desks & equipment around in a complete reorganisation of our side of the office. this was partly to fit in some extra desks (with volunteers/interns involved in most areas of our work the organisation is once again almost bursting at the seams) but also to make it easier for some people/teams to work together. most of the v-base 3 team is now located in one double row of desks. it’s great for me as i no longer have an obstacle course of people and technology between me and the client application developers. but until we get some straight desks (i.e. without curved returns on the sides), pair-programming will continue to be very cosy ;)

Baz Sofia & Martin

Agile development experiences 26 June 2008

Posted by spacebaboon in agile, do-it, technical, v-base.
Tags: , , , , , , , , ,
add a comment

I’ve been a developer at YouthNet for over 6 years now, and have written much of the code behind the do-it.org.uk website, as well as our other sites, TheSite.org and youthnet.org.

One of the challenges and opportunities of V-Base 3 is greatly improving and expanding how the V-Base client communicates and interacts with the central database and website. We can send much more data in both directions to make V-Base more interactive with the website and volunteers’ profiles, to allow data sharing, and much more.

So I joined the V-Base 3 team a couple of months ago, to work on this area, and it’s been a very interesting time so far!

One of the things about working on one website for a long time is that the work tends to be small and bitty: change the look and feel of a section, add some new functionality to a profile page, that kind of thing. They normally last a couple of weeks, and will just be me working on it, or one other developer at most.

So to work on a very long term project – by the December release it’ll have been in full time development for over 2 years, and the team has grown to 9 people now. This is a first on anything like this scale for YouthNet, and the team have adopted the Agile methodology, a very modern approach to software development.

So, how does Agile compare to what I’ve done before? Is it the revolutionary improvement some say, or more a fashion statement, as others comment?

Things I like:

communication is important anywhere in development, and more so the bigger the team size and project complexity. This is important in Agile, we make a point of a short meeting every day where everyone says what they’ve done, what they are doing and any problems they’re having. I find this really useful, as I know what everyone else is doing, how their progress is going, and lets everyone else offer ideas to the others’ problems.

we’re using modern web-based project management, code building and information sharing tools:

JIRA for project management, work planning and bug tracking.

Confluence as a Wiki, to store and share all the details of our work. This is such an improvement on a local area network full of MS Word documents!

TeamCity for continuous integration, a central place the code is built and tested, great when several developers are working on the same code base.

Good and flexible working conditions. We’re all hard working, the daily standups mean you can’t get away with sitting in a corner and doing nothing but play Scrabulous for weeks. But one of the Agile tenets is that you work your set hours, and not a minute more. I’ve worked in places where the week or two before a big release, half the team is still there at 10pm every night. A happy, relaxed team is going to work better. We’re also using a VPN and Remote Desktop and IRC to be able to work from home occasionally.

Flat structure, design by meritocracy. We don’t have a complex structure of bosses dictating your every move. Whoever knows something the best can take responsibility and do it.

Iterative development. Rather than working out every detail at the start, building a huge timeline and enbarking on months of coding, the work is split out into short stretches, usually a week or two, where you decide which chunks of work need doing, and then code those. at the end of the iteration, you have a review, to see how it went, and what could be done better next time. while this means more deadlines, they’re not as deadly as when you’ve been at it for 6 months and still have half to do.

Things I don’t like:

There’s a lack of planning and design work at the start, compared to the development I’m used to. The attitude seems to be that you just go and do something, and if it’s wrong, then you refactor it based on the knowledge you gained from it, so your next effort will be closer to what’s needed. While this is a nice way to work, it’s not as effective as taking much more time at the start and getting it right first time, and a lot of time is wasted.

It’s very hard to estimate the time scale of a complex project. When you lay out everything at the start, and work out exactly what has to happen, then you can get an idea of how long it’ll take. but if you just iterate until it’s done, any estimate more than a year ahead seems a stab in the dark. Again, as a developer, it’s nice to work in this way, but it must drive management crazy!

Conclusions:

Despite its name, Agile is much stricter and has more rules than how I’ve been working here previously. You must have stand up meetings every day, you must log all your user stories and progress in JIRA, you must make sure the build compiles with every commit, etc. But this is actually a good thing, they all help, especially in a large team on a long project.

It’s not suitable everywhere, if I go back to the bitty, single-developer work after this, Agile wouldn’t be suitable – the rules and practices would be an unnecessary overhead.

Agile isn’t really anything new, and didn’t come out of nowhere. It’s a collection of sensible and practical ideas that software developers have figured out through experience over the last few decades, brought together and given a name – rebranded, if you like. And as such, it’s very easy to pick up and use. Some of the ideas and technologies I’ve used before, and some are new to me, but they really work well together when working on a big project like V-Base 3. If I work on any large projects after this, I’ll fight to use Agile.

So I’m definitely a fan, if not quite a rabid, flag-waving convert :)

V-Base 3 joined by a new member 10 June 2008

Posted by Camille in agile, do-it, v-base.
Tags: , ,
add a comment

You might have read Olivier’s post on the joy of recruiting for a new developer.

Sofia joined and not long after her we had another addition to the team. Although the recruitment process was less difficult, we had to define a list of criteria and go through loads of websites. After eliminating unsuccessful candidates, we eventually set our eyes on this particular …. White Board! … aka The Tasks Board.

Task Board

The Tasks Board has been part of the team for a couple of iterations now and its role is to offer an overview of the tasks to be undertaken during the iteration and to follow our progress as we’re going through. How does it work?

We divide the board in 5 columns and although cards in column 1 won’t move (so that we can identify in a glance the theme the iteration is going to focus on), the tasks cards will progress from columns 2 to 5.

  1. Story/Area : each user story / area of work we decide to commit to for this iteration
  2. Tasks/To do: each user story / area is broken down into all the tasks that need to be done in order for it to be completed. One card is written for each task.
  3. In progress: once a developer picks a task and starts to work on it, the task card is moved from “To do” to “In progress”
  4. Verify: once the task is completed by the developer it’s moved to “Verify” in order to be QA’d/ tested. If the test is satisfactory, it goes to the next column, Done, otherwise it goes back to “To do”
  5. Done: eventually, all the tasks that were in “To do” will end up in “Done” by the end of the iteration.

Tasks Board really is a part of the team as we have to roll it (I forgot to say that the Tasks Board is on wheels) from our main working area to the area we gather in for our daily Stand Up Meetings (SUMs). Occasionally one of us might be not being able to attend the SUM but Tasks Board is always there (annual leave: 0, sicky: 0)

So, what are the benefits of having Task Board on board ???

  • Everybody from Developers, to Product Owner, QA person or Tracker can have an idea of what people are talking about when they say what they are doing during the SUM,
  • We are working in a more transparent environment as everybody in the office can see what we are up to for an iteration and how we are progressing,
  • And most of all there is a huge sense of satisfaction when all (most of) the cards are progressing through the columns to ends up in the “Done” one by the end of the iteration.

Finally, Tasks Board is very versatile and that’s a good thing as you can find one that fits your needs. It can even be an opportunity for some DIY-team building.

For more examples of Tasks Board: http://www.informativeworkspace.org/walls.php

YARI (Yet another refactoring interation) 4 June 2008

Posted by martin in Uncategorized.
Tags: , , , , , ,
1 comment so far

We have just started yet another refactoring iteration. The last one for a wee while, I’ve been told. It’s nice to have had the chance to take a step back and change some of the things that can come back and bite you later. In the previous refactoring iteration we concentrated on changing the way the database was structured and started with a schema that barely fit on an A3 page even with the smallest possible font and ended the iteration with a schema that shows quite clearly on an A4 sheet. The same functionality with less complexity. Success!

So this iteration we are aiming at the domain and the gui code for one of the main areas of the application. We will be shifting the gui components from autonomous views (gasp) to a version of the presentation model called Model/View/ViewModel . This is a pattern that is fairly simple to implement with WPF’s excellent data binding model. The main reason for implementing this model is the fact that it makes it easier to test gui components in code but as it’s similar to the MVC model it also has other benefits. We have all successfully used this pattern to implement and test the latest gui components that we have written in recent iterations and this iteration we will be going back and converting the older code over to this model so that we can properly test them. Rise ohh rise almighty coverage value…

At the same time we will be adding an entity translation service in to convert from the nHibernate data classes to a true domain level entity for volunteers. This will allow us to get around a few problems we have with our usage of nHibernate. We have always generated the data classes from the the mapping files. This is setup as part of the build process and works very well. We have a modified version of the nHibernate hbm2cs tool that generates partial classes so that we can extend the generated classes without having to worry about custom code being overwritten the next time you run a build. This unfortunately only goes so far. We still needed a way of adding in business rules and validation rules to the properties of these classes in the generated code. We could have beaten the code generator with a stick until it allowed us to implement these features in the nHibernate classes but I just didn’t like that idea. It seemed to me that an entity translation service and a new domain level class would be a more effective solution for our rules problem and also for better separation of the application layer from the data layer. It also means all those strange things you have to do to get your data stored in a database can be hidden in the entity translation service which in turn can be hidden behind the volunteer service layer. Then you can have an application layer class that works the way you would like it to work and don’t have to let the database schema and nHibernate dictate the way your application is coded. Maybe I’m just a control freak but that sounds good to me.

refactoring iteration 28 May 2008

Posted by Baz in Uncategorized.
Tags: ,
add a comment

Yesterday, as I was about to start coding, a blue screen appeared with an error message. I restarted the machine, believing a simple restart would solve it, how wrong I was!!!

My Windows XP was corrupted and after it was examined by a Technical Support member, it was necessary to install a clean copy of XP. Which meant I spent most of the day installing and configuring software on my machine.

In the process I created an image of the machine so that should a similar scenario arise, we would not need to spend as much time installing and configuring all the required software.

We are currently doing a refactoring iteration, changing the way which we store the lookup tables in our database. We are currently doing regression testing to make sure changes we made have not affected the way the application works.

iteration 10 21 May 2008

Posted by Tracey in Uncategorized.
Tags: , , ,
add a comment

yep, we’ve broken 2 figures on the iteration count, woo hoo! another refactoring iteration.

on monday we drove iteration 9 into the corral.  this was sofia’s first proper iteration and martin was tasked with introducing her to the intricacies of the v-base codebase. despite the overhead of induction, the 2 of them delivered some functionality that takes us into some new territory for v-base, skills management, which seems to be the current hot topic. martin’s also been making progress on accessibility and if all goes to  his plan, v-base 3 will be a truly accessible product. outside of the client development, ben’s been working on  user account administration, which contains functionality to make lots of our users extremely happy. it did me, because it will deliver the kind of control that some of our users have been hankering after for ages. what about the rest of the team? well, our intern sheetal is, with olivier’s help, skilling herself up in spring and subversion; olivier has been immersed in system administration tasks… orchestrating virtual servers, installing databases, upgrading our various tools (this may not be his ideal way of spending his days but at least he’s not having to deal with recruitment agencies ;) ); paul and camille have mainly been tied up with other youthnet projects and i’ve been wrestling with the product backlog in jira and starting to get to grips with expression blend, so that i can input more into the actual development. and baazi? he’s been on annual leave for a couple of weeks, writing his final university exams. busy us.