5 Minute Read

Agile: The Way to Develop Great Software

Agile development practices let companies experience the power of rallying entire teams behind a defined process that embraces inclusivity and drives productivity. It’s not just one thing; it’s many efforts in concert that makes Agile so powerful. Because how well your team develops software can make or break your business in a market, ensure the sum of your parts is greater than the whole with Agile.


What is Agile Software Development?

Agile software development is a set of methods that result in fast and frequent delivery of value to your customers. It promotes well planned, small iterations by highly collaborative cross-functional teams. Agile methodologies provide an alternative to the sequential development and long release cycles traditionally associated with waterfall.

Agile is a good fit for any size business (from startup to enterprise), any size team (small to large) and most projects. That said, organizations adopting Agile must be culturally ready for the change and committed to coaching or training.


Deploy Deploy B u i l d B u i l d A c c e p t A c c e p t P l a n P l a n Iteration 1 D e s i g n D e s i g n T e s t T e s t Deploy Deploy B u i l d B u i l d A c c e p t A c c e p t P l a n P l a n Iteration 2 D e s i g n D e s i g n T e s t T e s t Deploy Deploy B u i l d B u i l d A c c e p t A c c e p t P l a n P l a n Iteration 3 D e s i g n D e s i g n T e s t T e s t


Why Agile Matters

Greater transparency

Everyone from the stakeholders to the team producing the work (testers, developers, designers, project managers, etc.) is involved and clear about what’s being worked on right now and what still needs to be done.

Greater predictability

Work is clearly prioritized and time boxed in tight iterations that ideally are 1-2 weeks in length. New features are shipped frequently and more predictably, as part of a continuous delivery cycle.

Great flexibility

When priorities change due to feedback or new business needs, inserting and reprioritizing stories in the backlog can occur instantly.

Focus on business values

The stakeholder determines the order in which features are built, making it clear to the team what’s most important for the business.

Focus on users

User stories are designed to meet the needs of real users. Each feature that is designed and developed delivers incremental value.

Focus on quality

Since all work is broken down into manageable units and frequent builds, testing and reviews are more focused. Quality is improved as a result of being able to locate and fix defects more easily and more rapidly.


IDC Market Analysis Perspective: Worldwide Application Development Software, 2016.

"Agile [is] now the default approach for new software development.”

Al Hilwa
Program Director, Application Development Software, IDC



Considering Agile? What to Keep in Mind

Although the world is moving away from traditional Waterfall methods toward Agile software development, successfully adopting Agile requires a change in workflow mindset and acknowledgement of common pitfalls. Before getting started, get some answers:

Is your team onboard?

Agile is a very collaborative process. Because it’s not a heavy-handed, top-down workflow, adoption needs to happen at all levels. Get people excited. Explain how this will benefit the organization and them, and reassure them that this is not simply a fad. An investment in Agile drives innovation, flexibility, and shorter development cycles.

Are you trying to go it alone?

If you are, stop. Find people on your team that are familiar and excited about adopting an Agile workflow. Get Agile implemented at a grassroots level and provide sufficient sponsor support to address any possible resistance that this change may inflict on other teams, management, and business partners. Ideally, hire a consultant to help get things started and moving in the right direction. This will help reduce risk and increase time to adoption.

Is training in place and how will people practice?

You need a plan to train your team. The promise of reduced process can lead to poor implementation. Agile is a set of methodologies that must be learned and adhered to for teams to succeed. But more important than simply training is having your team learn by doing. Have them work on an actual project to learn and reinforce the benefits of Agile in a very tangible way.

Is everyone prepared for processes and tools to change?

What product management tools do you presently use and are they suited to Agile? Are you ready to implement Test Driven Development (TDD), Continuous Integration (CI), and Continuous Deployment (CD)? Have you included your design and UX teams? The larger the organization, the more hearts and minds you will need to bring together. Adopting Agile is immensely doable, but done well, changes permeate through the entire organization.

“Do or do not, there is no try.” —Yoda

Is everyone willing to embrace the change?

There's no doubt about it, adopting Agile will be disruptive. Mistakes will be made. People will try to solve problems in standups, teams will want to over prepare and plan, technical debt will be allowed to accumulate, and tasks will be assigned to individuals. At the end of the day, as long as your team is committed to becoming Agile, you will work through the challenges and find your way forward (through plenty of retrospectives).



The Big Differences: Agile Versus Waterfall
Common Situation
Agile Approach
Waterfall Approach
Project manager wants to add a new feature during development The additional feature is added during a weekly sprint to ensure the product meets the latest customer and business requirements. Developers have already completed the design and construction stages of development, preventing the addition of a new feature until the next project planning stage which occurs in six months.
A show-stopper bug is found during testing The bug was found at the end of a weekly sprint. In anticipation of finding minor issues, the development team adds the fix to the next week’s sprint calendar and the project moves ahead on time and on budget. The bug was found during the final stage of development, affecting the way code was written throughout the project. The unanticipated rescheduled time to fix the bug—and upstream code—will mean the project will come in late and over budget.
Customers or clients offer feedback Feedback is incorporated into the design collaboratively and incrementally before the next sprint is run. Feedback is documented but will not be incorporated into the project until the next release.



Agile and Extreme Programming

Extreme programming is considered a flavor of Agile, one that is uniquely adapted to the needs of development teams. Elements of Extreme include: programming in pairs, automated testing of all code, avoiding programming of features until they are actually needed, simplicity and clarity in code, expecting changes in customer requirements as time passes and the problem is better understood, and frequent communication with the customer and among programmers.





Agile at Pivotal

More than 25 years of experience has taught us that productive people are happy people. At Pivotal, Agile in the form of Extreme programming permeates every department and guides everything we do from the start to the close of the business day:



A Week at Pivotal
Breakfast

Grab a hot plate, some juice or coffee and hang out with fellow Pivots.

9:00 AM
Company Standup

Get a quick update on interesting events and a chance to ask others for help on a problem.

9:06 AM
Team Standup

Meet with your team to share what you worked on the day before, and what’s on tap for today.

9:15 AM
Start Designing

You could be leading user research, wireframing, designing visuals, coding a prototype or teaching it all to your client.

9:25 AM
Lunch


Tech Talks

Enjoy a catered lunch and learn something new be it about code, process, design, or a new startup.

12:30 PM
Ping Pong break!
3:48 PM
Weekly Team Retro

Every Friday, your team will meet over beer and wine to discuss what went well, what didn’t, and how to improve for next week.

5:00 PM
You're Done!

We don’t have overtime or weekend work. On Fridays, some Pivots meet for Whiskey Club.

6:00 PM


Because we work in an Agile methodology, our teams:

Conduct standups and iteration planning meetings where we discuss, prioritize, and track stories using our product management tool, Pivotal Tracker

Use pair programming to help insure better quality code

Write code, then test and deliver it via a continuous integration/continuous delivery tool, such as Concourse

Deploy everything onto Pivotal Web Services or Pivotal Cloud Foundry for customer approval

Continually iterate with our proven, scale-out data management systems

Just glimpsing into a day in the life of a Pivot, you’ll notice all of our processes—large and small—are optimized for people; people working in small teams that are empowered to perform at their best and deliver quality results at a sustainable pace.



Pivotal Moments
The Home Depot achieved its IT goal of delivering value faster by deploying Pivotal technology and simultaneously overcoming key people and process challenges.
Pivotal's platform is a lynchpin in the creation of a fast moving, agile and innovative product culture at Merrill, delivering results with unprecedented speed and precision.
Seeking ways to reduce technical debt, Comcast teamed with Pivotal to intensify its focus on agility, elasticity, velocity, resiliency, customer experience, and experimentation.

Learn
Quiz Your Company: How Well Are You Setup To Develop Great Software?

Build
Try Pivotal Tracker free for 30 days

Connect
Register for a free hour of Pivotal Consulting

Looking for more Agile related resources?