Why a software project takes time

Lego explorers
Every Lanedo employee is an experienced open source software hacker. The company has a strong history of helping customers to work with a wide range of open source software. As individuals or as a company, we have contributed to many different open source projects.

Yet, from time to time, we still face the astonishment when asked to explain why a given work will take two weeks or more. Or the customer is surprised that the two week project turned out to produce a handful of patches.

Why does it take so long for something that, in theory, is so simple and straightforward ?

The treasure hunt analogy

According to the legend, treasure is buried in a deep forest. It may have been there for years, nobody exactly knows. Tasked with finding the treasure and bringing it back, our valiant team of treasure hunters plunged in the jungle. Two weeks after, they reappeared, victorious. They explained that the treasure was buried in less than one meter of sand, in a previously unknown clearing near an old temple. The reaction they got was: “Why did it took two weeks to dig a hole in the sand?”.

Understanding the problem

You don’t walk in the forest with a shovel without first analyzing the information you have. What kind of equipment do you need? What are you really looking for? Is there any risk? Any danger?

When you contact us, we will first try to understand your problem and, more importantly, what solution you expect. This may seem obvious, but we need to put ourselves in your shoes. Sometimes, we are asked to fix a bug that doesn’t even look like a bug for other users! Each customer is unique, we will spend time exchanging emails or having meeting with you to really understand your needs. In some case, being able to reproduce your problem may involve several days of work just to build a setup similar to yours.

Last but not least, we will produce a solution proposal. If your problem is a crash, solving the crash is usually not enough. We also have to ensure that the application has the behavior you would expect. We also need to guarantee that the problem will be solved for you on your setup, not only on our engineers’ computers.

Estimating the problem

As you start to have a better vision of your treasure hunt, you need to think about logistics. Your explorers will need to survive in the jungle during the whole quest. Planning the supplies is a critical part of the mission.

We offer two ways of working with customers: We either bill by the hour or we offer a fixed price proposal for a given project (always sending a detailed weekly reports). When billed by the hour, the customer can control the project, choose how to react to problems. But there’s always a risk that the project takes more time than anticipated. That’s why some customers prefer a fixed price approach.

At Lanedo, we have developed a process based on the Three-point estimation method, effectively using the experience of each engineer. While this guarantees good estimates and allows for a good understanding of each task involved, it is also time consuming. Lanedo’s core values are high quality work, customer’s satisfaction and trust. We don’t want to cut corners.

Project Management

Before entering the forest, it’s best to check with the local authorities that you have the required permissions. Every project comes with a little overhead. We need to write a formal project plan and the legal related paperwork. We also need to exchange with you when we have questions or to inform you about our work.

The project manager is also responsible for setting the priorities to ensure that deadlines are met, planning the schedule across multiple projects and caring about all the boring details. When hunting for the treasure, you still need someone that will cook the diner, set up camp and ensure that flashlight batteries are fully charged every morning.

Even for a simple and short project, it is unavoidable to spend several hours on project management.

Investigating and solving the problem

At Lanedo, we work with some really big projects, like LibreOffice. Even an experienced hacker needs a lot of time to correctly identify an issue in such a mass of code. Digging is not a hard job. Knowing where to dig in a deep jungle is a lot more complicated.

When we have found a possible fix, we still need to test it. Which means recompiling everything and spending a sizable amount of time to ensure that there’s no regression. Unlike Indiana Jones, where everything always collapses at the end, we want the whole temple to stay intact after we have found the treasure.

Investigating the code, designing a fix that doesn’t break things and testing it, are very time consuming. A good hacker can sometimes spend hours and days without writing one single line of code.

Upstreaming

Last but not least, we will spend some time to ensure that the fix is good enough to be sent upstream. We will contact the community and submit the patch. This may involve some time to explain exactly the problem we are solving and how we are solving it. Often, we will need to write a unit test to ensure we test against the bug happening again in the future.

You’ve found the treasure, but you still need to make your way out of the jungle, carrying the finding on your back.

Two weeks for what appears to be some lines of code

At this point, it should be obvious that writing the code is only a very small percentage of the software project itself, like digging is only a very small part of a treasure hunt. If the result looks simple, then we likely did a decent job of it and found an optimal solution.

A two week contract is, after all, only 80 hours of work. If we had to clock our hours, I’m sure that we will discover that the total combined time we spent on all the items herein-above is a lot more than 80 hours.

But when you love, you do not count. If you are looking for passionate engineers to help you on your open source projects, don’t hesitate to contact us.

Share on Google+Tweet about this on TwitterShare on LinkedInShare on FacebookFlattr the authorBuffer this pageShare on RedditDigg thisPin on PinterestShare on StumbleUponShare on TumblrEmail this to someone

Lionel Dricot is a Belgian geek that studied computer science and artificial intelligence at Louvain-la-Neuve university. His main interests are user experience, future trends and chocolate. You can contact Lionel and his team for professional consulting on our contact page.

Posted in Blog Tagged with: , , , , ,

Leave a Reply

Your email address will not be published. Required fields are marked *

*