Part 4 of a 10 part series of 10 Lessons on becoming a business that will survive the Internet age.
Create differentiation amongst a sea-of-sameness by working your imagination hard. Creativity is always on-trend. It never goes out of style and it’s one of the few things in life that has international appeal.
At the outset, one may find it’s difficult to differentiate one software company from another. We have wrestled with playing in a sea-of-sameness and plotted the following course by considering the following industry dynamics in developing our differentiation
- There’s a dearth of great software engineers and an enormous supply vs demand gap
- Product delivery is most often late
- Product quality is below par from all aspects (reliability, scalability, and usability)
- The pace of the introduction of new tools and methodologies is frenetic
So how do we go about addressing the 4 industry dynamics listed above?
- Our key differentiator is our software engineering team. Their motivation is of paramount importance and it’s a journey without a destination. We accept the fact that good software engineers will be sought after by our competitors and never get in the way of one of our team exploring whether the grass is really greener on the other side of the fence. We also leave the door open for them to return and several have, all the better for the experience. No golden handcuffs as it’s an artificial way of retaining our talent. Check our blog on Motivating Knowledge Workers Part I and Part II for more detail. Software engineers want to be challenged, be exposed to new technologies/industries, try new roles and maintain their marketability. We have been focusing on multi-skilling our team for several years now in preparation for the inevitable shift to DevOps which is finally being adopted by our clients. Most are loyal to our industry first and their employer second. We are passionate about “lifetime learning” and provide time off for further studies, sabbaticals, travel and anything broadening that’s relevant. The minority of software engineers pursuing money above all other are not our ideal team member; let them go to the highest bidder. As many of our software engineers fall into the “millennials”, their motivational drivers need to be understood which we are endeavouring to do.
- Our industry is moving away from the “2 year project” whereby the time it’s ready for production, it’s out of date. Agile has become the defacto development methodology but has many guises.
- Our goal is to have a project specific development environment up and running in 1 hour.
- Our Agile adoption of fortnightly deliverables called Sprints, vetted by our clients, means that we regularly check that we are on track and the agreed acceptance criteria of each deliverable have been met. You can’t go too far wrong in 2 weeks, can you?
- We also manage inevitable change through prioritization at the start of each sprint. Where changes are major we perform an impact analysis to assess the effect on people, time-lines, and costs and reset accordingly.
- Delivery Management has been under our spotlight for the past 2 years and will continue to be so for the foreseeable future as we accept we’ll never reach best, only better.
It’s really all about communication, regular stakeholder communication.
- In addition to the above we address product quality by:
- Adopting an approach called test driven development (TDD) which, as the name implies, tests are defined before development commences to ensure all defined outcomes are catered for.
- Applying metrics agreed with our client related to the code quality which are reviewed at the end of each sprint
- Working with the product user in building the User Experience (UX) so they are committed through involvement.
- Via our AWS partnership we are able to test our solution without any hardware constraints which is typically under-configured minimizing risk associated with scale and response times
- And we are prepared to “contract for quality”
- We manage the balance between the introduction of new technologies with the time taken to adapt and adopt them whilst still meeting our client timelines. The time for this is factored into our development sprints. Several of our team are hobbyists by nature and perform research and development in their own time. Introducing new technologies into our clients’ world both differentiates us from the code-cutters and opens up new opportunities to exploit those technologies under a client engagement. Do our team feel they are being left behind by us not being a technology leader? We think not.
We thought we would check whether striving for uniqueness is true to our DNA and echoed in our core values and believe it fits naturally and perfectly.
10 Lessons on becoming a business that will survive the Internet Age