Back to Services

Mentoring on Software Architecture

Raise to the challenges of a growing product.

Software Architecture means taking strategic decisions related to the structure of an application. These decisions are difficult to change afterwards and have impact on months or years of development.

Examples of architectural decisions are:

  • The programming language
  • The frameworks and libraries
  • How to deal with security risks
  • How to deal with other types of technical risks: failures, errors etc.e
  • The deployment scheme of the application
  • The large components from the application
  • How the components communicate with one another (their contracts and interfaces)
  • How to ensure performance, scalability, reliability
  • How to optimize development time over long periods of time

Why improve architecture skills

Software architecture is where programming meets the real world. Programming is very strict and clear, while the real world is unreliable, unpredictable and imprecise. Therefore, programmers transitioning to the role of architects need to shift their perspective and understand more about risk management, communication and stewardship, while improving
their technical knowledge.

Topics

Mozaic Works mentors are proficient in software architecture topics such as:

  • Identifying use cases
  • Splitting an application into components
  • Defining contracts and interfaces of the components
  • Defining deployment schemes
  • Identifying and dealing with security risks
  • Ensuring performance, scalability, availability
  • Identifying technical risks and solutions
  • Communicating the architecture to developers and stakeholders

You can benefit from their practical experience by applying one or more of the above on your production code.

Approach / Way of work

Mentoring is a combination of a few activities:

  • Short training sessions, where one or more concepts are presented, discussed and practiced in a safe environment
  • Practice sessions such as architectural kata
  • Pairing with architects on specific tasks
  • Sessions on improving existing architectures
  • Free discussions

Each client organization has an unique culture, team members with diverse experience and skills, and business goals. Depending on your specific needs, a mentorship program can be created for the architects in your team in order to improve certain skills.