Monday, 13 September 2010

Continuous Delivery / DevOps

Something that I particularly enjoy about living in London is the time that I have each morning and evening during the commute between home and work for reading on the Underground.

One of the books that I am currently reading is Continuous Delivery - Reliable Software Releases Through Build, Test, and Deployment Automation. I found the first chapter acted as a timely reminder for my recent resignation. To paraphrase, skillful and experienced team members getting bogged down with manual deployment processes doesn't make for a fun and productive environment.

The first half of this week has been dedicated to updating 7 existing websites, and launching a completely new one. So far it has been relatively painless, but tiring.

Sunday, 5 September 2010

The continuous learning process

I think that software development is an amazing industry to be involved in.

I see my university studies as having been just the start of the learning required to be a successful software developer. It gave me a background to the way software can be developed, and an appreciation for how operating systems, networks and relational databases function.

Back in the 90s software engineering was taught with a significant focus on the "Waterfall Model", but in this day and age of unit testing, continuous integration, iterative development and frequent releases I'd be reluctant to be involved in any project that even mentioned "Waterfall".

The power and availability of IDEs and related build tools have come a long way too. Eclipse and IntelliJ IDEA with their various plugins and integrated updates are amazing, particularly compared with using Notepad or UltraEdit and a Makefile.

On the social side, blogs and Twitter have opened the world up so that almost any Joe Bloggs can learn about the thoughts of respected leaders and upcoming pioneers in the field, and contribute to discussions.

Wednesday, 23 June 2010

Countdown to holidays

After a solid year of working, I will be taking a break and doing some proper travelling - instead of just weekends away.

Having given the required 8 weeks notice at work and received confirmation of the necessary approval of a director, the first week of accommodation and transport has been booked and discussions are well underway for options for the following two weeks.

Hopefully that volcanic activity in Iceland will not flare up again.

Thursday, 17 June 2010

Only so many hours in the day

Oh the joys of the software industry.
  • Analysis
  • Design
  • Estimation
  • Implementation
  • Testing
  • Deploy
  • Maintenance

Just another day.

Sunday, 13 June 2010

Youtube videos

A few years ago I used to carry my video camera around quite a lot.

I uploaded some clips to YouTube:

http://www.youtube.com/sounie


Eventually the novelty wore off, so I generally only have the camera with me for weddings and other big events.

Today I had a look around the "Insight" section of my YouTube account and discovered that a YouTube rival site has embedded some of my video content. If it was an individual on Facebook or something like that then I wouldn't mind, but this appears to be completely uncredited and scraped directly from YouTube.

I've now disabled embedding, but it appears as though the site may have taken a copy of the content - very naughty.

Wednesday, 9 June 2010

Language in software development

While reading the Martin Fowler Refactoring book on the tube yesterday, I got to thinking about how programming languages are similar to general written and spoken languages.

Here are a couple of examples:
  • Terms that mean the same thing, but are called different names (synonyms).
  • Terms that share the same name, but mean different things (homonyms).
Much like written English, it requires a certain amount of context to determine the meaning of a term within a block of code.

Having a "Ubiquitous Language" within a system, as detailed in Domain Driven Design by Eric Evans, helps to ensure that developers use unambiguous terminology that even the end users of the system should be able to comprehend.