What classifies a massive application? It’s more not what you will release initially, but how long will it remain in development? If it’s a tool that will have a team of engineers working on it for years it’s definitely going to end up massive. The tool and techniques describe can be used in any angular application, it focuses on maintainability and quality. It enables teams to move fast by providing a strong baseline to develop against. The backstory: Last year I was tasked with figuring out if we should move away from our current front end technologies in our next product. My team and I did a lot of research around emerging client side technologies and ultimately decided that Angular was the right choice for us. The primary deciding factor at the time was the focus on testing provided by angular as it and Ember were basically equivalent otherwise. Ember guys control yourself, this was over a year ago and I’m sure things have changed. So from here I will describe the tools and techniques used to ramp up that project as they have been working well for us.
There are several factors that impact that complexity of projects. There first is the number of people on the team developing the product. When you have several developers all working on the same code base you have to pay close attention to how the code is being written. There are simple things that can be done that make maintaining and developing the project simpler and more enjoyable.
Image 1: This is what the developers think they are developing. Image 2: This is what the PM has planned for the project (secretly hoping to get there before shipping the MVP product). Image 3: This is what the designers want to build Image 4: 2 years later this is what you end up with based on customer demand.
A salmon swimming upstream was the only image that came to mind for this task. The salmon is the lowly developer trying to sell the team on using tabs vs spaces or semicolons or something.