Modern Product Development

Software Products are unique beast. They become the fundamental driver for half-trillion dollar companies or they get lost in the electronic graveyard with no users (sometimes losing a billion dollar on the way). 
So, given such vast variance of +$500,000,000,000 to -$1,000,000,000 in value creation, Product Owners/Stake-holders should be focusing on assembling the most skilled development team on earth. But, while building the most important component of their success, they burden themselves with arbitrary constraints they put on themselves, with some pretty outdated thinking.

1. They try to build a local team from their local city: Considering that Software Professionals are in high demand, and most cities really have small populations, and all the good developers are already taken by other firms in the city, Mathematically, this is the worst approach to hiring. The odds are heavily stacked against your success of building a talented local team.

2. They try to outsource software development to external vendors: Typically done by selecting a vendor. So, the vendor with the flashiest presentation or marketing gets the contract without a single thought to what team will eventually be building the software. Vendors are also mostly incentivezed to run-up the costs, accept unnecessary requirements and hire average developers to do the bare minimum. With this approach you’d also be giving away many of your core competencies, control and direction of the product development.

3. They do the search themselves: Organizations simply don’t have the tools to reach the global network of talent, interview them and get the best out of them.

4. They want traditional employment commitment: Software Developers are creative. They have ebbs and flows in their motivation and productivity. Ideally, all organizations don’t know how to manage this bursts of creativity and low-productivity cycles. The entity that knows when they are motivated and when they are not are the individual themselves. But, if an individual chooses only to work on the days he is feeling creative or productive, the practice is frowned upon or worse get the individual fired.

5. They expect ‘employees’ to keep up with every latest technology: As devices, platforms, services, languages, methodologies, frameworks explode it becomes humanly impossible for a single organization and it’s employees to keep up with everything including it’s best practices and anti-patterns. Global Talent force is going to specialize and you can’t hire every expert in your firm because it is counter-intuitive to small-product teams.

So, how do we solve this problem?. We have mastered the art of building resilient, robust, scalable computing systems. Why not apply the same principles to building an organization. Microservices architecture is a growing trend in many successful software organizations. Microservices help decompose modules/tasks as service APIs that can be designed with tools/languages/platforms that excel in solving that one thing. You can then decompose your teams by Microservices talking through APIs and Service calls. Once you decompose your software in this manner, there is no reason for you to build the entire team in-house due to the problems mentioned above.

- We know there exists a global pool of talent who are exceptional in what they do.
- We know this talent pool can be made available, on-demand.
- We know this talent pool has excess capacity that can be utilized.
- We know this talent pool are independent, organize themselves and have workstations, tools and licenses in their reportoire that you don’t have to manage yourself.
- Due to advances in Microservices architecture and practices, we know we can break tasks/modules into individual microservices and assign them to independent talent pools with clearly defined APIs and SLAs.
- A good Microservices architecture would even lend to competitive bidding on talent pools providing APIs and SLAs.

However, this distributed, highly-performant, indepedent agent/actors need a smart service broker to 
- select the best agent among a pool of available ones.
- continuosly monitor their performance and SLAs.
- bring up/down agents based on reliability, demand.

Organizations now only have to interface with the Smart Service Broker to not only access the best global talent with specialized skills, but also make them available on-demand to scale up and down/pivot the product development chain.

Companies like TopTal act as Smart Service Broker giving you a higher chance of success in the increasingly competitive marketplace.

Modern Software Organizations have to adapt to this style of creating products or get crushed by firms who would do so.

Software Developers on the other hand, should join a Software Development Community where they can lend their expertise to the talent pool and help companies to leverage your unique talent.