DZone
Thanks for visiting DZone today,
Edit Profile
  • Manage Email Subscriptions
  • How to Post to DZone
  • Article Submission Guidelines
Sign Out View Profile
  • Post an Article
  • Manage My Drafts
Over 2 million developers have joined DZone.
Log In / Join
Refcards Trend Reports Events Over 2 million developers have joined DZone. Join Today! Thanks for visiting DZone today,
Edit Profile Manage Email Subscriptions Moderation Admin Console How to Post to DZone Article Submission Guidelines
View Profile
Sign Out
Refcards
Trend Reports
Events
Zones
Culture and Methodologies Agile Career Development Methodologies Team Management
Data Engineering AI/ML Big Data Data Databases IoT
Software Design and Architecture Cloud Architecture Containers Integration Microservices Performance Security
Coding Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks
Partner Zones AWS Cloud
by AWS Developer Relations
Culture and Methodologies
Agile Career Development Methodologies Team Management
Data Engineering
AI/ML Big Data Data Databases IoT
Software Design and Architecture
Cloud Architecture Containers Integration Microservices Performance Security
Coding
Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance
Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks
Partner Zones
AWS Cloud
by AWS Developer Relations
The Latest "Software Integration: The Intersection of APIs, Microservices, and Cloud-Based Systems" Trend Report
Get the report
  1. DZone
  2. Culture and Methodologies
  3. Agile
  4. Top 10 Lessons Learned From 10 Years in Agile

Top 10 Lessons Learned From 10 Years in Agile

Mitch Pronschinske user avatar by
Mitch Pronschinske
·
Dec. 10, 12 · Opinion
Like (0)
Save
Tweet
Share
27.72K Views

Join the DZone community and get the full member experience.

Join For Free

I recently had the chance to catch up with Robert Holler, the CEO of VersionOne, an Agile tools and training company that recently celebrated their 10 year anniversary and a new release of their agile platform.  Robert and his colleagues got together earlier this year and discussed the lessons they had learned through ten years of insight into agile software development.  "Hopefully we've learned more than just ten lessons," Holler told me humorously.  He said that these were just many tiny lessons boiled down to 10 big ones and without further ado, we got right down to discussing the insights…

1.  Simplicity is Sophistication.  


Given the complexity of software and the people that make up software organizations, there needs to be a constant focus on simplicity and cutting out what isn't absolutely essential.  Agile, while conceptually simple, is quite difficult. For all but very small teams in a room, it’s more about organizational change and complex communication networks than changing to Sprints and daily stand-ups. It also requires multiple, different business functions to change the way they work together; including business stakeholders, product planners, developers, testers, etc.Agile, while conceptually simple, is quite difficult. For all but very small teams in a room, it’s more about organizational change and complex communication networks than changing to Sprints and daily stand-ups. It also requires multiple, different business functions to change the way they work together; including business stakeholders, product planners, developers, testers, etc.  

Holler also said that when they were building their agile platform, it would have been easy to fall into the trap of building little extra features for each unique customer request, but they didn't.  It reminds me of a programming language that tries to solve every problem - they gradually become a nightmare to use.  

2.  Define your Rhythm.  


What are you doing on a daily basis so you don't have to have a ton of ad hoc meetings?  That's the main question you need to ask yourself in order to start cutting down on wasted meeting time.  Don't have someone ask a question and just start a meeting, wait until the predetermined meeting times.  It will force people to be better prepared for them and to get their points out quickly and concisely.

3. Agile is Fundamentally About Discipline.  


Holler has heard Agile described as undisciplined or ad hoc.  Sometimes even 'Cowboy Coding'.  He said that truly agile teams are exactly the opposite.  The truth is that agile teams are only successful when they thrive on automation and are very disciplined. The best agile teams display much more discipline than most other teams, especially in the areas of planning, unit testing, test driven development, continuous integration, and test automation.

4.  Software is Hard to Scale, Agile is Not.  


Skeptics suggest that agile does not scale well.  In truth, it’s more that software development does not scale easily – especially if a shift in organizational mindset hasn’t taken place or if there a lack of discipline. Agile is as good as anything at scaling to multiple teams, projects, programs, and portfolios.  Focus on business goals not the little things.

5.  Think of the Big Picture.   


Start big, and then start to think about individual features and bugfixes that you will complete.  Systems thinking is important here.  Long-term agile transformation success requires a consideration of the system as a whole before making changes to its parts, or else the change will likely be fraught with risk.

6.  Lose the Religion  


Initially you should try to be an agile purist, but do what makes sense for you.  It's important that you distinguish between compromises that must be made, and other cases where you just need to be more disciplined.  

Apply agile practices internally and see which ones survive.  NASA, for example, would need to do all it's iteration and testing on the ground and understand that refactoring can't take place anymore once the software is launched into space.  You need to adapt agile to your need.

Your dev team might also operate on different cycles than the business side, so you need to work with that difference in rhythms and get both sides as close to agile iterations as possible.  This can also make it tough to do automation, but most devs find it beneficial to have some agile practices rather than none.

7. Continuous Focus on Business Value.


Many agile teams get caught in the weeds of a technical story's delivery and velocity at the expense of overall business value, company and project goals, and customer experience. Learn from this mistake -- don’t do it.  People in the team need to focus on the bigger picture in order to minimize project confinement.

8. Agile - It's Not Just For Software Anymore.


It's actually conducive to the agile transition of a development department if other parts of the organization (Ops, Business side) can also make transitions in their teams to being more agile.  It's easy to find success stories of agile methodologies in business units, system administration, and even design/UX.

9. Continuous Planning. 


Winston Churchill said "Plans are of little importance, but planning is essential.”  Plan on a daily basis if possible so that the adaptability is inherent in the day-to-day workflow.  Keep your focus on maximizing value.  Product roadmaps must be adaptable to the tactics of agile, but roadmaps remain an important mediator between tactical trends, and the long-term vision for the product.

10.  Doing agile and being agile aren’t the same.


Sometimes you don't do "Agile" but some people as agile as you've ever seen.  You should be doing agile but you should also 'be agile' which includes things outside "agile."  These are the little things that individuals do each day to be more efficient.  

Hope these refresh your view on what it means to be Agile.

agile Software development IT

Opinions expressed by DZone contributors are their own.

Popular on DZone

  • Keep Your Application Secrets Secret
  • 4 Best dApp Frameworks for First-Time Ethereum Developers
  • Comparing Map.of() and New HashMap() in Java
  • Benefits and Challenges of Multi-Cloud Integration

Comments

Partner Resources

X

ABOUT US

  • About DZone
  • Send feedback
  • Careers
  • Sitemap

ADVERTISE

  • Advertise with DZone

CONTRIBUTE ON DZONE

  • Article Submission Guidelines
  • Become a Contributor
  • Visit the Writers' Zone

LEGAL

  • Terms of Service
  • Privacy Policy

CONTACT US

  • 600 Park Offices Drive
  • Suite 300
  • Durham, NC 27709
  • support@dzone.com
  • +1 (919) 678-0300

Let's be friends: