Releasing Software Developer Superpowers

Article is aimed at anyone looking to gain the edge in their software development team creation or advancement in the digital age. Concepts can be applied outside of sw dev at some level. Open to discussion – views are my own.

UX is not just for Customers

User Experience is an ever growing component of product development, with creating user centric design paradigms to ensure that personalisation and consumer/market fit is achieved. From a development team view, leveraging some of the user experience concepts in how they work can achieve operational efficiency, to accelerate product development. For example, how is the experience for each of the developer personnas in your team? How do their days translate to user stories? Can interviewing the development community lead to creating better features for your development culture?

Build Products not Technology

Super important. Sometimes with developers, there is an over emphasis on the importance of building features, a lot of the time for features sake. By keeping the lens on the value or “job to be done” for the customer in the delivery of a product at all times can ensure you are building what is truly needed by your customer. To do this, select and leverage a series of metrics to measure value for that product, along with keeping your product developent in series, and tightly coupled to your customer experience development.

Leverage PaaS to deliver SaaS

This sounds catching but its becoming the norm. 5 years ago, it took a developer a week of development time to do what you can do in Amazon Web Services or Azure now in minutes. This has led to a paradigm shift, where you being to look at the various platforms and tools that are available to enable the developers to deliver great products to customers. Of course, there will always be custom development apps, but you can help your developers by getting them the right toolkit. There is no point reinventing the wheel when OTS open source components are sitting there, right? Products like Docker and Spring and concepts like DevOps are bringing huge value to organisations, enabling the delivery of software or microservices at enhanced speed. Also, the balance between buying OTS and building custom is a careful decision at product and strategic levels.

“The role of a developer is evolving to one like a top chef, where all the ingredients and tools are available, its just getting the recipe right to deliver beautiful products to your customer.”

Create Lean Ninjas!

shutterstock_215389786 - Copy

Evolving the cultural mindset of developers and the organisation toward agile development is super important. Having critical mass of development resources, plus defined agile processes to deliver business success  can really reshape how your organisation into one where value creation in a rapid manner can take place. However, its important to perform ethnographical studies on the organisation to assess the culture. This can help decide on which agile frameworks and practices (kanban, scrum, xp etc) can work best to evolve the development life cycle.

Implement the 10% rule

Could be slightly controversial, and can be hard to do. Developers should aim to spend 10% of their time looking at the new. The new technologies, development practices, company direction, conferences, training. Otherwise you will have a siloed mis-skilled pool of superheros with their powers bottled.

However, with lean ninjas and effective agile company wide processes, resources and time can be closely aligned to exact projects and avoid injecting randomness into the development lifecycle. Developers need time to immerse and focus. If you cant do that for them, or continously distract them with mistimed requests – they will leave. If you can enable them 10% is achievable.

Risk Awareness

shutterstock_331041884 (Large)

We are seeing an evolution in threats to enterprise all over the world, and in a software driven and defined world, getting developers to have security inherent design practices prior to products hitting the market can help protect companies. Moons ago, everything sat on prem. The demands of consumers mean a myriad of cloud deployed services are adding to a complex technology footprint globally. If they know the risk landscape metrics from where they deploy, they can act accordingly. Naturally, lining them up with business leaders on compliance and security can also help on the educational pathway.

Business and Technology Convergence

We are beginning to see not only evolution in development practices –  we are also seeing a new type of convergance (brought about by lean agile and other methods) where business roles and technology roles are converging. We are beginning to see business analysts and UX people directly positioned into development teams to represent the customer and change the mindset. We are seeing technology roles being positioned directly into business services teams like HR and finance. This is impacting culture, wherby the saviness in both directions needs to be embraced and developed.

shutterstock_334013903 (Large)

Growth Mindset

We mentioned mindset a lot in the article. That because its hugely important. Having the right culture and mindset can make all the difference in team success. As Carol Dweck talks about in her book “Mindset”, you can broadly categorise them into two – growth and fixed. This can be applied in all walks of life, but for team building it can be critical.

In a fixed mindset students believe their basic abilities, their intelligence, their talents, are just fixed traits. They have a certain amount and that’s that, and then their goal becomes to look smart all the time and never look dumb. In a growth mindset students understand that their talents and abilities can be developed through effort, good teaching and persistence. They don’t necessarily think everyone’s the same or anyone can be Einstein, but they believe everyone can get smarter if they work at it.

Creating a team where being on a growth curve and failures are seen as learning can really enable a brilliant culture. As Michaelangelo said “I am still learning”. Especially as we evolve to six generations of developers. How do we ensure we are creating and mentoring the next set of leaders from interns through to experienced people?

Check a Ted talk from Carol here – link.

And most importantly … HAVE FUN!

Man vs Machine: Why the competition?

With the continued evolution of industries such as Data Science and the Internet of Things, there is a mix of excitement and fear amongst the populous. Excitement for what they can do for our lives or businesses, but fear of what it will mean for humanity.

The fears are normally sourced from the media or some childhood movies we watched where pretty large robots take over planet earth. Quotes of “Will the robots take our jobs?” “There will be nothing left for us to do with the evolution of the computer”.

In reality a synergy between humans and technology can lead to better all round solutions, rather than in isolation. This is something that is rarely considered in current engineering circles. With so much technology choice, why would we need to stupid humans?

A brief story to set the tone

As far back as 2007, I hosted questions like this as part of the day job. Increased automation in manufacturing is a natural spore for questions of this nature. An example of this was an computer vision application that I built for a Masters dissertation whilst working for Alps Electric (one of the coolest companies in the world). It was inspecting graphics on buttons for correctness, both in finish and symbol.  Naturally this was a task done by humans historically. We were using classification techniques to perform the task on the images, and the receiver operator characteristic curves (ROC Curves) showed that the classifier was right 93% of the time, which was a pretty good first pass result. Please note that this was a time that data science was called “doing your job”.

We wanted to achieve 100%, so in order to improve the algorithm, we decided to use the main source of intelligence in the room, the humans! By presenting the failures to the operator on the production line, and asking them a particularly simple binary yes/no “Is this a genuine failure?”, saving their response and the original image, we were able to get the classifier to close to 99% accuracy.

This proved something that I felt was always the case. Humans and machines can work in tandem as opposed to viewing it as a competition. With the rapid advancement of technology, along with the obsession with using technology to optimize our lives, I pose a question: Have we forgotten how these can compliment each-other? If any data science/machine learning application can get an accuracy level of 70% for example, we try to squeeze extra accuracy out of it through “fine tuning” the algorithm. Perhaps we could present the results in some way to a human for final classification?

Bring it all together

Last April, I tried to draw out how I saw Data Science, IoT and Intelligence (both computing and human) fit together, which is shown below. It is an evolutionary map of sort, where we have always had the verticals and data modalities (data type), and we began on our data journey by building some simple data processing/mining applications (either by us manually or by using algorithms). And lots of the current challenges in data science can be solved by this tier. However, we are seeing an increase in the requirement to bring in machine learning applications to solve more advanced challenges. This is a natural evolution towards artificial intelligence,or deep learning. If we look right down the map in a holistic sense, this is where the top class really comes to the fore.

Humans are by our very nature, true intelligent, which evolves are we do, and also NOT very good at mass processing. Computing on the other hand are not so intelligent to begin with, but are incredibly good at mass processing. A natural hybrid would be true intelligence and mass processing, and that should be the aim for modern Artificial Intelligence companies/ enthusiasts.

Picture1

Now I am not saying that all applications in IoT and Data Science can be solved like this. Of course there will be exceptions. But there are some real tangible benefits to this approach. Consider the area of street crime. Imagine every camera in a city feeding video into a central location, and asking a human to monitor it. In reality, this is actually happening individually per building, park, mall, where security guards are monitoring areas in real time. With advancements in video analytics, it was feared that technology would replace humans. But it is not the case. What has happened as more devices/cameras hit our streets, it becomes impossible to monitor everything. By using advanced video analytics/machine learning capability to flag the anomalies to security, it means they can monitor a bigger space.

Thankfully, one of the high growth areas in technology is in Human Machine Interfaces (HMI’s), and there are some really good examples on how humans and computers can work together. Daqri‘s smart helmet is one such product, which is the worlds first wearable HMI. Their mandate is to use technology to improve and optimize how we work. by integrating compute, sensors and computer vision technology into a well designed helmet. Work, in the Future.

FullSizeRender (35)

As we enter the next phase of digital transformation, ask yourself: How can humans improve/compliment the work of technology in your application?

Ideate! Innovation strategy in your company

2010ThinkBigStartSmall

“Innovation is hard. The larger your business, the harder it gets.”

Is the above statement true? Maybe. More importantly, does it have to be true? No it doesn’t.

One of the most common mistakes in large companies in respect to innovation strategy is that when they see themselves as “big”, they need a “big” innovation model to succeed. Consider the life-cycle of a company. First, in startup mode, they are agile by default. They don’t look out past 2/3 months, with many looking at bringing new features to their product so they can secure the next round of funding. Once they grow and mature, and longer term goals become a priority and less financial pressure results, innovation slows down. The longer it does so, the more investment is needed to get it back.

Whilst having a large business means sharing knowledge becomes more of a challenge, there are advantages to size and scale. For one, diversity is a critical component in innovation, and the larger the company, generally the more diverse it is, its how you identify and partner that diverse thinking that can differentiate your innovation strategy. To enable a large organisation to reach its true innovative capacity, there are a number of approaches that can be used to reach it. Some of these are introduced below.

Disruptive Innovation Task Teams

A concept to consider when maintaining your innovation strategy is placing disruptive innovation task teams into your existing business model, whereby they act with limited budget and resources, look no further than 2/3 months out and are agile by nature. The also have a keen eye on not what the customer wants now, but what they will need in the future ( but not too far out 6-12 months). Planting a seed team like this can result in cross pollination with other product teams around it, and this will increase your companies overall ideation. A key component of these teams is to ensure there is diversity present, with both seasoned campaigners that have the business history, along with new generation employees that can bring outside thinking to the table.

Agile. Rinse. Repeat

dilbert2666700071126

One of the first aspects that is critical to success is to introduce agile as a mantra. This isn’t easy in large companies, and this is why an upfront investigation must be performed to assess how you inject it. Unfortunately, agile has been targeted mainly at software development teams, but it can have uses in other business teams, such as finance and human resources. However, it must be adapted to suit. No agile paradigm fits all. And within certain types of projects, if agile is not adjusted, then success becomes difficult (Read Ken Collier’s book on Agile Analytics for any data intelligence readers).

Think Lean

Think fast, learn fast, fail fast. The concept of Lean Startup is now well known, and has huge advantages. Lean startup is a method for developing businesses and products first proposed in 2011 by Eric Ries. Whether in your large organisation or in the start up space, most new ideas/ concepts fail. T he odds are not with you: As new research by Harvard Business School’s Shikhar Ghosh shows, 75% of all start-ups fail. A key component of the lean startup philosophy is to favor experimentation over elaborate planning, working with the customer over intuition, and incremental design over big design planning meetings. The aim is to build a minimum viable product, and iterate and pivot on that product. For more on this, check out the website.

LeanStartupLoopClassic

Innovation Identity

Do you know your companies innovation identity? Innovation identity is the intersections between your companies technology, your innovation teams, the market(s),  and other departments of the company. Two main innovation models seem to emerge:

  1. Thriving innovation model means the innovation culture is at the cornerstone of the corporate company; the company develops interactions both across internal departments and with external resources to complete its innovations. Cisco, Sanofi, 3M, Renault, and the open source way of working are championing this model.
  2. Dedicated entity model involves the creation of an autonomous unit pursuing new and uncertain activity lines. Lockheed with its skunk works, At Google for instance, innovation is at the core DNA, which links them to the first model; reversely, as they enable small teams to investigate disruptive innovation in a flexible framework, they are really close to this model
Open Innovation

The identity of innovation has been gradually shaped by multiple interactions between different levels of a company with other external groups/organisations. And not just any type or size of external companies. The people you collaborate with must be suited to the market entry you are trying to achieve. Although they may exist within a market you are trying to enter, sometimes it is key to identify the technology required to enter that market, and even look at university collaboration to fulfill the technology requirements for market penetration.

In the way to define our innovation mantra and strategy,  a look at the 10 facets defined by Jeffrey Philips can also help, positioning where you want to be:

  • open vs closed innovation:
  • skunk works vs broadly participative;
  • suggestive vs directed, incremental vs disruptive (also stretching innovation vs “all included” innovation vs disruptive innovation);
  • centralized vs decentralized;
  • product / service / operations / business model, funding, wisdom of crowd vs defined criteria and experts.
In closing..

Creating and maintaining the innovation strategy at your company is both a challenge and an evolution of not only your company, but also the internal personality and dynamic of the individuals who contribute to it. The direction you take and how you make the journey is down to you.