software architect a long term job strategy in it l.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Software Architect – A Long-Term Job/Strategy in IT PowerPoint Presentation
Download Presentation
Software Architect – A Long-Term Job/Strategy in IT

Loading in 2 Seconds...

play fullscreen
1 / 33

Software Architect – A Long-Term Job/Strategy in IT - PowerPoint PPT Presentation


  • 184 Views
  • Uploaded on

Software Architect – A Long-Term Job/Strategy in IT Ning Chen, Ph.D. Professor Department of Computer Science California State University, Fullerton E-mail: nchen@fullerton.edu Source: BusinessWeek March 1, 2004 Source: BusinessWeek March 1, 2004

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Software Architect – A Long-Term Job/Strategy in IT' - Pat_Xavi


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
software architect a long term job strategy in it

Software Architect – A Long-Term Job/Strategy in IT

Ning Chen, Ph.D.

Professor

Department of Computer Science

California State University, Fullerton

E-mail: nchen@fullerton.edu

my personal view two software business models
My Personal View: Two Software Business Models
  • One-segment approach– “Developing Software” (design and implementation done by one party)
  • Two-segment approach-”Manufacturing Software” (design and implementation are done separately by two or more parties)

© 2005 N. Chen

my personal view advantages of two segment model
My Personal View: Advantages of two-segment model
  • Fewer conflicts of interest
  • Easier to outsource
  • Cheaper to implement (cost of implementation can be determined by market/competition)
  • Better software quality (quality attribute driven design)

© 2005 N. Chen

my personal view is the two segment model here already
My Personal View: Is the two-segment model here already?
  • Not yet. But there are strong driving forces behind it. Some significant signs are showing up.
  • The two-segment model has the following driving forces:
  • Technology in software engineering (Patterns/Tactics, Components, Model Driven Architectures, Attribute Driven Design)
  • Market force (better, cheaper software)
  • Internet (calling China now is cheaper than calling Ventura County)
  • Organizations that promote software engineering (SEI, etc.)

© 2005 N. Chen

jobs exist in the two segment market
Jobs exist in the two-segment market
  • Upper segment –

“Software Architects” – may include project managers and business analysts with software background

  • Lower segment –

“Software Implementers/labors” – those who do “repetitive labor” work

© 2005 N. Chen

my personal observation work life styles in upper and lower segments
My Personal Observation: “Work/life Styles” in upper and lower segments
  • Upper segment –

“Software Architects” spend more than 50% their work time in “talking” to customers (stakeholders)

  • Lower segment –

“Software Labors” spend most their time, if not 100%, doing repetitive work under ever-increasing machine supervision. In the name of error prevention, pretty soon software labors won’t be allowed to “develop” things. They will be told to “manufacture” things to the specifications.

© 2005 N. Chen

advantages in the upper segment
Advantages in the upper segment

Since you are so close to the customers (i.e., money), you are poised to:

  • get more pay/profit: The closer you are to the money, the better pay you can demand.
  • accumulate asset (your business contacts and business domain knowledge are the ONLY* assets you can accumulate over time.) *It is almost a general consensus that you cannot accumulate your IT knowledge since it becomes obsolete so fast.

© 2005 N. Chen

what should i do to become a software architect
What should I do to become a software architect?
  • If you are in a one-segment work environment, in my opinion, you should always volunteer for the “easier” job.
  • “easier job” –

talking, organizing, documenting, voicing your view, idea at the meeting…

  • “hard job” – bury yourself in your cubicle working really hard in coding/debugging and expect market’s appreciation.

© 2005 N. Chen

seriously what should i do
Seriously, what should I do?
  • In addition to your general IT skills, you need to acquire Software Engineering (SE) knowledge and training.
  • Improve your communication and people skills (it CAN be done).

© 2005 N. Chen

how do i acquire se knowledge
How do I acquire SE knowledge?
  • Take courses or get a degree in SE

(Oh no! I need to get yet another degree!)

  • Learn yourself

(As a professor I joke with my fellow faculty by saying “SE is a subject that is good to teach but difficult to teach good.”)

What I really want to point out is that learning the SE knowledge is not hard and you can do it yourself. (Applying SE knowledge is a real challenge though!)

© 2005 N. Chen

if you want to get a ms degree in se http mse ecs fullerton edu
If you want to get a MS degree in SE (http://mse.ecs.fullerton.edu)

A 22-month totally online program

slide17
It’s time to learn some Software Architecture knowledge so that I can start claiming I am a software architect.

In the next 15 minutes we are going to learn the following major concepts regarding Software Architecture:

  • What is software architecture?
  • Usages of the software architecture
  • Quality attributes
  • Patterns
  • Attribute Driven Design method

© 2005 N. Chen

what is software architecture
What is Software Architecture?
  • One of the SEI’s definitions: “The software architecture of a program or computing system is the structure or structures of the system, which comprise the software elements, the externally visible properties of those elements, and the relationships among them.” (source: Software Architecture in Practice second edition)
architecture business cycle abc source software architecture in practice second edition
Architecture Business Cycle (ABC)source: Software Architecture in Practice second edition
why is software architecture important source software architecture in practice second edition
Why is Software Architecture Important?(source: Software Architecture in Practice second edition)
  • 1. It provides a vehicle for communication among stakeholders.
  • 2. It is the manifestation (indication of existence) of the earliest designs about a system.
  • 3. It is transferable, reusable abstraction of a system.
vehicle for communication
Vehicle for Communication
  • “1. Negotiating with users. 2. Keeping the customer informed of progress. 3. Implementing management decisions and allocations. 4. Architects and implementers use the architecture to guide development.”

© 2005 N. Chen

early design decisions
Early Design Decisions
  • “Architecture allows predicting system qualities without waiting until the system is developed or deployed.”
transferable reusable abstraction
Transferable, Reusable Abstraction
  • “1. Architecture supports building systems using large, independently developed components. 2. Architecture enables template-based development.”

© 2005 N. Chen

quality attribute this is one of the sei s babies you may want to pay great attention to it
Quality Attribute(this is one of the SEI’s babies. You may want to pay great attention to it)
  • Some general quality attributes: availability, modifiability, performance, security, testability, usability, etc.
  • SEI: ”Architecture is critical to the realization of quality attributes.”
  • If, for example, the availability is the must-have quality attribute of your system, then you had better to come up with an architecture that “shoots” for that quality. In other words, the architectural design is driven by the desired quality attributes.

© 2005 N. Chen

quality attribute
Quality Attribute
  • SEI: “In a traditional system development quality attributes are rarely captured in requirements specifications. They are often vaguely understood and weakly articulated.”
  • What should we do?
  • SEI’s answer: QAW (SEI Quality Attribute Workshop)

© 2005 N. Chen

sei qaw steps
SEI QAW steps
  • 1. QAW presentation and introductions
  • 2. Business/Mission presentation
  • 3. Architectural plan presentation
  • 4. Identification of architectural drivers
  • 5. Scenario* brainstorming
  • 6. Scenario consolidation
  • 7. Scenario prioritization
  • 8. Scenario refinement

(Iterate above as necessary with broader stakeholder community)

*SEI came up with a quality scenario consisting six parts: 1. Source, 2. Stimulus, 3 Artifact, 4. Environment, 5. Response, 6. Response Measure.

© 2005 N. Chen

patterns
Patterns
  • SEI: “An architectural pattern 1. is found repeatedly in practice, 2. is package of design decisions, 3. has known properties that permit reuse, 4. describes a class of architectures.”
  • My comments: don’t mix the concept of patterns and the usage of patterns. Sometimes dealing with one thing at a time will make things much easier.
  • Example: pipe-and-filter

© 2005 N. Chen

sei s attribute driven design
SEI’s Attribute-Driven Design
  • SEI: “The Attribute-Driven Design (ADD) method, developed by the SEI, is an approach to define a software architecture that bases the decomposition process on the quality attributes the software must fill. ADD follows a recursive decomposition process where, at each stage in the decomposition, tactics and architectural patterns are chosen to satisfy a set of quality attribute scenarios.”

© 2005 N. Chen

sei s attribute driven design continued
SEI’s Attribute-Driven Design (continued)
  • My interpretation: The idea is quite interesting. The attribute-driven architecture goes the following way. First break (decompose) the system to small workable parts. Get quality attributes from your stakeholders. Find some suitable patterns/tactics from your pattern catalog (just consider this is a pattern yellow book). Repeat the process if necessary.

© 2005 N. Chen

conclusion want to become a software architect
Conclusion: Want to become a Software Architect?
  • Will the job title of “Software Architect” become abundant?
  • My thoughts: No one has a crystal ball and it is still hard to say whether industry will seek lots of Software Architects in the near future. Nonetheless, I have seen the transition from “programmer” to “Software Engineer.” By the way, it is not that unusually now to find a Software Architecture Department in a mid-size organization.

© 2005 N. Chen

conclusion want to become a software architect31
Conclusion: Want to become a Software Architect?
  • My informal survey: about 30 people from industry attended one of the SEI workshops. Half of them said they belonged to the Software Architecture Department in their organizations. About 20% of them actually have the job title of Software Architect.

© 2005 N. Chen

conclusion want to become a software architect32
Conclusion: Want to become a Software Architect?
  • What should I do to prepare myself?
  • You may want to play “follow the leader” game. SEI apparently is one of the major mover-and-shakers. You many want to “ride the SEI train.”
  • You may want to improve your people/communication skills – Software Architecture involves lots people-related activities. Your technology-related skill alone is not enough. You had better be good at the people skill too.

© 2005 N. Chen

more info
More info
  • Software Architecture Training at SEI – my recollection and comments (an 80-minute online presentation available at and at http://nchen.ecs.fullerton.eduhttp://mse.ecs.fullerton.edu)

© 2005 N. Chen