Yes, You Need Agile Architecture! @Dev Talks Conference Bucharest 11 June 2014

download Yes, You Need Agile Architecture! @Dev Talks Conference Bucharest 11 June 2014

If you can't read please download the document

Transcript of Yes, You Need Agile Architecture! @Dev Talks Conference Bucharest 11 June 2014

Yes, you need Agile Architecture

www.mozaicworks.com

Me

Adi BolboacProgrammerOrganizational & TechnicalTrainer & Coach

www.mozaicworks.com

A definition of Software Architecture

The set of structures needed to reason about the software system, which comprises the software elements, the relations between them, and the properties of both elements and relations.[1]

www.mozaicworks.com

Another definition of Software Architecture

Documenting software architecture facilitates communication between stakeholders, captures early decisions about the high-level design, and allows reuse of design components between projects.[2]

www.mozaicworks.com

Software Architecture

www.mozaicworks.com

Agile software development

Is a group of software development methods based on iterative and incremental development, in which requirements and solutions evolve through collaboration between self-organizing, cross-functional teams.

www.mozaicworks.com

The purpose of Agile

Incrementally add value

Deliver fast

Build the right thing

Quality software

Deliver enhanced value for customer

Maintainability

www.mozaicworks.com

1. Incrementally add value

Architect's skill: Translator

www.mozaicworks.com

1. Incrementally add value

Architect's skill: Translator

The architect should be a bridge between the business needs and the technical challenges

www.mozaicworks.com

1. Incrementally add value

Architect's skill: Mentor

www.mozaicworks.com

1. Incrementally add value

Architect's skill: Mentor

Constantly help the technical teams improve 1 to 1 meetingsExpress confidence and passion

www.mozaicworks.com

The purpose of Agile

Incrementally add value

Deliver fast

Build the right thing

Quality software

Deliver enhanced value for customer

Maintanability

www.mozaicworks.com

2. Deliver fast

Architect's skill: Simplifier

The architect should constantly look for solutions that simplify every increment delivered

www.mozaicworks.com

2. Deliver fast

Architect's skill: Risk analyst

www.mozaicworks.com

2. Deliver fast

Architect's skill: Risk analyst

One of the main jobs of an architect is being able to analyze and minimize risks

www.mozaicworks.com

The purpose of Agile

Incrementally add value

Deliver fast

Build the right thing

Quality software

Deliver enhanced value for customer

Maintanability

www.mozaicworks.com

3. Build the right thing

www.mozaicworks.com

3. Build the right thing

Architect's skill: Business analyst

Understand the requirements at top levelMake sure the product fits the needsCommunicate technical risks

www.mozaicworks.com

3. Build the right thing

Architect's skill: Communicator

Talk with the customersKnow the end-usersHave a close relationship with stakeholdersBe open for dicussions with managersHappy to actively attend teams' meetings

www.mozaicworks.com

The purpose of Agile

Incrementally add value

Deliver fast

Build the right thing

Quality software

Deliver enhanced value for customer

Maintanability

www.mozaicworks.com

4. Quality software

www.mozaicworks.com

4. Quality software

Architect's skill: Technical standards creator

Drive teams for consensus on practicesCreate standardsDocument standardsEnforce standards

www.mozaicworks.com

4. Quality software

Architect's skill: Technical standards creator

www.mozaicworks.com

4. Quality software

Architect's skill: Code reviewer

The code looks like one person wrote itThe code respects standardsTeach others how code can be improved

www.mozaicworks.com

The purpose of Agile

Incrementally add value

Deliver fast

Build the right thing

Quality software

Deliver enhanced value for customer

Maintanability

www.mozaicworks.com

5. Deliver enhanced value

Architect's skill: Assistant Product Owner

Be in constant touch with product peopleFocus on value delivered to the customerChallenge the Business Value presentedCommunicate Business Value to the teams

www.mozaicworks.com

5. Deliver enhanced value

Architect's skill: Team Load Balancer

The teams deal with a sustainable effortThe effort of the teams is almost the same

The customer's value stream is constant and predictable

www.mozaicworks.com

The purpose of Agile

Incrementally add value

Deliver fast

Build the right thing

Quality software

Deliver enhanced value for customer

Maintainability

www.mozaicworks.com

6. Maintainability

www.mozaicworks.com

6. Maintainability

Architect's skill: Ministry of Technical Budget

Measure technical debtMinimize technical debtPlan well technical debt installmentsDo not bury the company in technical debt

www.mozaicworks.com

6. Maintainability

Architect's skill: Foreman[3]

The architect is the person who is responsible for making sure all the workers do things right

www.mozaicworks.com

The purpose of Agile

Incrementally add value

Deliver fast

Build the right thing

Quality software

Deliver enhanced value for customer

Maintainability

www.mozaicworks.com

General Skill

Architect's skill: Facilitator

www.mozaicworks.com

General Skill

Architect's skill: Facilitator

Be able to convince a group of people to achive consensus without taking a particular position in the discussion

www.mozaicworks.com

Agile Architect's skills

www.mozaicworks.com

TranslatorCode reviewer

MentorAssistant Product Owner

SimplifierTeam Load Balancer

Risk AnalystMinistry of Technical Budget

Business AnalystForeman

CommunicatorFacilitator

Technical Standards Creator

Thank you!

www.mozaicworks.com

References

[1] Clements, Paul; Felix Bachmann, Len Bass, David Garlan, James Ivers, Reed Little, Paulo Merson, Robert Nord, Judith Stafford (2010). Documenting Software Architectures: Views and Beyond, Second Edition. Boston: Addison-Wesley.[2] Bass, Len; Paul Clements, Rick Kazman (2012). Software Architecture In Practice, Third Edition. Boston: Addison-Wesley. pp. 2124[3] http://blog.8thlight.com/uncle-bob/2014/02/21/WhereIsTheForeman.html

www.mozaicworks.com

Enterprise Agile Architect Role

Contact meUnit testing workshopRemote pair-programmingTDD workshopRefactoring workshopLegacy code workshopLegacy code retreatCode retreat

www.mozaicworks.com

Enterprise Agile Architect Role

Extend your mentoring & training capacityAccelerate learning through communities of practiceGrow your functional leaders and top talents

http://www.mozaicworks.com

[email protected]

@adibolb