Category: Courses

Context Diagrams: Putting things in Context

Simple Context Diagram

Every Business Analyst should know something about Context Diagrams. I often draw an informal Context Diagram as the one of my first activities when I start a new project. Context Diagrams are good for focussing the mind and reminding you what you don’t know and need to find out.

What is a Context Diagram?

You have almost certainly seen Context Diagrams, even if you haven’t recognised them by name. A Context Diagram is a shape (usually a rectangle or circle) which represents “the system” which is the focus of our interest. This shape is surrounded by other shapes which represent things like:

Users of the system (or actors)

Other systems

The satellite shapes are joined to “the system” by lines. Sometimes the arrows on the lines have real significance, sometimes they are there for decoration.

Context Diagrams were commonly used as the top-most level in decomposition methods (such as SSADM). They are still with us in the form of the Use Case diagram in UML.

What will a Context Diagram tell us?

A Context Diagram will tell us about who uses the system we are looking at. It also tells us about the other systems it interacts with. The diagram actually tells us very little about our system!

When are Context Diagrams useful?

Context Diagrams are useful at towards the start of the project. They are good for communication and especially good for summarising who and what interacts with the system.

Although they don’t define our system at all well, they do make it clear what is outside. As a consequence, they are good for communicating “scope”. I even use them to help define scope during project initiation.

A really good use of Context Diagrams is to emphasis interfaces with other systems.

Limitations of Context Diagrams

There is something seductive about a well-drawn Context diagram. It seems to say a great deal, but actually it doesn’t say a lot.

It is wrong to try and make a Context Diagram do too much. Imagine a diagram with tries to show connections with 100 different objects. It would turn into a mess which nobody could read. As a result, the number of satellites is often edited. That makes the diagram easier to read but removes important information.

As a consequence, Context Diagrams are best used for illustration and communication, rather than definition.

Conclusion

Context Diagrams are a great way of providing overview and “putting things in context”! They are easy to produce and people understand them intuitively. They are good for communicating ideas to a non-technical audience.

To get the best from Context Diagrams you have to recognise their limitations. They are good at describing what is outside “the system” but they say very little about the system itself. They are not very good for detailed definition, and if they contain too much detail they actually become less useful!

Do you know how to read SQL databases? By “read” I mean really get the most out of the database. If for some reason you were presented with an unfamiliar database containing a lot of tables, would you know what to do? If not, then you are not alone.

Many people: programmers, developers and analysts are taught the basics of SQL, they know how to write a SELECT query and can even use JOIN to write queries involving more than one table, but relatively few are shown how to read SQL and interpret the database structure itself. This is a pity, because the structure of a database is often very well documented. What is more, that documentation is incorporated into the database itself. That means that it is available and it is up to date. The problem is, most people don’t look at the database in that way. They concentrate on the content, rather than the structure. When they want to know which tables to look at, they tend to ask the local “expert”.

Asking the expert is a good thing to do, but it has a number of problems. The first and most serious problem is “how expert is the expert?” and the second is the problem that the expert may be busy.

I was prompted to think about this problem a little while ago when someone asked about “How to ‘dig in’ to a large database” on one of the forums I visit. I gave an answer which several people found helpful and which I documented here in my blog.

Over the intervening period I have refined the method I described and reduced it to something I call “DOGI”.

The DOGI method

D = Diagram

O = Organise

G = Group

I = Inside

I like simple acronyms. They make things memorable and aid learning.

The approach I suggest to read SQL is really quite simple. It starts by getting an overview of the database by using whatever tool you have and then organising the diagram in order to make it easier to understand. This “organised” diagram makes it much easier to recognise groups of related tables which can then be investigated in more depth. This approach makes the investigation process more systematic and easier to plan.

I have created a course which teaches this method. I’ve structured it as what I term “an extended tutorial”. I start with one of Microsoft’s example databases and then use the method to investigate it. I surprised myself with how much information I was able to glean.

This course is suitable for anyone how can write a simple SELECT statement. By simple I mean “SELECT * FROM TableName”. When you have completed the course, you will have seen the DOGI method applied to one of Microsoft’s databases and will be able to repeat this yourself. More significantly, when you have completed this course you be able to use the DOGI method to “read SQL databases” and make yourself “the expert”. You won’t have to ask which tables you need to look at, because you will know. You will know what the tables are doing and you will be able to relate them to what the application can and cannot do.

I teach using a mixture of lectures and demonstrations. I think you will learn best if you repeat what demonstrate for yourself, but that is entirely optional. With each step you see the DOGI method applied in practice and build your knowledge using what you have learned already. On-line courses set you free to work at your own pace and to review and revisit material, even after you have completed the course.

If I’ve got your interest, then I’ve included links so you can purchase the course at a substantial discount. Go on, have a look now! It’s all supported by a 30 day, no-questions-asked, money-back guarantee too.

Have you ever encountered “Scope Creep”? You know what I mean, You will have heard Project Managers complain about “Scope Creep”, Scope creep is when the “To-Do list” keeps growing, especially when it grows faster than we are completing the tasks.

I expect we can all agree that projects work better when: we know what we need to achieve, the scope is fixed, we are not being given extra things to do and the Project Manager and team are not constantly having argue against “things being added”. A clear project scope is one way of combating scope creep.

I have seen the start of a lot of projects! Everyone wants to get a project off to a good start, but Analysis and Requirements projects are notoriously difficult to define. We all want to get started, we know we need a clear definition, but we don’t want to get bogged down in endless discussions about exactly what is included and what isn’t.

I’ve written a course which teaches a technique I have used to define the boundaries of all sorts of things. I’ve used it as an individual, with a team and with larger groups. I have found it useful. I think you will too.

An analysis project may not start with clear boundaries. If “A clear scope makes for a sound project”, how do we define that scope without performing the analysis? This course shows you how to do just that!

I teach using a mixture of lectures and exercises. You will learn by seeing, hearing and doing. With each step you build your knowledge using what you have learned already. An on-line course sets you free to work at your own pace and to review and revisit earlier material, even after you have completed the course.

If I’ve got your interest, then I’ve included links so you can purchase the course at a substantial discount. Go on, have a look now! It’s all supported by an 30 day, no-questions-asked, money-back guarantee too.

Do you deal with problems in your working life? If you work in IT (Information Technology), then I am almost certain that you do!

“Problem Determination” is the art of identifying where the cause of a problem can be found in a system, so that it can be fixed. I like to call it “bug hunting”. Having a reputation for being able to track down the causes of problems will make you more valued. Being able to perform Problem Determination efficiently, or manage others doing Problem Determination will enhance your reputation.

I’ve written a course which teaches you a simple 8-step framework which can be used to manage the Problem Determination process, and techniques which will enable you to isolate problems efficiently. As you complete the sections what you have learned is reinforced by a case study and you can check your understanding using quizzes.

Problems are inevitable. Dealing with problems can be stressful. Take this course and you will learn how to track down problems efficiently and reduce that stress.

Whether you work on a help-desk, or as a developer, analyst or manager the skills you learn from this course will make you more effective. Problem Determination is a powerful intellectual skill which anyone with an analytical and practical mind can learn. It is a skill which once learned can be carried with you and applied to different systems and in different industries.

I teach using a mixture of lectures and exercises. You will learn by seeing, hearing and doing. With each step you build your knowledge using what you have learned already. An on-line course sets you free to work at your own pace and to review and revisit earlier material, even after you have completed the course.

If I’ve got your interest, then I’ve included links so you can purchase the course at a substantial discount. Go on, have a look now! It’s all supported by an 30 day, no-questions-asked, money-back guarantee too.

Why would anyone want to learn a 35 year old programming language? Especially if the language we are talking about was originally intended to be written in ugly CAPITAL LETTERS and moreover tries to make you think in a funny way?

If the language in question is SQL (Structured Query Language), then I think almost anyone who is involved in IT systems should at least consider investing a little time gaining a basic understanding, because SQL databases are at the heart of many commercial systems.

Understanding even a little about what SQL is and how it works and the terminology it uses will enable you to communicate much more effectively with the other members of the development team. Even a little knowledge will give you an appreciation of what SQL databases are good for, what their limitations are and how they compare with other technologies. It doesn’t really matter, whether you start from a programming background or not, because at its heart SQL is really rather simple.

A little while ago, I wrote a course which teaches these basics. It teaches the principles of Relational Databases and the SQL language. Although it is intended for “Analysts”, what it teaches will be useful to programmers or those who are just interested in how systems work.

This course is suitable for a novice. I start by explaining how Relational Databases relate to your experience in the everyday world. When you have completed the course and exercises you will have created a database containing several related tables, updated the data they contain and written many queries which extract and summarise that data.

I teach using a mixture of lectures, demonstrations and exercises. You will learn by seeing, hearing and doing. With each step you build your knowledge using what you have learned already. An on-line course sets you free to work at your own pace and to review and revisit earlier material, even after you have completed the course.
If I’ve got your interest, then I’ve included links so you can purchase the course at a substantial discount. Go on, have a look now! It’s all supported by an 30 day, no-questions-asked, money-back guarantee too.