Next week’s reading list

I’m off to mainland Europe for 4 days next week (work related), and have decided that my commuting and ‘bored in the hotel’ time will be spent reading the following books, that I’ve not yet had a chance to get around to:

I doubt very much that I’ll manage all 4 over the 4 nights, but I will give it a try(!)

Have you read any of these?

If you’ve read any of these books please let me know what you thought of them. I’ll share my feedback in due course.

Ady

Initializr – Responsive CSS/HTML template

Just a quick note to all you web designers out there that @verekia‘s ‘Initializr’ – a CSS/HTML template for responsive design is now available for use. Here’s what he had to say in his blog post, Initializr: With Great Templates Comes Great Responsivity! :

Today I’m proud to announce that a “Responsive template” is now available on Initializr! It will help you dealing with all the various devices used to display your site. Mobiles, tablets, netbooks, laptops, desktop monitors, HUGE desktop monitors…

I’m going to grab a copy for myself and have a play.

Ady

Johanna Rothman’s take on estimation

Here’s some sage advice from Johanna Rothman’s “Managing Product Development” blog:

  1. Never, ever, ever provide a single date for a project or a single point for a budget without a range or a confidence level.
  2. Expect to iterate on the release date and on the budget, and train your managers to expect that from you.
  3. If you get a ranked feature set, you can provide working product in the order in which your managers want the work done, while you keep refining your estimates. This has to be good for everyone.
  4. If you can say this without being patronizing, practice saying, “Remember, the definition of estimate is guess.”

I urge you to read the whole of the post – it’s a good précis of the difficulties in estimating budgets and timescales. I’m looking forward to future posts in the series. The home page of her “Managing Product Development” blog can be found here.


Update 3rd November

Johanna has posted the second part of this series.


Update 8th November

Johanna has posted the third and fourth parts of the series.

Ady

Wanted: PHP in the Cloud

Hi,

Currently researching moving a suite of  hosted PHP (well, LAMP) applications to a cloud-based infrastructure. Particularly interested in:

  • One-click deployment
  • Infrastructure as a Service (IaaS) – flexibility, performance, scalability, load balancing
  • Metrics
  • Resilience

I have discovered phpfog and would be interested in feedback:

  1. From people who use phpfog – is it good/bad? Ease of use. Cost effective?
  2. From people who use something that is not phpfog – What do you use? Your experiences.

If you have anything to offer to support my research, I would be really grateful if you would leave a comment. Also appreciate (re)tweets in order to spread the net.

Many thanks in advance,

Ady

“Codermetrics” – could be the solution I was looking for

I’ve just got my copy of “Codermetrics: Analytics for Improving Software Teams“, by Jonathan Alexander. I’ve had a very quick skim through and initial thoughts are that this is going to be an interesting read and a worthwhile purchase.

I’ve been struggling with the best way to measure the efficiency and effectiveness of software development teams, having tried a number of approaches and found them lacking. The approach presented in “Codermetrics” is a novel approach and one which I am keen to evaluate.

The Codermetrics principal is not based on performance reviews (though the metrics can be used in performance reviews) – it tackles the issues at a lower level and in a way analogous to how the performance of members of sports teams is measured. As well as concentrating on individual performance, it includes metrics for an individual’s contribution to the team, their flashes of genius and their responsiveness to issues.

The metrics are grouped into 3 areas:

  • Skill metrics (measuring core skills);
  • Response metrics (analysing the ‘fall-out’ from a product release);
  • Value metrics (combinations of the above to measure the values that individuals bring to the team).

The choice of skill metrics is, well, unique, in my experience, and this is where the analogy with sports teams is most obvious. I like the analogy, the metrics and the reasons given for choosing them.

Once I’ve had a good read through, I’ll provide a more thorough review. Suffice it to say that I’m really quite keen to try this out.

Ady

A Quick Review of Scrivener

In a previous post I mentioned that I was starting to use Scrivener to manage the authoring of larger documents. (By larger, I mean anything that you have to think about and structure – regardless of it’s actual word count, I guess.)

I’ve just finished using it to create a document (2000 words) and I have had a really good experience.

A pile of books I no longer use

Image by Ady Coles (flickr)

I started, as I always do, with a mind map (MindManager) of what I wanted to write, and used this as the basis for the structure of my Scrivener project. As I was going through the process of writing the sections, I messed around with the structure so that it made more sense on paper – the mind map was structured (categorised) in a different way to how I wanted the information to appear in the document. Fortunately, this is really easy in Scrivener. Actually, ‘fortunately’ isn’t the right word, since Scrivener’s USP is that you can do just this – create your document as a series of snippets and then move them around to your heart’s content.

Once I had the (empty) structure, I used the cork board view to add synopses to the various sections of the document. I think this was the only time I made use of this view, though I can see how it would be used more for creative writing projects. Or maybe my document was just too small for me to need to go back there.

Things I found really useful were:

  1. The split screen. I had a horizontal split with the outline view of the document in the top part. The bottom part contained the document or section (as a scrivenings view) that I was working on.
  2. Word count targets. If you have a feel for how much you want or need to write, being able to set targets is great. How ‘well’ you are doing is shown in the outline view and you can set growl notifications if you are really going for it (or don’t have a split screen in order to reduce distractions).
  3. It saves your work. I know that this is the OS X Lion way of the future, but not many apps yet support it. Scrivener supported it pre-Lion and it’s nice not to have to worry about it (another distraction removed).

I found it really refreshing to be able to see the structure and the content easily. And I can’t stress enough how natural and easy it was to move items around.

 

The only area I was let down was with the finishing. But this is not scrivener’s fault. Scrivener is designed for ‘serious’ writers – of books, scripts, etc – and it’s formatting options (called compiling options, in Scrivener) are geared to the creation of proof copies, final copies for publishing, ebooks etc. In the end I created a custom compile and output as RTF. If I’m going to seriously use this application (and I’m fairly sure that I will) then I’ll need to come up with some document templates and compilation options of my own.

The manual is second-to-none and I would also recommend “Writing a Novel with Scrivener” [Kindle Edition] by David Hewson, which is very readable and useful.

I’m sure I’ll have more to say about Scrivener in the future but, for the time being, that’s all. If you’ve found this post useful, or wish to add your experiences to mine, please leave a comment.

Ady

GWD: Getting Writing Done

Over the years I’ve tried many methods and tools to help me do things better. Most recently I’ve been concentrating on ‘Getting Things Done’ (GTD), which I’ve found to be very beneficial in managing my time (and, well, getting things done). I use the Pomodoro technique to time box my activities during the working day and use tools such as Evernote and Flipboard to manage my thoughts and information streams.

Where I’ve not yet found a suitable solution is when it comes to writing. And here I mean medium-to-large, structured documents, be they blog posts, reports or whatever. Up until now I have been using mind maps to help organise my thoughts but I find that I tend to become trapped in the structure I originally lay these thoughts down in. I’ve been looking for something more specific to the writing process and have discovered Scrivener.

I initially gravitated towards Scrivener because of its separation of content and format, the benefit being that you can concentrate on the words and structure of the document without unnecessary formatting getting in the way. It also has a full screen mode whereby you can completely immerse yourself in the job at hand without distraction, though this, along with pretty much everything else, is completely customisable.

I’m very impressed with the User Manual that comes with the application – I’ve nearly read it end-to-end and will have to go back and re-read some of it, but it’s easy to locate specific information, and so works well as a reference.

The range of formatting available is also comprehensive; it comes with a number of templates for screenplays, scripts, and a host of other formats; and can output in HTML, RTF, for input into other writing / publishing applications, and also ebook and mobi formats for iPad/Kindle etc. And, obviously, you can modify existing templates or create your own.

As of now, I don’t have a lot of experience with it, so I may be singing it’s praises a little too early, but I’ve started a couple of projects with it and I am finding it a lot better than previous methods I’ve used. I’ve installed the Index Card app on my iPad and have been synchronising my writing across to it when I’m away from my laptop computer – great for train journeys – and this is working well for me.

Scrivener is a Mac-only application (beta versions for windows/linux here), so it’s not going to be the solution for everyone, but I’m hopeful that it’s the solution for me.

Update – 17th August 2011

There’s a follow-up post here with the results of my first end-to-end use of scrivener.

Ady

 

Help me become Agile

Hi everybody,

I’m looking to find a software company in the Sussex area (or London) that is using Agile development methodologies, and which wouldn’t mind accommodating me for perhaps a day to look at their processes in action. I’m particularly interested in:

  • Scrum-based development
  • A company that is not Rails/Grails based
  • Is managing, to some extent one or more of the following:
    • Automated testing,
    • Automated deployment,
    • Database migrations,
    • Development management software (such as Pivotal Tracker, but not necessarily)
  • Brighton area, but anywhere in Sussex or London would be great

I’m hoping that there are altruistic, sharing companies out there that will take me in and show off their practices. I’m keen to move our development further up the ladder to full ‘agility’ and would appreciate the time and others’ experiences in making the right choices.

Many thanks in advance.

Please contact me directly through any of the contact points on my about page.

Also, if this is not for you, but you know of someone who may be able to help, please send them a link to this post.

Ady

Gathering KPI data

A long time ago I said that I would be talking about Key Performance Indicators (KPIs) for Software Development departments. What with various other commitments, holidays and the rest, it’s not happened, and looks likely to be happening on my company’s blog when it does.

That said, I do want to put down some thoughts regarding my experiences so far in trying to consolidate data from ‘the top’ (roadmaps & strategies) and ‘the bottom’ (timesheets) and getting them to meet in the middle (KPIs).

Operator error

The essence of what I want to do with KPIs is measure accuracy, efficiency and cost. In order for any measurement to be done we need to capture ‘actuals’ – time accrued against work packages – and compare that to what we (I) estimated they would take. This necessarily leads to the need for all relevant parties to complete timesheets. Fortunately, this has been accepted in good spirit and, although I do have to provide a gentle reminder once in a while, I’m receiving completed timesheets. (Timesheets are paper-based. This was by choice, as we couldn’t find a suitable application that would meet our requirements and also because we wanted to trial and streamline the process/data before committing to any particular system.)

On the other side – the estimates – I have a rather natty spreadsheet on which I put requirements, break them down into work units / stories (with estimated effort) and assign them to staff. I can then assign each requirement to a Year and Quarter and watch pretty graphs go up and down with estimated capacity / slack in the department, which allows me to rehearse ‘what if’ scenarios in scheduling meetings. (Our strategies and roadmaps are ‘agile’. Are yours?)

My problem is getting the twain to meet. My experience thus far is:

  1. I can’t read other people’s writing.
  2. People aren’t necessarily following the instructions about how to fill out the sheets.
  3. Mistakes are made.

(The last one of the above is not specific to paper-based timesheets, but mistakes can be made in writing the sheet and in me reading the sheet. With an application-based solution there would only be one human in the process.)

So far, getting the timesheet data into my all-singing spreadsheet has proved both time-consuming and though-provoking; the main thought being “there must be a better way”.

Another way

In a nutshell, I really need to get it all automated. This is not going to be easy as I don’t think there’s anything in the market that will do everything I want, and even a mash-up will need a central co-ordination hub. I would love to be able to piece already existing applications together and will be investigating solutions for each tier of the process, but I do believe that there will be large chunks that won’t be available or, if they are, won’t be suitable.

First step

So, I’m going to start a ‘hobby’ project, concentrating on the aspects that are most pressing – getting timesheet information into a database that I can use to compare against what I already know from my spreadsheet. This will involve investigating the timesheet facilities available in other intranet applications we use (our CRM has timesheet functionality, for instance).

And then

If I can borrow or build the timesheet functionality I’ll expand upon that to incorporate stories, requirements, products etc. into a coherent, strategic software development management application, again integrating external systems (Pivotal Tracker / Lighthouse / our CRM) where possible.

My head’s buzzing with ideas, but I need to stay focussed on the essential. I’ll keep you up-to-date with developments.