software development trends - presentation from epam systems' software engineering conference...
DESCRIPTION
This material was presented on EPAM's 2014 Software Engineering Conference in Minsk. I talks about current trends in the software development lifecycle, and processes and tools EPAM employs to address the challenges of scaling Agile, managing a portfolio of projects, and enabling continuous delivery.TRANSCRIPT
SDLC – Future Trends in Tools and ProcessesSDLC – Future Trends in Tools and Processes
Balazs Fejes (FB2)
Director, Product Management
Topics
Interesting Trends
• Processes: Agility vs predictability: Enterprise Agile Portfolios• Tools: VCSes going upstream vs Lifecycle tools going downstream• Release Management: True continuous delivery• If time permits: some other cool stuff
What is doing about these areas?
Processes: Enterprise Agile Portfolio
Agile is king!
Processes: Enterprise Agile Portfolio
• 99% of our clients are sold on Agile• From small projects up to large 100+ developer programs
• We at EPAM know how to scale and do distributed Agile• Organization structures, Scrum of Scrums• Coaching, tracking team work is solved
• Problem: large Enterprises give up (the illusion of) predictable planning• Or even worse: maintain detailed MPP plans, the least agile thing• How to handle cross-team dependencies?• Marketing, business needs dependable release dates • Many client (example: banks) have regulatory constraints on level of
auditing, quality control, documentation
• Solution: Enable Project Portfolio level, cross-team planning, road mapping, monitoring
Processes: Enterprise Agile Portfolio
SAFe Process Framework (Scaling Agile)• Program level governance• Top-down work package assignment• Roll-up progress tracking• Illusion of control is back
Program Portfolio Management Team• PMO• BA pool• Federal, cross-work stream architects• Release Management
Is it still Agile?• Decentralized, Rolling Wave planning• Agile Estimation and Sprint Planning• Self-managing Agile teams• Objective, code and KPI based measures
PORTFO
LIO
PROG
RAMTEAM
InvestmentTheme
Business Need
Architectural Need
Epic
Epic
Epic
Epic
Is implemented by
Story
Story
Story
Story
Story
Is implemented by
Story
Story
Project Portfolio Management Tooling
Software Development Lifecycle Tooling
• In the “old days”: SDLC: single-purpose tools, used by different project roles (BA, PM, testers, technical writers, developers)• Requirements management tool, Project Planning tool,
documentation tool, testing tool, IDE, build management tool
• Modern, Agile SDLC• minimize non-code artifacts• Roles not separated: developer can test, estimate, plan. Tester can
document requirement, implement test code• Minimize duplication
• Solution: Single, end-to-end platform for whole Agile SDLC
Software Development Lifecycle Tooling
Every tool vendor: Let’s build everything in!
Software Development Lifecycle Tooling
Software Development Lifecycle Tooling
Software Development Lifecycle Tooling
Not so great in Project Portfolio – no sub-projects
Software Development Lifecycle Tooling
Software Development Lifecycle Tooling
Software Development Lifecycle Tooling
Not focused on developers, super expensive
Software Development Lifecycle Tooling
Software Development Lifecycle Tooling
Software Development Lifecycle Tooling
Software Development Lifecycle Tooling
Software Development Lifecycle Tooling
Software Development Lifecycle Tooling
Software Development Lifecycle Tooling
• EPAM’s strategic pick is Atlassian• Self-hosting• Extensibility• Configurability
• Not cheap but affordable• We’ll fill in the missing, weak spots• Keep an eye on trends…
EPAM xPMC
Continuous Delivery
• How do you apply Agile to Release Management?• Traditionally the least agile aspect of development• Rigid quality gates• Multi-person approval cycles• Separate teams having access to Production environments
• Problem: On big projects, actual (Agile) development time shrinks by 3-4 months just to get into Waterfall Release Management cycle
• Solution:• Automation, automation, automation• Continuous integration, test automation, deployment automation,
data/schema migration• Fantastic quality to gain stakeholder confidence• Or at least rapid problem resolution
Continuous Delivery
Implications:• Preferably single
system for all aspects (requirements, tasks, workflows, bug reports)
• Smart branching strategies
• Ability to release single features
• Ability to roll back or switch to backup system
• Eventually cut out the middle men!
Continuous Delivery - xPMC
Other cool stuff on the horizon
PaaS – Web-based IDE - this is how we’ll work in a few years
Full-stack JavaScript
Thank YouThank YouBalazs Fejes (FB2)
Director, Product Management
hu.linkedin.com/in/fbalazs/
balazsfejes2
@fb2