The London Java Community: Distilling Agile for Effective Execution - Omar Bashir

Distilling Agile for Effective Execution

The objective of agility in software is to fulfil evolving customer requirements while delivering high quality software on time and within budget. A number of agile methodologies have been developed promising to achieve this objective. But their adoption has proven to be challenging leading to cargo culting and bikeshedding practices that challenge project success. A review of Agile Manifesto and principles of agile methodologies distills them into 3 fundamental components. This talk suggests that a disciplined pursuit of these fundamentals while adopting agile practices increases an organisation’s chances of success.

Reduction is key to agility. It is of fundamental consequence to not just iteration planning and execution but in all aspects of project execution. Smaller stories simplify estimation, implementation and pivoting in addition to reducing intra-team dependencies. Smaller merge sizes reduce risk of merge conflicts and enable focused reviews leading to better code quality. Fewer technical dependencies make software flexible. Fewer inter-team and intra-team dependencies increase flow. Finally smaller team sizes focused on features and functionality enhance team cohesion and reduce inter-team dependencies.

Focus ensures that teams’ eyes are on the prize. Sprints need to be thematic focused on delivering end-to-end features that can be demonstrated to customers to obtain and act on feedback. Large features may not be completely delivered in a single sprint. In such cases, sprints may be grouped into packages which incrementally deliver features. Hence packages, unlike sprints, may not all be of the same length but all sprints within a package must focus on incremental completion of a feature. Cross functional teams tend to deliver end to end features better than technology specialist teams.

Finally, visibility is essential for teams to review their progress and make arrangement to reduce risks. It is important to create necessary and useful information radiators for the team members. These include sprint dashboards showing the progress on stories, burndown charts and defect trends. Additionally RAID (Risks, Assumptions, Issues and Dependencies) and logs dependency matrices highlight risks that teams face in achieving their targets.

*** This is a placeholder for the event being run on Eventbrite. Please register with your full name here: www.eventbrite.co.uk ***

About the speaker

Omar Bashir graduated as an avionics systems engineer and transitioned to software engineering after his post graduate education. He has developed systems in diverse domains ranging from defence and telecommunications to logistics and finance. He has been programming in Java since its release in 1996.

Agenda

6.30pm: Registration and pizza sponsored by GridGain

7pm: Distilling Agile for Effective Execution - Omar Bashir (approx 45-60 minutes)

8pm: Q&A

A huge thanks to Skills Matter (skillsmatter.com) for hosting us, and our sponsors GridGain (www.gridgain.com) for the pizza!

Don't forget to let Skills Matter know you'll be attending by signing up on their website - skillsmatter.com. This allows them to allocate us the correct size room and send you a code so you can register quicker on the night.

This event is organised by RecWorks on behalf of the London Java Community.

You can see our latest jobs here: recworks.co.uk.

You can see our privacy policy here: recworks.co.uk

Continue the conversation at our Slack Group: londonjavacommunity.slack.com

Sign up here if you're not a member: bcrw.typeform.com

to (Europe/London time)

More details and tickets: www.meetup.com

Imported From: www.meetup.com

More Information

The London Java Community (LJC) is a group of Java Enthusiasts who are interested in benefiting from shared knowledge in the industry. Through our forum and regular meetings you can keep in touch with the latest industry developments, learn new Java (& other JVM) technologies, meet other developers, discuss technical/non technical issues and network further throughout the Java Community.