“Businesses” want the software they fund to be done quickly and have as few “bugs” as possible.
Whether the business is selling the software or using it internally. They want lots of users and they want the software to work well for those users.
These goals appear to be in pretty good, but not perfect alignment.
Within the differences lie many of the problems which lead to under performing software development organizations. So what are the differences and what goes wrong?
Well one difference comes from the fact that businesses don’t ~really~ care about the platform or technology other than if customers are going to notice or care. Obviously if it will be cheaper and speed up the process thats great, but over the years the constant “new hotness” that pervades the software industry has taught them (generally correctly) not to believe the promises of faster, easier, cheaper.
Why doesn’t the new hotness deliver? It’s usually oversold thats why its hot. More specifically new technologies have undiscovered limitations and the best practices (or libraries or optimization tools) for them are not well established. It’s also harder (and more expensive) to fill out a team of developers who have any skills with the latest and greatest. Businesses generally have a hard time hiring developers to work on a technology thats not stamped all over their resume. (What else can you judge by?!?) Since its the new hotness these experienced developers are rare and unfortunately can be prima donnas.
That all sounds like I would be against going with the new hotness. That is not at all true.
Why? First because the new tools or languages are frequently based on good ideas and have value, it may just take a little time to realize that value. More importantly its because in the end software productivity comes from good, passionate developers that feel they are learning, valued and being challenged.
Working on the most recent software the business can afford (this varies by business on many factors) helps motivate the team. Its what other top notch developers are using. It’s where the interesting discussions are happening. It improves their resume. (If you think thats counter productive we need to have a talk.)
Next time I will cover a few basic ideas to help businesses address the challenges of supporting their software developers in their quest for the new hotness.