June 25, 2021

Software Factory Best Practices
In a previous blog post, we discussed the basics of a Software Factory: a rapid, efficient, and automated approach to software development. A Software Factory team owns interrelated assets like reusable code, recipes for routine tasks, templates, and more that they unbox and use for every development project. A Software Factory maintains standards and metrics in order to make a steady stream of quality application deployments possible. Just like a production line of apps. Building your own Software Factory is a delightful thought right now, especially when stories of how the approach turned things around for the likes of Google, Amazon, Facebook, and, in the Philippines, Globe. Thanks to their decades-long exploration, failures, and success in application development, the rest of the world can learn from the best practices early adopters of Software Factory have discovered.  

Drop the waterfall mindset

In launching your first mobile application, it can be difficult to stop chasing perfection. Fashion retailer Nordstrom had the experience of designing a grand and intricate app for in-store use. It took them all of 2 years to complete the development, at which time competing brands were already miles ahead in innovation. Nordstrom learned their lesson. The traditional waterfall methodology of software development simply cannot catch up with the demands of the market. These days, they have small, agile teams focusing on a single backlog, an approach that allows them to make releases every month instead of every 6 months. Cloud-born companies even go as far as making a new release within seconds of the last one.  

Embrace cloud

Hardware acquisition and maintenance can slow down a software development project. Traditional infrastructure follows specifications that accommodate seasonal traffic and growth for up to 5 years. If you are a school supplies e-retailer, for example, you expect a surge in traffic at the start of the academic year. This can cause the budget to balloon for compute capacity that will be unused for most of the year. Moreover, building backup, high availability, disaster recovery, and security into the application will require an army of engineers. You don’t have to problematize these things when you design an application for cloud deployment. Cost is also more manageable, as you only have to pay for the compute power you need now, scale up when you have to, and scale back down as the traffic settles. Features like backup, HA, DR, and security come built in. Now you can focus on creating an app that is easier and more delightful to use than that of your competitor’s.  

Leverage automation

Quality assurance, code check-ins, builds, testing, and continuous integration are routine activities that can be done faster and error-free by tools and AI. Automating these tasks frees up the time and brainpower of your development team, making way for creativity and innovation without sacrificing speed.  

Mobilize small, self-sufficient teams

Rigid hierarchies and functional silos will hinder your Software Factory teams from quick decision making. Each team must have the following characteristics:
  • Has full-stack expertise
  • Knowledgeable in Agile methodology
  • Involved in all aspects of the development lifecycle
  • Has sense of responsibility over the code they deploy
When a Software Factory team is self-sufficient in terms of skills and understands their accountability, there will be no delays resulting from handovers, lapses, or playing the blame game.  

Embed resilience into your culture

Know that you will experience successes as well as failures. In starting a Software Factory approach to development, teams and stakeholders must be ready to respond to less desirable outcomes with a plan for continuous feedback and improvement.  When you are not bound by the concept of perfection but are always ready to receive feedback and act on it, your team will have the courage to be creative, to experiment, and to innovate. You don’t have to start from scratch. While most of the best practices discussed in this article are organizational in nature, it can take a while (or a big budget) to hire and train a full-stack development team. No worries! You can hire a Stratpoint Software Factory team and hit the ground running. Inquire about our mobile application development services, and we will help you get started. Email hello@stratpoint.com.