
For a long time and successfully, we help various specialists to share their own knowledge in all possible areas, first of all - management and management, which is becoming increasingly relevant over time. The same applies to the development, design and architecture.
Gradually, we collected key engineering techniques from basic methodologies and architectural standards and translated into human language. We have connected our own experience and working solutions of our numerous customers, having received as a result a number of training sessions. At the same time, their format is practical, therefore the participants will come to the majority of the decisions themselves, which gives a tremendous conversion of skills into application in production.
For whom :
- Engineers: Architects.
- Technical managers: timlidov and tehlidov.
- Managers: project managers and product managers
Experience at the start :
- Experience in industrial development from 2 years is desirable.
- Required design skills in the scope of the course "Agile Mindset in system design," especially for participation in advanced training: "Agile Mindset in design solutions."
Dividing all existing experience into two major components of one whole, the following picture
Agile Mindset in system design . Requirements, architecture, process')
Remember, when was the last time you had the last effort to prove the advantages of an architectural solution, but did not succeed? Or, when with triumph you introduced at first glance an absolutely right decision, which suffered a complete fiasco afterwards. Such moments give rise to a number of fair questions: “What did I do wrong? How to correctly and logically present your point of view? What is the difference and where is the line between conscious and reasonable architectural solutions and amateurish approach? ”
This training is about common sense - about the validity of engineering solutions in conditions of uncertainty. We will analyze what engineering solutions depend on and learn how to clearly substantiate them. Let us think about what should be the expectations of architecture and whether you even have it in your project. We will learn to solve engineering conflicts objectively, and you will forget the word "holivar" forever. We take a completely new look at design patterns and now squeeze the maximum out of them. Let us understand how to efficiently build documentation for the system so that it really starts working, and not “write-only”. Let's learn how to focus in our decisions and finally find out where to start - with the database schema or “concurrency design”. And one of the most important things of the training is to learn not to do extra work.
Agile Mindset training program in system design- Posing problems
- Acquaintance and problem collection of participants
- Training Review
- Team breakdown
- Why architecture is needed - how not to ruin the project
- What is architecture?
- Where is the boundary of micro design and architecture?
- Who is the consumer of architectural artifacts?
- What answers should the chosen architecture answer?
- Architecture as a risk plan - to compensate for the uncertainty of the future
- What sources of project risk can we identify?
- How can early risks address external risks in their architecture?
- How can early risks address internal risks in your architecture?
- The boundaries of the system and how to fix them
- Architecture as a project plan - to increase production efficiency
- What are the requirements for the PM / RP architecture?
- How can you create a project plan for the architecture?
- Is the critical path visible?
- How to parallelize the work?
- Architecture as Component Requirements — Provide Flexibility and Reduce Support Costs
- What assumptions do we rely on when designing with the use of off-the-shelf components or external systems?
- How can we formulate our expectations from external components?
- How to address the risks of non-compliance with our expectations?
- Requirements for architecture: the beginning of the checklist - what not to forget and not to miss
- Architectural methodology - how to make engineering decisions in favor of business needs and make decisions transparent for business
- What are the decisions in design and architecture? Where to find the answers to justify them?
- How to compensate for uncertainty of requirements?
- How to justify decisions on the methodology?
- Architecture as a function of requirements - how to do what is needed, reduce rework and increase customer satisfaction
- What types of requirements can be identified?
- How can you define "critical paths" in the requirements?
- How do requirements define system boundaries?
- What are the typical requirements “profile of requirements → typical architecture”?
- Separately about scalability
- “Compromise” and “Specialization” - how to make decisions in case of constructive conflict of expectations
- What are the compliance requirements?
- How do engineering solutions address these connections between requirements?
- How to treat design patterns — their value and problems
- Architectural points of view and documenting architecture - how to spend resources focused and early to address risks
- How can I document architectural solutions? What artifacts can be issued?
- What is more important - database schema or concurrency design?
- At what point do you document what?
- Architecture Requirements: Continue Checklist
- Architectural methodology - how to design in the face of external uncertainty
- What do you do if you do not know the future changes?
- Axis of variability of requirements
- BDUF vs YAGNI
- Encapsulation variability
- Architectural methodology - how to design in the conditions of internal uncertainty
- Key expectations for components based on requirements
- Early verification of key contracts
- External and internal expertise, frame prototypes
- Tests like early contract verification
- Architecture Requirements: Checklist Completion
- Final retrospective: what to use in production tomorrow
Agile Mindset in designing solutions . Process, team, culture, businessLook at your production software delivery system and solution architecture. Can you clearly justify the choice of process and architectural approaches through business metrics and company strategy? How the teams are structured, how the communications are built and the architectural process is arranged - does this provide the metrics necessary for the business?
This training is about industry-proven architectural, process and organizational structure templates and their meaningful choice. That is, about how to build the architectural process and production structure to address the needs of the business.
We will understand why too early or late solution architecture is pain and how to measure it and monitor its risks. We will understand how to ensure the quality of the product in the early stages. We will learn to build processes to reduce delivery time without increasing staffing and how the architecture should support such a process. We define the optimal team structure to increase the speed of delivery and product quality. We find out what factors are important for architecture, but we persistently ignore them, collecting rakes.
We will understand how our company's business model will help create and maintain architecture.
Agile Mindset training program design solutions- Posing problems
- Acquaintance and problem collection of participants
- Training Review
- Team breakdown
- Patterns of origin and development of architecture - when you need and do not need to make decisions
- Architecture and design metrics - how to measure the dynamics of changes and “hot” parts of the system
- Metrics
- The benefits of metrics
- Sonar demo
- Architecture verification and validation - how to deliver a quality product and learn about defects as soon as possible
- Architecture as a function of the process - how to make successful projects
- What is a process / methodology?
- What types of decisions are made at this level?
- How can you deal with the uncertainty of the requirements?
- How can I reduce cycle time?
- How can I transfer decisions to performers?
- How can you collectively work with the code base?
- Modern process patterns - towards incremental architecture
- Modern project management templates: matstat, real options theory, constraint theory, WIP reduction
- The interaction of roles in the project
- The fractal nature of projects - why we are wrong in the estimates
- Multiple Script Trails
- Architecture as a function of company structure - how to build a production system for fast and high-quality delivery
- Matrix vs feature teams
- Achitecture as a function of the team management model - how to build communications for fast and high-quality delivery
- Collective ownership of the system: templates, incl. DDD
- Architecture Requirements: Continue Checklist
- Architecture as a function of legacy systems - Solution Architecture
- Reuse
- Specialization vs generalization
- The Role of Documentation and Tests
- Flexibility in making architectural decisions - which we do not consider when killing projects
- What factors depend on sound engineering decisions?
- Architecture as a function of team management trust
- Architecture as a function of team trust in management
- Architecture as a function of company structure
- Architecture as a function of partners
- Architecture as a function of corporate policy
- Architecture Requirements: Continue Checklist
- Architecture as a function of the company's business model - how architecture helps businesses achieve results
- What business metrics are there?
- What business models are there?
- Architecture Requirements: Checklist Completion
- Final retrospective: what to use in production tomorrow
Results and experience / expertise from the training results

After the training, participants will be able to:- To make architectural decisions in time - not earlier and not later, thereby optimizing the cost and risks of the project
- “To diagnose according to a photo” - according to architectural metrics to understand the status of the project and architectural risks
- It makes sense to choose the tools for checking the architecture - to ensure the quality of the product as soon as possible and without extra costs
- Customize the process, ensuring minimal delivery time
- Customize team structure and communication, dramatically improving the speed and quality of decision making
- Reduce the cost of new solutions by effectively reusing existing systems
- Better understand top management business decisions and support business strategies in systems architecture
- Inspect the existing architecture for compliance with business objectives and strategy — select key points for early refactoring
- To make architectural decisions reasonably and to defend them reasonably
- Provide the necessary architectural flexibility
- Reduce ongoing costs by clearly focusing on really important issues.
- Reduce the costs and risks of future support.
- Easily and effectively resolve engineering conflicts - without swearing, offenses and dramas
- Reasonably take engineering decisions in the face of uncertainty - when it is not completely clear what to do and how
- Accelerate delivery by meaningful parallelism of work
- Understand the needs and way of thinking of the business - to give the business the information he really needs about the status of the project
- Minimal efforts to restructure the production process to reduce delivery time and improve quality
Trainer:
Evgeny KrivosheevHe has seven years of experience in developing and teaching technologies on J2SE, J2EE, BEA Systems, IBM platforms, as well as parallel development. His experience allows him to be an architect in the development of large commercial systems, while he is able to convey complex technological knowledge to the widest range.
A few simple questions regarding the potential and incentive to participate in the training, Evgeny Krivosheev:- Yevgeny, who is the target audience of engineering trainings for Agile Mindset in general, which specialists will draw from it the maximum possible?Our trainings are designed for medium (regular) developers and more well-trained specialists.
Younger developers may also be interested in training, but after becoming familiar with the basics of Agile. The second training, which is no longer dedicated to architectures, but to specific processes and business models, is likely to be complicated for a junior, since it is intended not even for senior developers, but for architects and PM's with development experience.
Anyway, the essence of the two trainings lies precisely in the establishment of “cross-cutting” rules for developers, architects, project managers, resource managers, product managers, and even, perhaps, owners. This is done to obtain a single model of decision making.
The goal is also to ensure that the engineering helps the business, and does not interfere. She helped develop, earn more money and solve other tasks: reducing delivery time (time-to-market), increasing its predictability and improving the quality of the system.
For this, it is critically important that the engineers hear the business, and the business readily answers the questions of the engineers.
How exactly to make engineering decisions? How to build architecture? How to communicate? These questions are designed to answer and help find solutions to both training.
- What practical skills or techniques can be mastered during the training?The most important thing is communication skills. During the training, we learn to communicate in a single language and understand what other roles are guided by in the process of architectural design. Most of the problems of software engineering, in our opinion, rests primarily in communication: they don’t hear each other’s roles, operate with different concepts, do not go beyond the “operating walls”.
The second skill is a specific set of techniques and patterns of system design. These skills can be process and engineering.
How to build work and architecture in a constantly changing flow of requirements? This requires methodological support (what?) And specific engineering solutions (how?)
- Why is Agile Mindset as “mind set”, and how does this setup help in designing large-scale architectures?This whole slice of the real world is divided into two rather large parts: the world of formal or sequential methodologies and processes and the world of flexible methodologies and processes (fewer formal initial settings, more reaction to what is happening in real time).
The benefit for the participants is expressed in the following metaphor: “Finally, tasks will be done!”. Formal and sequential approaches imply a large feedback loop - between the idea and implementation a lot of time passes, many forces are spent on communication and overcoming various barriers: bureaucratic, communication, and possibly organizational.
What is important in the world of flexible methodologies? A relatively small feedback loop with the developer. The employee sees that the result of his work is quickly introduced and contributes to the positive motivation of the whole team.
Come and introduce common sense in your company!