solve pc logo
 

Intro, User stories, Strategy, Iteration 1, Iteration 2, Iteration 3, Iteration 4, Iteration 5, Iteration 6 (Download!), Theory

Iteration 6

Oh crap six weeks of my life has gone by and I have the mid-project-blues. I am thinking things like “Will I ever finish” and “is all this crap?” I know this from before, for me this is normal, and it is normal for a lot of people to have doubts when taking on long commitments. Fortunately I also know that it is most likely temporary and I need to press on to get thru it. Nevertheless it can be a good time to think about the miscellaneous tasks that has to be done in order to actually deliver a release to the clients.

I am thinking about stuff like; installations script, how will the user check for new versions, how will he set up the database the first time, how will he evolve the database when there are changes, were will the user find the download (i.e. fix the web site).

Are there any user stories for these tasks? Not necessarily. We can formulate user stories like “As a product owner I want the user to be able to download and install the application so that they can use it”. But in a real project the product owner may take this for granted and sees no real business value in this obvious thing. If that is the case we can use the miscellaneous task and simple explain to the product owner that the team needs one iteration to do “obvious things” that are taken for granted. Even obvious things take time. In my experience the product owner will have no trouble to accept this argument and will understand why no, or at least fewer, story points get produced for an iteration.

As always there are many ways to skin a cat, even when it comes to application deployment. Since this project has no financial muscles at all I will need to find the path of least resistance even here. The answer for deployment, update, set up database, database evolution seems to be ClickOnce. ClickOnce deployment is built into VisualStudio and it basically produces a webpage with the downloads needed. Every time a user starts the installed application the webpage is checked, and if there is a newer version it can be downloaded. Check it out http://www.agileplanner.eu/deploy/deploy.htm

I still need to handle a db schema update though. It will not suffice to simply have the client´s database written over by a ClickOnce update. When ClickOnce updates the data directory it is decent enough to copy the current content to a folder called “.pre”.  We can use this fact to look for the presence of “.pre/database/ourdb.mdf” , if it is  there we need to save the clients current data, now in the “.pre” folder and also potentially update the schema of the clients database.

Updating schemas can be very complicated. Not only do you need a sql script that will change your database schema from version 1 to version 2. You will also need to cover for the case of missed updates so that you know what to do when moving from version 1 straight to version 3. A good framework should be able to help you with this, and lucky for us we use eco.

Press NEXT to continue