A Software Development Revolution: Dell Takes on a Unique Agile Methodology
Today’s businesses need to respond to digital disruptions fast.
Rapidly changing technology and evolving customer needs require a new way of developing application software — one that is more agile, lean, collaborative, flexible, even more fun.
Dell Technologies is committed to taking on this challenge as we strive to meet customer needs, provide a more satisfying team member experience, and stay ahead of our competitors. About a year ago, we began an effort to train our developers in a revolutionary approach to development.
At Pivotal, we call this approach the Pivotal Labs methodology.
Pivotal’s cloud-native platform and the Pivotal Labs methodology drives software innovation for many of the world’s most admired brands. Today Pivotal is driving a global technology movement transforming how the world builds software.
The Pivotal Labs methodology encompasses agile, lean, collaborative, and iterative approaches. It offers a unique way of achieving these things and delivering a better customer experience as well as a more satisfying team member experience.
Whether or not your organization uses Pivotal, here are the highlights of how we’re putting the Pivotal Labs methodology to work and what we’ve learned in the process.
Pivoting to Agility
The IT industry has been moving towards agile software development for more than a decade to replace the cumbersome waterfall application development method created in the 1970s; the once-standard “monolithic” approach to building applications by setting rigid specifications and building the code and business logic in one big complex binary can no longer keep pace with today’s internet-driven market.
However as organizations have moved towards a “microservices” development approach of building applications in smaller chunks, application creation can still take months to complete and is still not responsive to business clients’ changing needs. Once developed, the resulting app may no longer meet the needs of clients who requested it.
If you want to achieve a truly user-centric design, you have to change how you build and deploy software. The process begins with looking at how your developers capture user requirements, connect with customers using the product features, and incorporate their feedback into your development cycle.
You also need to ensure the right technology is in place to leverage cloud native, an architectural principal who helps developers write applications that maximizes the use of cloud environments. This approach reduces time to market, increases customer responsiveness and cuts operating costs. Also, your cloud native applications need to be on a platform that supports iterative and fast deployments using Continuous Integration and Continuous Development (CICD). The Dell Pivotal Lab uses the Pivotal Cloud Foundry technology stack, along with the Pivotal software development methodology, to enable our digital transformation.
And finally, you have to have the right development teams in place that have the right mindset — passionate and motivated individuals who are inclined to share knowledge.
Building a New Development Culture
In the Dell Pivotal Lab we are building a new development culture, centered on embedding customer feedback directly into the development process. We have also built a creative development cycle with technology that allows us to use customer feedback to make modifications to the features of our product and put it back into production so our internal customers can reuse it instantaneously. As a result, we have reduced production time from weeks to days.
Our methodology focuses on people, process, culture and custom software development practices.
The Product Team in the lab is comprised of three roles: Product Managers, Product Designers and Developers. These roles are part of the core team that is 100 percent dedicated to the product. SMEs-type of roles exist outside of the core team, including analytics, infrastructure, security, etc. These roles provide support to the core team in mitigating the release, security, infrastructure and other challenges.
The Product Developers define a long-term product vision and test that vision through delivery of production code. In this user-centric design model, the product team communicates with users to ensure feature delivery is driving the business and customer goals. The team is fully autonomous and owns the business outcome for their products.
Each new core team member joining our lab undergoes a 12-week learning period. They, in turn, train the next set of team members in the methodology as part of an exponential effort to expand the approach companywide.
At the heart of our lab, people share ideas and collaborate cross-functionally. We don’t micro-manage but drive business value by focusing on customer outcomes rather than following stale specifications or a mandate from an authoritarian external control. We leverage a modern cloud platform, a modern development process, and the power of Big Data to continuously drive innovation.
A key distinction in our collaborative approach is pair programming, in which two developers code side-by-side in a test-driven process. They build tests for every story they write and automate those tests through the CICD pipeline. Rather than having a quality assurance team test results after a project is completed, developers are accountable for quality. This testing effort by the developers reduces the number of gates before production deployment.
And perhaps most importantly, a business partner joins the development team in the lab to collaborate on requirements and make real-time changes during the coding process. We write code expecting that it will change tomorrow and we build to adapt.
Our process yields better quality coding with fewer mistakes in less time than traditional development. It also creates a better customer experience and a more fulfilling process for development team members.
If your organization is working to revolutionize the way you develop software, here are a few essentials to keep in mind:
- The lab facility is very important. You need to have an independent, open space area to collaborate that promotes an agile and innovative culture.
- Your agile transformation should be a top down and bottom up alignment – everyone should understand why they’re doing it and how it is going to impact them.
- Work in hybrid model until the transformation is complete.
- Fully support people in the lab and make sure there is no outside interference.
- Expect managers and leaders to emerge from the lab to feed career growth.
Changing the way your organization builds software will take time and innovation. Ultimately, however, it will enable you to build high-quality software at start-up speeds and create happier customers and employees in the process.