background preloader

Project tecniques

Facebook Twitter

You are NOT a Software Engineer! - chrisaitchison.com. You are not a Software Engineer.

You are NOT a Software Engineer! - chrisaitchison.com

You do not build skyscrapers. You do not build bridges. You grow gardens. You are a Software Gardener. Do you try to plan your gardens in such detail that you know where each leaf will be positioned before you plant a single seed? You probably have a good idea of what your garden should look like a week into the future. If you were building a bridge or a skyscraper and you told me, before you began, that you knew exactly how it would look when it was finished – I would believe you. So why do so many gardens fail, yet so many skyscrapers succeed? Remember that time when someone in your company unsuccessfully used an Agile gardening methodology, and then went around saying that it was horse shit that doesn’t work?

What is a Gantt chart? More than just a chart, a Gantt Chart is a UI used to model tasks with interdependencies to show how a project fits together.

What is a Gantt chart?

A Gantt chart control not only gives you an easy way of constructing a model but can actually do some planning for you. Sometimes you have to ask a simple question to get a simple answer. In most cases what a chart component does is fairly obvious but sometimes they can be a bit more mysterious. Even looking at examples only clarifies how the control can be used in specific cases not the general principles. So it is with the Gantt chart. In this article we look at the Gantt chart in general and to make things concrete we will use the Infragistics Gantt chart component. Download a free trial evaluation of the Windows Forms controls from the Infragistics site.

Cucumber - Making BDD fun. 10 way to Improve Your Software Development Process! 1) Less people in meetings Stop having those meetings with 10 people trying to resolve a problem or make a decision.

10 way to Improve Your Software Development Process!

If it's a technical problem then get a maximum of two relevant people at a Developers desk. Let the Developer show you a few options. Pick an option and let the Developer get on with it. The same goes for a Business problem. 2) No need for minuscule details Stop trying to document every minuscule detail in an effort to prevent failure. 3) Obtain user feedback Keep the end users constantly in the picture. 4) Smaller projects Big projects turn into NASA type projects. Death to Best Practices. Can we please put the whole term “Best Practices” to rest now?

Death to Best Practices

Apparently, according to this link (forwarded to me by John Dietz, thanks!) , the very place where it originated (or was best popularized, depending on your interpretation of history) has now seen the whole concept basically debunked: For example, Jim Collins’ blockbuster business book Good to Great, published in 2001, featured 11 supposedly great companies. All of them did extraordinarily well on the stock market for 10-20 years. But by 2008, when Steven Levitt posted Good to Great to Below Average on Freakonomics, two of them had died. The point is, best practices just don’t exist. Don’t believe me? (Unless you’re a fish. Point is… context matters, folks.

Blind application of best practices don’t work, as Tim Berry’s article quotes from Jim Collins’ book (my emphasis): Nine of the eleven companies remain more or less intact. Still think that the “best practices” idea might work? Tim says this well: Things you need to know before doing distributed pair programming. In the current market it becomes more and more likely that developers in the same team will not be in the same physical location.

Things you need to know before doing distributed pair programming

This is caused by outsourcing, but also other reasons like ever increasing focus on open source projects. In a distributed scenario pair programming has huge benefits over meetings and sending comments on issues around. It is (still) the fastest way of sharing detailed information between people, and it actually gets the job done where a meeting does not. The added benefit of pair programming in a distributed team is that it bridges the gap between the local team and the remote team that is caused by the fact that informal communication is impeded.

Research has shown that pair programming works in distributed teams [1]. As I touched upon in my previous blog there are a couple of things you need in order to to pair program with a remote pair. Hardware You need your hands free and a good audio connection, feedback loops and background noise are killing.

Arquitecture