I have several projects I support which had/have long development times. When I say a long development time, I don’t mean bug fixing and support issues. I mean continued development of significant new features or modules.
In this blog post I have two examples, a long-term project for a client which I have been building and adding to for 18 months and the API for Costs to Expect which I have been working on for several years.
One of the significant issues with long-term development projects is ensuring the App design remains consistent. There are many reasons why you might want to change or tweak the design of your App. The original design might not be right as you get further into the project. You think of a better way of doing something or a new tech comes out which could significantly improve things.
The client matters
What you do very much depends on the type of project.
If the project is a personal project, you are free to do what you want. With personal projects we are free to decide when architectural changes make sense and when to do them, it is bliss.
However, if the project is for a client, things get much more difficult, and it depends on your relationship with the client. If you are a contractor, the best you can do is submit a request and explain any benefits.
When you are a freelancer or know you will be supporting the project for a decade or so, it is complicated for a different reason. If it will benefit you to makes the changes, you must decide if it is worth just buckling down and making the changes. There have been instances where I have made changes at my own cost. Many a time I have spent a week or so making some major changes knowing that they are going to make my life easier later.
Some of the time I’ve made these changes for ‘free’, some of the times I’ve been paid. For me, it depends on who benefits. If the only benefit is my time in the future, I tend to make the changes for free. If the changes have the potential to make my life easier and somehow enable additional features in the future, I suggest the changes and try to get paid.
There is no perfect answer. We can’t always predict when we are going to support an App for over a decade. We can also get it wrong. There have been times when I’ve adapted the design and it turns out, it wasn’t for the best.
We are all still learning, it’s one of the things I love about our field. My advice, go for it; if you get it right, you win. If it doesn’t turn out how you’d hoped, chalk it up to experience.