1.5. Exercises

Exercise 1.1

Define your career plan for the next two years. As your career progresses to higher levels of seniority, you will be expected to require redirection on a less frequent basis, with the maximum being about once a year. We believe that planning is essential, so making a career plan at this early stage of your reading would be a positive step. Identify your goals, and then identify what you need to know in order to achieve your goals (i.e., knowledge gaps). Be brutally honest.

Example Solution:

Three years ago, my goal was to continue in technical architecture roles and increase my knowledge in several areas, so that I could be a more complete contributor. In particular, I wanted to gain extensive experience in UML modeling, design patterns, and software process and to reconnect with programming fundamentals. I also wanted to gain some management experiences to add to my resume. I wanted to give the research and development cycle one more go, for both personal and professional reasons. After all, I joined this industry because I loved programming. At the back of my mind was a desire to help some friends in small commercial businesses, but I sorely lacked experience in this area, having worked mostly for large defense contractors and think tanks. Having a list of what I wanted to learn, I next consulted the Internet, the world's most extensive collection of free resources. I located several books, training courses, and other information that helped me identify specific learning targets.

Being a relatively independent middle manager in the technical ladder, I adjusted my workload to align with my goals. I prepared a tutorial on UML and defined an architecture using UML notation, which was within the scope of our research. I downloaded the latest version of the Java programming language from Sun Microsystems and began programming the first phase of the architecture prototype. I was having fun and achieving my goals while performing useful architecture research and evangelism for my firm, which was in the midst of UML adoption. Reviewing my results with co-workers enriched my learning experience and helped my firm to move forward on UML-related initiatives. Also I pursued directed readings and attended a patterns workshop, which greatly enriched my knowledge of the field.

Having achieved a modicum of success on this path, I was ready for the next phase. Time to replan. In the pre-Y2K days, the software industry was very profitable. Opportunities abounded. I lacked much of the essential knowledge to help my friends in small commercial businesses (my ultimate goal). In addition, I wanted to do more technical architecture work, on a faster cycle. Defining a new architecture every month would be ideal, but that kind of opportunity was not available at my current firm. Also, business in my firm was in a cooling-off period.

A career change was in order. I took a job at a very stable, highly reputable small commercial firm; e.g., their paychecks came regularly and they always cleared the bank. This new firm knew everything that I wanted to learn—a perfect match. At the library I discovered the book resources to learn the requisite areas of knowledge that I was lacking, a bit of business training, and so forth. I was able to read about these matters and apply them on the job daily. I was able to complete several interesting architecture projects, including a financial system specification, a middleware architecture specification for a large telecommunications firm, and a high-level architecture for a real-time system. In addition, I was able to do a great deal of UML modeling, learn Visual Basic and C++, and do some CORBA programming. I was also teaching courses on the topics that I wanted to master—excellent progress, by any standards of performance. At this point, I had achieved the technical goals that I had set two years earlier. Time to re-plan, as this exercise continues in real life.

Exercise 1.2

Select an architecture framework for use in your current firm (or customer's organization)—for example, RM-ODP, Zachman Framework, or 4+1 Model View. Write a brief profile description about how the framework should be applied in your organization.

Background for Solution:

We believe that having a framework is far superior to working without one. Whatever framework you choose, certain conventions and guidelines for applying it in your organization will need to be managed. The need for these profile conventions is most obvious in the selection of the Zachman Framework. Since you have 30 candidate specifications to write, you must address two issues. First, 30 specifications is too much work, and you should compress and simplify the amount of effort required to plan a system. Focus on the useful, practical elements for your domain of application. Combine elements as appropriate to ensure coverage without elevating the document-driven aspects to an unreasonable level. Second, if there is no profile, you can't possibly expect any two architectures to be comparable. You should select essential and optional viewpoints to be specified, and define what they mean in your organization's terminology. You can also propose conventions for how these viewpoints will be documented, such as a template for each viewpoint, and notational conventions. We believe that these steps are required for any responsible application of these powerful frameworks.

Exercise 1.3

Create a pattern system for use in your organization. Select patterns from among the available pattern catalogs to cover the areas of greatest concern and need in your organization.

Background for Solution:

A "pattern system" is documented in a simple tabular form. Use page 380 of [Buschmann 96] as your starting point. The pattern-system table contains a listing of the names of each pattern, along with their book page reference, for quick retrieval. Implicit in this exercise is the selection of the key patterns catalogs (i.e., books) that would be readily available to every developer. Remember: Patterns are lessons learned. The purpose of this exercise is to create a job aid so that your developer can more effectively apply lessons learned. We suggest that you consider including sources such as [Fowler 97], [Gamma 94], and [Mowbray 97a, b] to your list of candidate catalogs.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.136.233.222