The home of the haikulator



Sentence Generators
My Stand-up & gigs
The Coding Craftsman

The Musical!
Incredible Productions


Previous Posts

Two Oh Six
Something of a non-day, really
Is Technology Killing The Art Of Conversation?
A Day In The Life
Fabulous Relationship
Missing the musicals
They say size is not important...
The Soul of Wit
Sites For Sore Eyes
An Almost Total Downer

Blog Archives

October 2001
November 2001
December 2001
January 2002
February 2002
March 2002
April 2002
May 2002
June 2002
July 2002
August 2002
September 2002
October 2002
November 2002
December 2002
January 2003
February 2003
March 2003
April 2003
May 2003
June 2003
July 2003
August 2003
September 2003
October 2003
November 2003
December 2003
January 2004
February 2004
March 2004
April 2004
May 2004
June 2004
July 2004
August 2004
September 2004
October 2004
November 2004
December 2004
January 2005
February 2005
March 2005
April 2005
May 2005
June 2005
July 2005
August 2005
September 2005
November 2005
December 2005
January 2006
February 2006
March 2006
April 2006
May 2006
June 2006
July 2006
August 2006
September 2006
October 2006
November 2006
December 2006
January 2007
February 2007
March 2007
April 2007
May 2007
June 2007
July 2007
August 2007
September 2007
October 2007
November 2007
December 2007
January 2008
February 2008
March 2008
April 2008
May 2008
June 2008
July 2008
August 2008
September 2008
October 2008
November 2008
December 2008
January 2009
March 2009
April 2009
May 2009
August 2009
September 2009
January 2010
March 2010
April 2010
May 2010
June 2010
July 2010
August 2010
September 2010
October 2010
November 2010
December 2010
January 2011
February 2011
March 2011
April 2011
May 2011
June 2011
July 2011
August 2011
October 2011
December 2011
February 2012
March 2012
April 2012
May 2012
June 2012
July 2012
March 2013
April 2013
May 2013
June 2013
July 2013
August 2013
September 2013
October 2013
December 2013
January 2014
February 2014
March 2014
May 2014
July 2014
January 2015
February 2015
March 2015
April 2015
May 2015
June 2015
July 2015
August 2015
January 2016
February 2016
March 2016
April 2016
May 2016
July 2016
August 2017
January 2018
August 2018
September 2018
July 2019
August 2019
May 2020
June 2020
July 2020
August 2020
September 2020
December 2020
January 2021

Monday, May 8

Inventory in Software Engineering

I wrote this as a comment on another site, but thought I'd stick it here too. If you don't give a damn about software, then don't read it.

I consider inventory to be any software that we've written but have not yet sold a single copy of. Much like the manufacturing-equivalent, where unsold stock sits in a warehouse, this software has cost us money to make, and has also cost lost-opportunity of the workers who made it, who might have made something else that we sold instantly. Although, unlikely manufacturing, it probably takes the same amount of physical storage space for lots of inventory as it does for none (i.e. about the size of a server rack, compare with differening sized warehouses in the physical world), in my opinion, it is still highly undesirable to let completed code remain unsold and unused. If there's no way this code can be sold now, then perhaps that's an indication that something else should have been made first. However, there are some reasons I've seen given for why "we cannot sell this yet".

1. We're waiting for more features, to make a bigger impact.
2. Selling it in this state will give a false impression of the software.
3. Selling it at this stage will give a negative impression of the company.
4. Deploying a new solution is so much work that we can only do it infrequently.

The first three of these come into the category of "minimum marketable feature set", something which makes sense, perhaps, in the earliest stages of a product, but which, in a mature offering, could be a falsehood, born out of not understanding the customer, having customers with unrealistic expectations, or to cover up inadequacies in the requirements gathering process. If a single story cannot add some measurable value to the product enough to make it worth buying by a customer who needs that value, then the story may not be worth implementing.

Number 4, however, is a compelling argument. If the process of deploying a new version requires a lot of people, training, communications, supporting materials and so on, then perhaps the deployment shouldn't be done that often, though internal deployment should continue, to ensure feedback etc.

The big problem with inventory, apart from lost opportunity cost, is that it goes out of date. Technology moves, as does our understandings of user requirements. Something I made last year may no longer cut it as the solution a customer wants to use. So, the sooner the code is out of the door, the better. I reckon it's best to get in there first with something simple and coherent, than join the party increasingly late with something brilliant, but costly.


Blogger Steve said...

I would disagree with your defense of point 4. If the distribution and installation process is so difficult and time consuming, work should be done it make it easier.

OR, you could release a complex to install client/server system on the understanding it will only be installed by trained, technical, sales staff. Then hold it back for a month beyond its very tight release date because some muppet being deliberately obtuse can't follow the instructions. You could then disrupt the whole development team to get half the company working on an improved installation then stop them one day short of a really good solution in favour of a re-edited help file. Then wonder why you don't sell anything...

A more compelling argument is if the installation is expensive for the *customer*. If they have to shut down their operation for a day to update and retrain then you have more of a problem with frequent updates. Of course, you can do work to make this easier too, but it's harder to break the customers' perceptions that its going to be expensive for them.
Of course, that doesn't mean you shouldn't release often, but if you do you'll need to be able to support multiple versions in the field simultaneously.

To my mind, inventory in software development is any feature, use case, user story (delete as appropriate) that you've fully implemented and tested but not made available to customers.

7:09 AM  
Blogger Ashley Frieze said...

That story about the complex-to-install system sounds pretty horrible. Which company was that? I'd be surprised if they were still in business. Sounds really incompetent to me. Mind you, I guess it would have been worse if the product was a product which they put loads of effort into developing, despite the fact that nobody wanted it or would be prepared to buy it. In fact, it might have been even worse if the product required code-sharing with another project, and also imposed a series of arbitrary changes to that code which required extensive re-testing for no additional benefit to anyone.

I don't work for a company like that.

However, I do work for a multi-national company who sells its software through a large network of resellers. In order to deploy the product for the resellers to sell, there needs to be a huge deployment programme. To short-cut the program, and maybe release earlier, would be seen as excluding some of the resellers. So, there is a very slow rollout process, that should not be run very often. This is not true for increments/point releases in the same way.

I agree. Ideally, you should not have a huge latency/inertia downstream of the development process - that would be akin to MacDonalds making your hamburger and then putting it on a remote control car and driving it from the kitchen to the serving desk, some 6 miles away; it somewhat misses the point.

8:01 AM  
Blogger Gavin Hope said...

It's pretty basic: when writing/presenting something it is important to think about your intended audience. Knowing this I can only interpret the last comment as being somewhat smug.

12:29 PM  
Blogger Ashley Frieze said...

Maybe not intentionally smug. More liklely to be the I'm-pissed-off-and-frustrated version of "I told you so".

If only things were different.

12:34 PM  
Blogger Steve said...

I'm with Ash
I'm &**&^*@ heartbroken - but with distance and hindsight it all seems so damned obvious.

8:05 PM  

Post a Comment

<< Home

All content ©2001 - 2020 Ashley Frieze