Tom Gilb & Kai Gilb's blog

Leading ideas on Project Management. Stakeholder Values, Quantification, Agile, Quality, Requirements, Evo, Quality Control, Systems Engineering.
Created by System Administrator on Sat 15 of Apr., 2006 21:08 GMT+01:00
Last post Mon 22 of Feb., 2010 10:59 GMT+01:00
RSS feed (70 Posts | 87227 Visits | Activity=2.00)
Find:
By Kai Thomas Gilb kaiGilb on Mon 22 of Feb., 2010 10:59 GMT+01:00

7 truths about Agile and Scrum that people don't want to hear. Part 2 of 7: Developer Creativity

Project-Requirements.png (4.34 Kb)
Part 0 of 7 Introduction (external link)
Part 1 of 7 Wrong Focus (external link)
Part 2 of 7 Developer Creativity (external link)

Part 2 of 7: Agile “Baby Talk” Kills Developer Creativity


Conclusions up front
Scrum is practiced as a huge cooperative todo list. By not focusing on the critical "how well" attributes of the system, Scrum is reducing sw development to tasks, not needing skillful creative knowledgeable Developers. Developers are told what to code, not asked how to best satisfy a Product Quality need. When developers are given the challenge to improve a system (Product-Quality) they not only rise to the challenge, but excel at it. This is also observed in Scrum teams where they are given the challenge.
There is little or no understanding for how to create a competitive product. Rather, the opposite is happening, by requiring 'solutions' (made by amateurs (users), not architects), more-competitive options are systematically censored.
The Agilists sell Agile as an answer to increasing market pressure, as a way to be more competitive. But Agile falls short of giving its applicants a competitive advantage, because it doesn't say anything about requirements.
The popular Agile practices, teach and practice Use Cases or User Stories and other Function and feature centric ways to describe the most critical input and outcome of development. There is little or no specification to help us differentiate between a Function “the what”, a value “how well”, and a Solution “how”. Most Agilists teach and practice 'mixing the required Function with the optional solutions'. They don’t seem to teach anything useful when it comes to the most critical type of Requirements, the “how well”. In practice, by teaching User Stories, they teach not to use the critical “how well” types of Requirements, at least not in a way that can be used to guide decisions in the solutions.
The real value and cost of a system comes from creating the "how well" attributes.
This “baby talk” Requirements practice makes the popular Agile methods useless to anyone creating competitive systems, to anyone creating systems requiring high value, and to business.

that is it, the rest of this blog is fill :-) to better explain the conclusions above.

Claims:
1. 90%-99% of all Agile, XP & Scrum practitioners and teachers are describing product Requirements using the incomplete and uncompetitive aspects of what describes products, the functions, features, user stories and the like. They are failing to incorporate the Requirement parts that make a product competitive, that make it valuable, and that is costly to develop. 

2. 90%-99% of all Agile, XP & Scrum practitioners and teachers have not learned the fundamental skill which is critical for the success of a product: separating functions, from solutions, and also from the “how well” attributes (aka qualities). This is not unique to Agile, but without this, Agile is not healthy.

3. 90%-99% of all Agile, XP & Scrum practitioners and teachers teach 'Solutions' as if they were the Requirements, thereby killing opportunity for creativity among the Developers to come up with better solutions. This also tends to kill the fun of being a Developer.

I don't know the actual %, but from my broad international exposure, it is closer to 99% than 90%.

Introduction
At its purest description, Scrum is an empirical process control method. That means that Scrum is specifically designed to NOT tell you how to do any particular sw engineering discipline, like testing or requirements. 
It is an “open development framework”. 'Open' meaning that you can use any Requirement method, testing method, prioritization method etc. that the Scrum team sees fit for purpose. 
Using Scrum, through early continuous feedback, your organizational disfunction, like lack of understanding of the real Requirements, should be revealed.

Agilists also like to emphasize that Agile is a good answer to increasing market pressure; that it is a method that gives an advantage over other methodologies in terms of competitiveness.  
Also central to Scrum is the idea of cross-functional teams. I might comment about that in a later post, or not.
Credits: thanks to Craig Larman and Jeff Sutherland for teaching me about Scrum's origin, and what it should be.
What a great starting point! There is much to like about the above description.

In this blog post, I will use the word Developer to include; engineers, architects, usability experts, coders, softcrafters etc. and in most cases product owner)

Reality?
You cannot just do Scrum. To put the framework to practice you need to plug in methods for the various sw engineering domains, like testing and Requirements, and practices from XP.

In the field, what Requirement practices are taught and used? Simplified Answer: User Stories! (Functions and Features based, also TDD and BDD are of this nature).
And you might think that is ok, what is wrong with User Stories? Everything is wrong with that focus, it is not ok. It means you make your favorite Agile practice as weak as most of the Past fads ;-) Read on...

By talking to Scrum and XP gurus and teachers, I have found that they teach user stories and the like. They say this is for two reasons.
1. That is all the Agile market is ready to digest. (If this is true, my efforts are of no use ;-)
2. Most (but not all) of them don’t know how to do it much better. 
Some references that point to examples for User Stories. But you can look at your own practice and thinking. 
http://www.scrumalliance.org/pages/what_is_scrum (external link)
http://en.wikipedia.org/wiki/Scrum_(development) (external link)
http://scrumtraininginstitute.com/home/stream_download/scrumpapers (external link)
I don't find interesting practical alternative methods of Requirements, as described below, from within the Agile community, let's say 'in use' to drive the Product Backlog. I have searched the web and asked the experts. But I’m sure these interesting alternatives are there, especially when Agile is used to create systems that have a heavy engineering background. Please point them out to me, as I'd love to learn about them and how their users do it.

User stories have the same philosophy and faults as valuing “working software”. User stories are not values to most real stakeholders. Functions are fundamental, but they are not the increased value people want. User stories or derived Function Requirements describe what the user does, or wants to do. They will guide the Developers to create the functions needed for the sw to be able to “do” that. 

The Real Point is - Value Increases
The point is not sw functions, the point is to enable some Stakeholders to improve something, to do things better than before. The main focus has to be on the “better” part. If you are in the business of creating working sw, user stores might do the trick for you, but if you have any kind of competition, even from your own old system, user stories don't cut it. If your Stakeholders are at all demanding, you need to focus on how well the system you are developing does a Function for the Stakeholders.

Example
Let me give you an example from a authoritative text on Scrum. http://scrumtraininginstitute.com/home/stream_download/scrumprimer (external link) page 8 figure 2 The Product Backlog.
Item 1. As a buyer, I want to place a book in the shopping cart (see UI sketches on wiki page).

What is wrong? Everything is wrong! Let me give a quick breakdown.

First, the Function it describes, “to place a book in the shopping cart“ is already a solution. The pure Function is “to order a book”. Any specific way to make the order happen, like “shopping cart” will restrict the options/creativity space available for the Developer to find a solution, that will make the Function “order book” have better quality, as in perform better.

Second, the central part of competitiveness, the idea about “better”, is missing completely. 
The “how well” attribute of the Function (aka 'quality') is the critical aspect that allows the Developers to know, find, and prioritize the solutions that are;
1. better than the competitors (also information that’s missing, how good will competitors be?),
2. better than the sw product it is replacing (missing), 
3. better than the solutions specified in the “UI sketches” (aka solutions),
4. helping you know when you are over or under-designing, compared to the values needed and their worth.

Developers are essentially reduced to “bricklayers”. They are told what to do. The mighty Scrum framework is reduced to a big cooperative To-Do list that tells the Developers what to do, and you the Developer should just do it.

Summary of what is wrong with this User Story. 
The Product Backlog Item is mixing up 'required function' and (optional) 'solutions',  without feeling any guilt. The critical “how well” attributes are totally absent.

Here is a hint to an alternative way of expressing it (simplified Requirements, I would normally define some of the words etc., but found not needed for the points expressed):

Book-Order.Through
Scale: average % of books, that a user intends to buy, that they actually end up buying.
Past [System being replaced, last month] 75%
Past [Competitor x, last month] 85%
Status [new system, last delivery cycle] 80%
Tolerable [new system, May.] 85%
Goal [new system, May.] 95%

Book-Order.Speed
Scale: Average time, to complete a book order, of three books, that are known to the buyer, 
from: she has the intention of buying the first book, she is on a page where the book is displayed,
until: she has completed the order of the three books, and gotten her confirmation of order and of payment.
Past [System being replaced, last month] 10 min.
Past [Competitor x, last month] 7 min.
Status [new system, last delivery cycle] 6 min.
Tolerable [new system, next May.] 6 min.
Goal [new system, next May.] 1 min.

In plain english, and shortened, Book-Order.Speed reads: 
It is required that a buyer, by next Feb, can complete a book order of three books, in 1 min. 
If by next Feb. it takes more than 6 min., this project is a complete disaster.  
On the website it is replacing, it takes 10 min. 
Our main competitor has a system where it takes 7 min. 
And after last sprint (if Scrum) we measured our latest version to 6 min.

State the challenge without the Solution
In the Book-Order.Thrugh & Book-Order.Speed examples, the solution is not given, just the challenge. The challenge is to find the best solutions to reach the Goal levels. A challenge put forward in such a way focuses on delivering the desired value improvement to the Stakeholders. It leaves the creative and engineering aspect of how to best solve the challenge to the people best suited for that, the Developers.

From Customer to Developers
Needs as uttered from the customer and users are uttered from their perspective, from their background, with their engineering knowledge. They speak “baby talk” when it comes to development and engineering. They will say they need ‘password’, when they need ‘security’, they will come up with solutions that they think will solve their needs, but will not have the insight of all the Stakeholders needs required to make the best solution required for all Stakeholders.
Developers do have the potential to have the overview over all the Stakeholders needs and an overview of the technical possibilities.

Don't state the "how", Don't worry about the "what", Focus on the "How well"
Every bookseller has to have a system for ordering books. The Product Backlog item: “As a buyer, I want to place a book in the shopping cart (see UI sketches on wiki page)“ pins down the solution, states the obvious that is common among all competitors (the Function, the what) and omits the real Requirements which is essential for creating a competitive product (doing the Function better). 

Documentation Reduction
If you are not accustomed to the power of focusing on the "How well", you might think I am introducing more paperwork. The opposite is true. By learning the art of specifying the critical ends, as "what it will do" and "how well it will do it", one can eliminate the solutions (from the Requirements specs). 

Requirement documentation can be reduced drastically, like down to one page for huge projects. I just got a status report from a client of mine. He was a little shy when he told me that the Requirement documentation for his project consisted of only one requirement. His Requirement looks something like this: 

DB-Clean.Time
Scale: the average time, from a customer delivers a contact db to them, until it is given back to the customer, cleaned to the same quality as it is with the current system. 
    Past 5 hours 
    Status 1 hours 
    Goal 30 min.

That's it! He told me he did not have any other documented plan. He trusted (external link) they would find ways to reduce the time as they went along. And he (his development team that was free to find the most suitable solutions) had now brought the time down from 5 hours to 1 hour. He is as Agile as can be, AND he is creating a very competitive system. Note that the competitiveness didn't result from 'Agile' alone, but mainly from the Requirements practice used.

No creativity needed?
There is not much happening with the “function”, all book sellers have to have the same Function, it is either present or absent. If absent, you are not in that business.
What needs to be created is the “better attributes” of the functions. Better than the competitor/old system.
How do you create “better”? By coming up with solutions that together carry/create those “better attributes”. That means, if Solutions are called Requirements, as in 'required', as they are in User Stories, those 'required solutions' will directly deny the Developers the possibility to create better solutions, that could have resulted in a competitive product.

Skilled Developers need not apply!
When the Requirements of a project are focused on the functions and solutions, as is normally the case with User Stories, good craftsmanship, doing coding well, will not be appreciated. If your job is to code "put the book in the shopping cart", well that is what you will produce. This is likely to lead to yet another terrible system, do it and update your burn down chart. But if your real Requirement is something like Book-Order.Through & Book-Order.Speed (see above) thinking and knowledge is required. Then add your simultaneous Requirements for Maintainability, Security, Usability, and Upgradability to the challenge, and we need skillful people to specify Requirements and to suggest suitable architectures.

Where the Value and Cost is
Creating functions, of no particular quality, is just about free to do, but without the "how well" attributes, they are useless and value-less. What drives development cost is "how well" the Function does what it does. What is valuable to Stakeholders is also "how well" the Function does what it does. 
To better understand this, lets first look at extremes. Lets use Book-Order.Speed as an example. If it took about 7 weeks to complete the order of books, it would not matter if it could be done, no matter how good other aspects of the system are. People would not order books. At the other extreme, pushing the time down to 1 sec. to complete the order, would be technically very challenging, and probably expensive, but it could do wonders for sales. 
Now, what is happening if you (I'm potentially talking about you :-) are using User Stories or the like, without a main focus on the "how well" attributes.
    What is happening is that you are developing "good enough" functions. Obviously 7 weeks for Book-Order.Speed would not be accepted, so you develop it until it is ok; you find some solution that you like, and go with it. But is the system created better than the competitors? Who knows! Is the system better than the old system it is replacing? Sometimes yes, sometimes no. If they have a serious competitor, one who is targeting "ease of completing the sales" with vigor (think iTunes store's one-click sales machine!), 'good luck' competing with your User Stories.

A challenge to you!
I like to pass on a challenge one of my customers had. He was given a project from Microsoft, to implement a Microsoft built Customer Relationship Management (CRM) system at a telephone operator company. He was the Product Owner. He had about 6 months to roll out the system to all the employees there using CRM systems. 
Your challenge: By using Scrum, XP or any other Agile framework or method, how would you write the product backlog items or the requirements? I understand if you think I have given you too little information, but give it a go anyway. Just give me some examples of how you would specify the Product Backlog Items in our Blog comment section, or at least think about it for yourself, later I will tell you what he actually did, and then you can compare.

Hope!
There is hope. Being an empirical process control method, Scrum is not the direct cause of this illness, neither is Agile. With Scrum you are free to dump User Stories, and iteratively start using meaningful ways to describe the requirements! Where we have given Scrum Developers back the responsibility to use their skills and to be creative in the solution space, we see the Developers shine.

Your truly
Kai Gilb

Part 0 of 7 Introduction (external link)
Part 1 of 7 Wrong Focus (external link)
Part 2 of 7 Developer Creativity (external link)

To comment, you need to register (instant) and log in (top right).
By Tom Gilb TomGilb on Sun 31 of Jan., 2010 05:29 GMT+01:00

Tom's position on real software engineering: It is Not about programming!

Project-Requirements.png (4.34 Kb)
http://bit.ly/axtT9A (external link) www.semat.org (external link) My Position Paper for March Zurich Conference. Too many 'coders' involved!

A select group of 'wise old men' (at least 'old') including me, is going to meet 17-19 March at ETH Zurich, to tackle the problem of making real software engineering happen. I am also going to hold some courses public in town that week too.

We have failed miserably, and we have been the methods leaders, book writers, conference speakers for decades.

Reading some other's position papers, I am already worried, as I initially was, that some of these people still do not see a distinction between programming, and software engineering - between a craft of building, and an intellectual/practical discipline of designing and architecture.

They consistently fail to mention anything about quality and cost, or design or architecture to meet performance Requirements within constraints.! They consistently refer to code and coding processes. I know these guys, they are actually intelligent people - but it amazes me they have no sense at all of what engineering is. Lack of the culture.

Failure to engineer, while "improving Scrum Burn Rates" is arguably one major reason for large software system failure. I find that most large projects do not Quantify their top few critical (quality, improvement objectives. I have seen at least 3 $100 million software projects totally fail for this reason alone. Lots of smart programmers there though!

My personal prediction is that real major change in teaching, and doing, real software engineering, will only come about as a result of very major catastrophes, caused by bad software. In my imagination 300 aircraft will kill all their passengers, on a single day, due to an air traffic control 'glitch'. Caused by poor engineering practices. Will that wake people up?

Until then we can try to prepare the ground by working out ideas of what we should be doing - but nothing will happen until we are massively motivated - and we are really not motivated yet.

Even events like Nine Eleven (11 Sept, attacks), and Credit Crunch Financial Collapse are not big enough for us to change anything effectively. So something much more painful is required. I hope our ideas survive, the '2012' catastrophe (see this film - it makes you think).

Or wait a minute, our ideas on doing software are so bad now, that maybe if they all got wiped out, we might get a fresh start based on common sense? Yeah, wipe out all those dumb software ideas, including agile, then use our heads:

One simple survivor: deliver real measurable value for money to stakeholders.

Is that so difficult to understand?




By Kai Thomas Gilb kaiGilb on Fri 11 of Dec., 2009 01:38 GMT+01:00

Report with pictures from our Value Management experience workshop - building robots

Project-Requirements.png (4.34 Kb)

Sorry about all these pictures, but I am very excited about this workshop ;-)

Value_Management_Experience_Workshop00.png (444.71 Kb)

This is the setup for each team.
Prioritizing from Finance to Stakeholder Values
to Product with Product Values
to Sub-Products with Sub-Product Values
to Solutions.
to Evo Cycles.
Then build the Solutions with sw and Lego.
test with measurements
missions.
repeat.

Value_Management_Experience_Workshop01.png (591.98 Kb)

Here you see glimpses of the Value Decision Tables, and Solution description.

Value_Management_Experience_Workshop02.png (564.45 Kb)

Intense testing. Reality hits.

Value_Management_Experience_Workshop03.png (502.46 Kb)

Value_Management_Experience_Workshop04.png (596.30 Kb)

Getting better and better for every cycle (with a few occasional setbacks:-).

Value_Management_Experience_Workshop05.png (663.58 Kb)

Every critical Product Value is quantified with Status and Goal levels.

Value_Management_Experience_Workshop06.png (594.11 Kb)

Measure and improve.

Value_Management_Experience_Workshop07.png (688.49 Kb)

As the teams made the Robots faster, reliability and precision challenges came.
Intensity followed by laughter. One Robot took of and hid behind the speaker.

Value_Management_Experience_Workshop08.png (792.77 Kb)

at the toy store getting parts and discussing options.

Value_Management_Experience_Workshop09.png (791.38 Kb)

Value_Management_Experience_Workshop10.png (552.62 Kb)

Value_Management_Experience_Workshop11.png (545.71 Kb)

Fantastic to see how the Value Management methods drive competition, the name Competitive Engineering really finds its place in this workshop. I have never held a 3 day workshop where the participants learned so much about Value Management (Evo/Competitive Engineering). Kudos to all the participants that stayed with it through the early frustration caused by being asked to do what they had not yet learned to do. I hope there will be many such courses to come. Congratulations with your certifications, they are well earned.



By Tom Gilb TomGilb on Mon 07 of Dec., 2009 17:53 GMT+01:00

Part of a Set of slides on Project Predictability, for a Top Manager Presentation

Project-Requirements.png (4.34 Kb)
Principles of Professional Change


You have to define your critical organizational improvements quantitatively
You have to judge all organizational strategies in relation to these critical objectives
You have to roll out change early and often, and Measure the effect immediately
You have to prioritize change strategies that really work, and kill off those that don’t, before scaling up
Focus on Meta-Strategies: those that allow decentralized feedback and change during projects (like Evo and Spec QC)
Project Architecture must explicitly address quantified project objectives
All cost-driving specification must be quality controlled and have high quality (1 Major defect/page) exit levels
Projects must deliver Stakeholder Value incrementally and measurably
Thorough Stakeholder Value analysis must be used to prevent cost surprises later
Always prioritize the most efficient strategies next: high value/cost wrt risk
Sub-contract for no cure no pay, not for fixed cost or time and materials

http://www.gilb.com/tiki-download_file.php?fileId=364
By Tom Gilb TomGilb on Sat 05 of Dec., 2009 23:48 GMT+01:00

Business Values are always subjective, and almost always quantifiable: an angry answer to immature ideas

Project-Requirements.png (4.34 Kb)
A BLOGGER, FOLLOWED BY A TWITTER AND RETWEET SAID TODAY ......

"Ppl talk a lot about business value, but they forget that for most people business value is totally subjective! (i.e. unquantifiable)"

FROM Tom
To the blogger/twitterer (who could be many of you out there, not least - your manager!)


I think you need straightening out, regarding your terms
and concepts.

Of course, you don't have to get straightened out!  :)

'Subjective' means, based on personal opinion, as opposed to more-objective observation
"I think he is heavy". (subjective)
"The Scale shows he is 100 kilos" (objective)

Personal opinion can be quantified "I think he is about 100 kilos"

There is nothing wrong with value being subjective - in fact that is a normal, inevitable thing.
People and organizations have their own values, and that determines what they value.

Most of these values can be expressed quantitatively, if we want to, and know how.

But most often we do not Quantify our value statements, because we do not feel the need, we do not need to, we don't know how.

In my opinion, your view is dangerous, and your commonly held view that is one root cause of widespread project failure.

I suggest you study (if you care to rise above your misconceptions)
top level objectives

and 

vision engineering
Quantifying Stakeholder Values
Value delivery paper

and finally study the process for quantification in
ch 5 Competitive Engineering

When you have concluded, correctly, that you were wrong, misleading, and a danger to the IT community for spreading such incorrect views, you should consider blogging to illuminate your readers about your new insights.

Then consider what this might mean to the better control of agile processes (quantified values as Requirements and testable outputs, and increments).

Like this
Confirmit Case

Value Driven Project Management

Your observation might be more accurate and useful if you had said.... (you can quote me):

"People are good at articulating their business values with nice sounding words ('greater efficiency') but universally terrible at clarifying exactly what they mean numerically and testably. This is one root cause of project failure. The problem with articulating business values is not that people are intellectually incapable of quantifying and defining them. The problem is that they were never trained to Quantify them, nor were that asked by their organization and management to Quantify them" Tom Gilb 5 Dec 2009)

I think I will put the above in my blog, but I won't identify you. You are after all the victim of poor education regarding quantification of critical values, like most people. The good news is you can rise above the level of your teachers, if you choose to.

Don't take this personally. It is not your fault.
But it will  be your fault if you do not improve your understanding of these things.

If I seem angry - I am! These attitudes and misconceptions are directly at the heart of our horrendous IT project failure rate, and consequent lack of trust in IT. We need to learn to succeed more often than we fail. We need to deliver real expected value to society. The programmers of the world are not exactly famous for doing so. I am ashamed to be somehow related to the community. But I am fighting for change. How about you?

You might like to know there are some people who feel as strongly as I do that this immature profession needs to grow up.

http://www.semat.org/bin/view (external link)
Welcome if you want to join us.

Tom
.


SOME DICTIONARY DEFINITIONS

subjective |səbˈjektiv|
adjective
1 based on or influenced by personal feelings, tastes, or opinions : his views are highly subjective |there is always the danger of making a subjective judgment. Contrasted with objective 

value |ˈvalyoō|
noun
1 the regard that something is held to deserve; the importance or preciousness of something :your support is of great value.
• the material or monetary worth of something : prints seldom rise in value | equipment is included up to a total value of $500.
• the worth of something compared to the price paid or asked for it : at $12.50 the book is agood value.
• the usefulness of something considered in respect of a particular purpose : some new drugs are of great value in treating cancer.
• the relative rank, importance, or power of a playing card, chess piece, etc., according to the rules of the game.
2 ( values) a person's principles or standards of behavior; one's judgment of what is important in life : they internalize their parents' rules and values.
3 the numerical amount denoted by an algebraic term; a magnitude, quantity, or number : the mean value of x | an accurate value for the mass of Venus.

quantify |ˈkwäntəˌfī|
verb ( -fies, -fied)  trans. 
1 express or Measure the quantity of : it's very hard to Quantify the cost.
By Tom Gilb TomGilb on Fri 04 of Dec., 2009 23:00 GMT+01:00

Agile is NOT a major solution to Bad Government or Private IT Projects!

Project-Requirements.png (4.34 Kb)
From: Tom Gilb tom@gilb.com
Sent: 2009-12-03 10:14:10 CET
To: Frederik Hermann Siegumfeldt frhs@itst.dk

Subject: here is a summary of my 5 oral remarks after your talk at Agile 09 Copenhagen 2 Dec09

1. Agile is not any kind of main solution to the problem of failed or bad government projects.
It has no track record of doing so
Iteration (aka Evolutionary, US DoD Std 494, 1994, an Evolutionary standard, distancing itself from Waterfall) is a very useful principle, long before the 'Agile' era.
But you must not confuse Rapid delivery cycle feedback, with Agile. Agile (like Scrum, actually does the feedback process very badly! The Requirements are screwed up, so feedback works badly, see 2 below)

2. The primary problem with large projects today, in my extensive international experience, is "THE LACK OF CLARITY AND FOCUS ON THE TOP FEW CRITICAL OBJECTIVES OF THE PROJECT."
http://www.gilb.com/tiki-download_file.php?fileId=180
Eight CASE STUDIES
and also

http://www.gilb.com/tiki-download_file.php?fileId=237
Vision Engineering: how to convert management phrases into measurable targets and measurable strategies.

The problem is that projects, agile or not, fail to set really clear objectives (quantified improvements in several critical dimensions, like efficiency, productivity, responsiveness, ease of use, security, maintainability, adaptability). h development and test teams are not at all focussed on these wooly objectives, They are in fact forgotten forever.

Projects then fail to deliver actual expectations and hopes, to the woolly goals.

3. Systems Engineering: the IT and Software culture is incredibly 'algorithmic centered'. Their whole world is 'delivered code' (even databases are almost never mentioned!).
The problem is that delivery of value requires much more than some functional code, and in many cases we can deliver value best by NOT developing ANY code, even for an it system! For example by training or motivating users or passing a law or implementing a management policy or writing a contract.
So, our REAL solution, needs to be explicit about the DEVELOPMENT ENVIRONMENT. The development environment CANNOT BE LIMITED TO COMPUTER CODE. One way to do this is to focus on real value delivery, and allow ANY MEANS TO GET THERE.

Another view of the same thing is to officially adopt the SYSTEMS ENGINEERING paradigm (INCOSE.ORG). To say " we are systems engineering, we use any hardware, software, or human-organizational 'technologies' to reach our VALUE DELIVERY objectives.

Admittedly, Scrum, as taught by Jeff Sutherland, can be used for projects of any kind, because the essence is simply a rapid cycle feedback learning loop (which Scrum did not invent by any means).
BUT, most Scrum users we know, are code-centric. They do not apply a systems wide perspective.

So, if DANMARK is going to solve the problem of successfully building large government systems WE MUST SHIFT TO A 'SYSTEMS ENGINEERING' (Incose.org) paradigm.
We must put the coders in their place, as one technical component of a larger project, if used at all to solve some problems! People built large national systems without software milleniums ago!

4. The problem with getting successful IT systems is NOT 'the right process' (agile or other).

It is the motivation to deliver value! We have no such motivation. In fact we have negative motivation!

If the projecr runds over cost and time, the suppliers earn far more money

(FOR EXCELLENT DOCUMENTATION SEE Craigs book: Plundering the Public Sector
http://www.amazon.co.uk/Plundering-Public-Sector-David-Craig/dp/1845293746 (external link)

My suggestion is that we must move in the direction of NO CURE NO PAY contracting. Suppliers only get paid for value delivered, not work done.
http://www.gilb.com/tiki-download_file.php?fileId=38 no cure no pay paper
http://www.gilb.com/tiki-download_file.php?fileId=85 ncnp slides

THE GOVERNMENT SHOULD LEAD, ON MAKING THIS THE NORM!

PS the combined mafia-like (I can't think of a nicer description) forces (D. Craig, book above and below) of Accenture, CSC, Price Waterhouse and their like will massively oppose this. We need strong political leadership. Is anyone in Denmark strong enough to make this happen? Not yet!

5.THE MAFIA CONSPIRACY:
as mentioned SEE Craigs book: Plundering the Public Sector
http://www.amazon.co.uk/Plundering-Public-Sector-David-Craig/dp/1845293746 (external link)
The biggest problem is not technical. It is about money and power.

See the tragedy of medical systems IT
http://www.computerworld.com/s/article/9141428/ (external link)
Harvard_study_Computers_don_t_save_hospitals_money?taxonomyId=12&pageNumber=1

THIS IS SO MUCH BIGGER THAN 'AGILE' !
The Prime Minister should lead, and ministers should also support and lead.

Should Denmark have the courage and ability to tackle these problems, I would be happy to help in various ways.

There are no leaders in the world on these issues: be a world leader, Denmark, in stopping to pollution of bad IT projects in government.This is also an 'environmental' problem!

Tom


By Tom Gilb TomGilb on Tue 17 of Nov., 2009 15:27 GMT+01:00

Systems Architecture and Systems Engineering?

Project-Requirements.png (4.34 Kb)
MY ANSWER,
TO THE EMAIL QUESTION COPIED AT THE BOTTOM OF THIS BLOG

NOBODY AND NO 'BODY' HAS AGREED ON A SATISFACTORY DEFINITION IMHO OF 'ARCHITECTURE'
Our profession (as Mark Maier, , pointed out in a chapter The Art of Systems Architecting) has no agreement on the meaning of (systems) architecture, let alone engineering.

It becomes consequently arbitrary to train and certify them.

KOEN ON 'WHAT IS ENGINEERING'?
I like to defer to the deep thinker, Billy V. Koen, and I agree with his conclusions

http://online.engineering.illinois.edu/webcourses/seminars/ETC/notes/01-24-07.pdf (external link)
slides

http://www.cse.hcmut.edu.vn/~minhle/congtackysu_2008/Engineering_Method.pdf (external link)
paper

http://www.me.utexas.edu/~koen/OUP/OUP.html (external link)
book - a remarkably deep book !

CAN WE EVEN AGREE ON THE COMPLEX NOTION OF REQUIREMENTS?
Actually, since engineering and architecture are completely dependent on the notion of Requirements, it might be interesting if we found mature agreement on the concept of requirements! Most of the real world is in a terribly confused state about it, in my view. It is then premature for the same world to decide what an engineer or architect is to do.

HERE IS MY LATEST PLANGUAGE DEFINITION OF Requirement
A ‘requirement’ is a
stakeholder-prioritized future state.


ARE ARCHITECTURE AND ENGINEERING DIFFERENT?
I believe that they are essentially identical as disciplines. The practical and immediate temporal distinction being scope and viewpoint alone.

"JUST CALLING SOMETHING BY A NAME, DOESN'T MAKE IT SO" (G M Weinberg)
We choose, arbitrarily, to say 'architecture' when we want to emphasize something more whole, more complete. And we say 'engineering' when we wish to emphasize something more specialized, and more of a subset of the architecture we referred to. There is a human communication needs difference. But I do not believe there is a difference in the necessary logical processes to carry out the disciplines, whatever they are named, properly.

Those disciplines, in my personal view, are thoroughly described in my CE book, and my many papers and slides (gilb.com).

SO WHICH VIEW OF ARCHITECTURE AND ENGINEERING DO I BELIEVE IN?
Here is a summary of my direct answers to the 3 options described, below (they are 'in place' there, below)

Gilb COMMENT: both disciplines must necessarily find the 'designs'/'solutions' (how?), to meet the Requirements (what=function, how well = performance levels, constraints = limits on solution). The only difference is one of detail, and level of consideration.

Gilb COMMENT: YES. Architecture is a logically necessary 'swim lane'; which will 'narrow in' on the next set of engineering approaches. An architect for example might choose a 'buy' or 'maintain old system' avenue, rather than a 'build new system' avenue - thus radically changing the disciplines needed downstream. 'Legal/Procurement Engineering' anyone?

Gilb COMMENT: the level of experience is immaterial. Good electrical engineers do not become building architects. Both disciplines need intelligent, trained and experienced people, using logical methods to achieve their purpose. Both need access to information that is not in their personal memory.

Tom

MY FORMAL DEFINITION OF CONCEPTS RELATED TO ARCHITECTURE AND ENGINEERING
ps here is a subset of my Concept Glossary, re Architecture and Engineering
engineering and architecture concepts - below is a subset )

http://www.gilb.com/tiki-download_file.php?fileId=287 (external link)

The full Glossary is at
http://www.gilb.com/tiki-download_file.php?fileId=25 (external link)

=== here is the email I got today 17 Nov 2009, from Daniel in NJ

Tom,
I found your paper (“Systems Architecture: a View Based on Multiple Impacts”, http://www.gilb.com/tiki-download_file.php?fileId=47) (external link) in the INCOSE SAWG web site. I realize that this paper is a couple of years old now, so I was wondering how you view the current initiatives to certify or credential systems architects. How do you view systems architecture in relation to systems engineering? I have encountered at least 3 fundamentally different perspectives on this.

Architecture is emerging as an engineering science separate and distinct from systems engineering. Architects envision the "what" with out-of-the-box thinking that creates solutions that may leverage existing solutions but are not constrained by them. Systems engineers, then, add flesh to the architecture's bones by sweating the details of "how". Those interested in creating new departments (that they can Chair or lead) tend to be attracted to this view. Does that necessarily make it invalid? Companies and organizations are currently standing up separate Boards to "qualify" systems engineers and systems architects. Does this imply that they are distinct engineering disciplines?

Gilb COMMENT: both disciplines must necessarily find the 'designs' (how?), to meet the Requirements (what=function, how well = performance levels, constraints = limits on solution). The only difference is one of detail and level of consideration.
-----
Architecture is a level of proficiency in that the most experienced and capable systems engineers are qualified to be architects. A novice systems engineer may be good at Requirements development or functional modeling but inexperienced in verification planning or discrete event simulation analysis. Architects who lead the team must be reasonably skilled in all these areas. I have had two architects from what was once Bell Labs tell me that this is how the term was used in that industry. "The architect was what every systems engineer wanted to grow up to be." I tend to call this the "Jedi Master" definition since the architect has to do everything that the SE does--only better.

Gilb COMMENT: the level of experience is immaterial. Good electrical engineers do not become building architects. Both disciplines need intelligent, trained and experienced people, using logical methods to achieve their purpose. Both need access to information that is not in their personal memory.

-----
Architecture is one of several skill areas that a systems engineer must master. The older engineers will tell you that before Zachman hit it big, we were all systems engineers. We did the same flow diagrams and network layouts, but those were not called architecture artifacts in those days. Architects may not need to do operational analysis trades or verification plans, but systems engineers do. If the previous perspective is thought of as a vertical relationship with architects being at the top of the SE pyramid, then this one might be characterized as the horizontal view with architecture just being one of the "swim lanes" of the total skill set needed for systems engineering-along side Requirements analysis, operational analysis, verification, etc.

Gilb COMMENT: YES. Architecture is a logically necessary 'swim lane' which will 'narrow in' on the next set of engineering approaches. An architect for example might choose a 'buy' or 'maintain old system' avenue, rather than a 'build new system' avenue - thus radically changing the disciplines needed downstream. 'Legal/Procurement Engineering' anyone?
------

Are you aware of any work being done to clarify the roles of systems architect vs. systems engineer? With these three diverse views out there (at least), we seem to be a long way from reaching consensus.

I would welcome your thoughts.

Page: 1/9 Next Page Last Page
1 2 3 9