background preloader

Project tecniques

Facebook Twitter

You are NOT a Software Engineer! - chrisaitchison.com. You are not a Software Engineer. 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? Do people expect estimates (or are they promises in your organisation?) On exactly how many flowers will have bloomed in one years time?

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? Unlike a skyscraper, your garden will grow weeds. I am a Software Gardener. So are you. 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. 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. It has an odd name and when you look at a typical example it can be difficult to see what is going on. 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.

A Gantt chart is simply a plot of start and end times. So that's it. Consider for a moment a task. 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.

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. Just get an end users, an expert in the business subject, the project owner and a Developer. 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. Make your projects smaller. A small project means that you will probably complete it satisfactory an on time. 5) Mistakes are a way of learning Remove your blame culture. 6) Smaller teams Linked with smaller projects are smaller teams. 7) Let the system evolve Just gather the top level requirements. 8) Something has to give.

Death to Best Practices. Can we please put the whole term “Best Practices” to rest now? 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. (Read more: 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.

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. 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]. The challenge is to find out how to make it work for you. 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. Software There are many ways to share your screen.

Arquitecture