In a previous life, I used to work as an engineer. I used to monitor hundreds of American cars being built every day in automotive plants all over the good ‘ol US of A. These plants were huge. You could walk from one end of the plant to the other, and actually end up walking a couple of miles. Some of these plants were so large that the freight trains would actually pull right into the building so parts could be unloaded right there. That’s how big these plants were. There would be millions of automotive parts stored in the plant that would be used over the following months and years.
Then one day, the Japanese came in and taught us about their ways. Companies like Toyota and Honda had developed a process where they would reduce inventory to save cost, time, and space. They called it “Just-In-Time” or “JIT”. What this meant was from now on, plants were only going to keep a limited amount of inventory on hand. Reducing the amount of inventory held in the plant lead to enormous cost efficiencies. Another benefit to JIT plants was that it allowed for change to our vehicles with minimal cost impact. If for some reason a part was being changed, we didn’t have to waste time and money on moving the old inventory out and the new inventory in. Now, we had a much more efficient system that saved time and money.
The “Just-In-Time” practice made its way into software development in the 1990s when the Agile Methodology was introduced. It continues to be the gold standard for the way we build software products today.
Software customers have learned that spending a considerable amount of time and money up front to determine the full scope of their product produces the same result as those pre-JIT American automotive plants: waste. They’ve started to ask “why develop an inventory of product requirements that could sit on the shelf for months or even years? Why introduce the risk of a high probability of them changing or not being used at all?”
The Agile approach allows customers, such as yourself, to focus their time and money on the immediate needs of the business. It gives you the flexibility to change as your market and business needs change. With Agile, customers and developers work together to build a product iteratively. In other words, as the features (or parts) get entered into the product backlog (or automotive plant), the platform is build “Just-In-Time”, thereby increasing efficiencies and reducing waste.
Instead of spending a considerable amount of time documenting your complete product vision, you can relax while your sofware development team focuses on coding and building the actual product rather than what it could look like on paper.
The need to change your product will happen. It is inevitable, so embrace it! Having requirements documented for the long term could end up being a waste of time. You could spend months documenting what the product will look like, only to have the market change or your stakeholders tell you they want to go in a different direction. It is important to stay lean as it will allow you to pivot when your business needs to.
Building software is still fairly new compared to other engineering disciplines. It continues to evolve as technology and the market evolves. A development team that understands how important it is to be efficient understands you can actually evolve to a point where you can be, just in time.