0% found this document useful (0 votes)
44 views22 pages

How To Become Architect

The document discusses how to become a software architect, including what a software architect is and does. It describes the job responsibilities, requirements, and skills of a software architect. It also discusses architectural anti-patterns and recommends software architects allocate their time 50% to internal architecting tasks, 25% to getting external input, and 25% to providing information outward.

Uploaded by

Zainab Hameed
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
44 views22 pages

How To Become Architect

The document discusses how to become a software architect, including what a software architect is and does. It describes the job responsibilities, requirements, and skills of a software architect. It also discusses architectural anti-patterns and recommends software architects allocate their time 50% to internal architecting tasks, 25% to getting external input, and 25% to providing information outward.

Uploaded by

Zainab Hameed
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 22

How to Become

Software Architect

Engr. Muhammad Jabbar


Today’s Agenda

• How to Become Software Architect


Software Architect

• Software Architect
What is Software Architect?
What do Software Architect actually do?
Software Architect

Software Architect is Someone Who Can Make Sub-


optimal Decision in Total Darkness

Sub-optimal decision?
• By understanding more, try to put a process, framework in
creating of software architecture.
• Set expectation, experience of OO, three steps forward two
steps backward, that’s perfectly fine
Software Architect
• A software architect—or a software architecture team,
collectively— must strike a delicate balance between an
external focus—both outwards: Listening to customers,
users, watching technology, developing a long-term vision,
and inwards: driving the development teams—and an
internal, reflective focus: spending time to make the
right design choices, validating them, and documenting them.
What is Software Architect?
• The Software Architect operates nearly as a peer to the
project manager. While the project manager deals with
budgets, plans, resources and tracking progress, the architect
sets the technical vision for the project, mentors the
technical staff, and monitors design and
implementation artifacts for quality and compliance
to standards.
Job Description
• The position works with users and developers to analyze,
design, and implement application systems and/or
enhancements to existing systems and may include leading a
team for a specific project.

• This position provides deep technology expertise in a variety


of areas.
Job Requirements
• Advanced knowledge of programming language(s), software
development tools and environment(s) and systems analysis and
functional design is required.

• In addition, thorough knowledge of database concepts, database


design, data modeling and system architectures is also required.

• Expert knowledge of application design principles, practices,


system development methodologies, (preferably OO), and
software life cycles is required.

• Experience with Rational Rose, .NET, and/or HTML is


helpful
Technical Skills
• Requirement gathering/Management
• Modeling and analysis methodology
• Full Software Development Life Cycle
• Modern architectural technologies, such as J2EE and .NET
• In depth knowledge of programming languages
• Network, Security, hardware platforms
• Database
Non-Technical Skills
• Facilitation
• Communication/Presentation/Sales Skill
• Mentoring
• Domain Knowledge of area you working on
• Leadership
• Business expertise
What do Software Architect actually do?
• Software Architects design the architecture?

Common Myth:
• Software architects should design, develop, nurture, and
maintain the architecture of the software-intensive systems they
are involved with

• It is not a simple, satisfactory answer, since there is no


universally accepted definition of what software architecture
is. And this would bring us back to the original question.
What do Software Architect actually do?
(Cont...)

• The architect’s responsibilities are the part of both the design


and the design decisions that have long-lasting impact on some
of the major quality attributes of a software-intensive system:
cost, evolution, performance, decomposability, safety,
security, etc.
Architectural Anti-patterns
• There are several ‘‘anti-patterns” that will make a software
architect or software architecture team fail miserably if they
were only to design the architecture.

1. Anti-pattern: creating a perfect architecture, for the wrong


system.
2. Anti-pattern: creating a perfect architecture, but too hard to
implement
3. Anti-pattern: Architects in their ivory tower
4. Anti-pattern: the absent architects
Anti-Patterns
• Some of architectural anti-patterns are described by simply
contrasting the three ratios [internal: inwards: outwards]

• [60:30:10] Gold-plating

• This software architecture


team is not engaged enough
with its users, particularly
the developers.

• They are probably doing a


good technical job.

* Reference [1]
Anti-Patterns (Cont...)
• [70:15:15] Ivory tower

• This is a software
architecture team that
has isolated itself; it is
doing far too much
navel gazing. They may
enjoy themselves, but
they are simply not
engaged enough with
external stakeholders

* Reference [1]
Anti-Patterns (Cont...)
• [30:40:30] Absent architect

• This is a software
architecture team that is
spending far too much time
traveling the world.

* Reference [1]
Anti-Patterns (Cont...)
• [25:25:50] Just consultants

• This is a software
architecture team that is
acting more as an internal
consulting shop or their
travel and conference
budget is simply too large.

* Reference [1]
Time Allocation
• To avoid falling in any of the traps or anti-patterns mentioned
above, and to help maintain a delicate balance between all the
forces that an architect is submitted to, a simple time-
management practice is devised.
• The architects should allocate their time in a 50:25:25 (internal:
inwards: outwards) ratio as follows:
50:25:25 (internal: inwards: outwards)
• Internal focus: About 50% of their time focused on
architecting: architectural design, prototyping, evaluating,
documenting, etc.

• External focus: About 50% of their time interacting with other


stakeholders. This in turn has two facets:
– Inwards: 25% getting input from the outside world: listening to
customers, users, product manager, and other stakeholders (developers,
distributors, customer support, etc.). Learning about technologies, other
systems’ architecture, and architectural practices.
– Outwards: 25% providing information or help to other stakeholders
or organizations: communicating the architecture: project management,
product definition

* Reference [1]
Conclusion

Technical Ability alone is never


enough
Reference
1. Philippe Kruchten, “What do software architects really do?”,
The Journal of Systems and Software , 2008
Question in my Should I ask
mind is ? this ?

Hmmmm …… Sorry I was


sleeping sir !

You might also like