Code Ownership vs. Technical Debt 1

Lately I’ve been thinking about technical debt and how it’s accumulated over the course of a company.  Thinking back upon many a software project, it’s becoming clear that a lack of decisive ownership can be a significant contributor to technical debt and frustration amongst teams. Ownership goes far beyond just writing a design doc, or doing the odd code review. ...

The Perfect Agile/Scrum Standup Redux

It’s been two years since Daniel Markham shared his thoughts on the daily standup. One of the good things about successful software development approaches, is that what worked 7 or 8 years ago is still applicable today, despite significant changes in technologies, platforms and work environments. The How may be different now, but the What and Why remain the same. Case in point, ...

One Simple Rule for Better Meetings 4

Witnessed this again first hand last week, and although this is well known it’s been rare to see in practice. Hold your meeting in a room just big enough to fit the required participants while standing.  There should be a white board on one wall (at least), projection on the front wall, and a narrow standing height table ...

Combining Heroku and Dropwizard: My Own Personal Staging Environment

Think what you may about Heroku, they do offer a free tier and it’s trivially simple to use it as your own personal staging environment. In this post, I’m going to outline what it takes to take a simple Dropwizard service and get it running in Heroku. For anyone looking for a bit of depth, this example ...

Planning and Executing Effective Agile Sprints 2

I’ve written previously on running better retrospectives in agile environments, in this post I’m going to pull back a level and share some thoughts on planning and executing the sprint itself. Firstly, it’s important that each sprint is of a consistent duration (2 or 3 weeks has worked best in my experience, 1 week may work but ...

Writing Your 2.0 Resume 1

Over the last ten years, I’ve spent a lot of time reviewing resumes and hiring engineers. If you’ve ever been a part of the process, you already know the importance of the resume and putting your best foot forward. As members of the hiring team, we very rarely know the candidate aside from what is ...

Three Ways to Make Your Agile Retrospective Relevant Again

It’s tough to affect positive change within a team (or even individually) without a frequent feedback loop, that’s the point of holding retrospectives in an agile environment. All too often, retrospectives become yet another habitually boring meeting every two or three weeks.  It doesn’t have to go down like that, and I’ve included three tips ...

Building Monolithic Apps (Django?), Not So Fast.

Over the past few years (in my personal life) I’ve built a handful and launched a handful of web applications, predominately built using Django.   Professionally, I’m a JVM developer who’s witnessed the shift from Java to alternative JVM languages like Groovy (I’m a big time fan), and a growing disfavour with full stack frameworks like ...

Building Better Software: It starts with a philosophy.

The process through which software is built and shipped varies widely between companies, and even teams within any one company. As a student of software leadership and an active participant on many development teams, I’m going to share a few thoughts on how I believe we can collectively build better software.   Follow me on ...

Oracle (RDS) + CentOS 5.8 (EC2) + Python (cx_Oracle)

For anyone looking to have Python (CentOS 5.8) connect to an Oracle instance (RDS): $ yum install python26 python26-devel (I was using a Rightscale instance that already had the EPEL repository loaded, otherwise see: http://fedoraproject.org/wiki/EPEL) $ wget http://pypi.python.org/packages/2.6/s/setuptools/setuptools-0.6c11-py2.6.egg#md5=bfa92100bd772d5a213eedd356d64086 $ sh setuptools-0.6c11-py2.6.egg $ easy_install-2.6 pip $ pip-2.6 install virtualenvwrapper Add to /etc/profile export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python2.6 . /usr/bin/virtualenvwrapper.sh   export ...