For an introduction of the fundamental non-technical design oriented foundation we build from. try this link: http://en.wikipedia.org/wiki/Domain-driven_design .
Let’s set the stage with a quote from the co-author of PeopleWare, a book on our short list for ‘most influential’ in software engineering.
Without knowing anything at all about your current project, I’ll bet even money that you’ll be late. After all, well over half of all projects deliver late or deliver less than was promised by the original deadline. It’s far worse when a project is on an admittedly aggressive schedule. Project people seem disconcerted when I proclaim that I’m willing to bet against them. They try so hard to believe that they’ll buck the odds. What usually happens is that everyone agrees that the deadline is very tight; everyone works very hard; and then, when people see that they won’t make it, they are shocked, disappointed, and deeply dismayed. —Tim Lister
Reprinted by permission of Dorset House Publishing from WALTZING WITH BEARS (ISBN: 0-932633-60-9), p. 48. Copyright © 2003 by Tom DeMarco and Timothy Lister. All rights reserved.
- Are you suprised at the high quality of open-source at what appears to be a lack of profit-motive?
- Whare is driving thousands of the world’s best developers to ’give away their work’ in a sense?
- Take NHibernate, the Castle Project, NUnit, not to mention Ubuntu and thousands of other projects and companies (including Microsoft!)
- Do you care why so many of us treat our work more as a life style, a religion and as stated a philosophy that is core to our existence even? HINT: think art.
- Think art, but realize that this strange art is treated as a learned skill.
Indeed there is a very close endeavor of work which looks to the untrained eye identical to this art. Therefore they are lumped together for other’s conveniences and those true artists are seen and behave as the astronomically different creatures they are.
Not by choice any more then one of the world’s best painters can ‘choose to be that’.
Think many representing negative or laughably low achievement but economically high pay in the far larger ‘job’ version.
Now understand the fact that today the much smaller group of artists (who also do the ‘job’ version of their art and do it far better then those in the role without choice, but understandably is is very annoying if they cannot practice their art at some level some of the time.
The people who need to care about this content (and really more about the content on what a ‘wicked problem’ is) will not be here. Think how you got here via whatever means.
Now imagine what it would take given these memes of fact (not opinion and not even OUR memes of fact) that represent at least 100 billions in US Economy damage to the people who need them. Consider that that is 100 billion per year (corrected for inflation) and it has been fixable for about a decade (getting easier each year and now so easy that it is sickening to those of us who care to understand).
We told you not to read this. No ’sale’ is needed as these are for anyone who wants to educate themselves and from far better sources then us!
But we are morally obligated to educate and discuss. There is a major difference.
We care to both act and not act on this.
We do not act in the sense we walk away from work more then not as we know easily and quickly if it would require our deceit to provide ‘what the client is demanding’. As business people and technologists we are still shocked this exists but is easily shown.
We do act using things like this blog, and our mandate to give until we cannot even if that means give until your near death. The open source movement in many ways is a reaction to everything we are above. They were so moved that billions in assets are produce and basically given away (yes other benefits accrue but they must be earned and in no way are related to this discussion. That money is earned 100x over by most in the amazing open source world.
Now consider that free markets have not even scratched this problem, consider that for those who need to care they know better but believe it harder then facts prove, are motivated NOT to do anything as it would harm their personal power base, or most who don’t value technology as strategic only operational, and at the organization level just have no will to do the admittedly hard work to fix it.
However, nothing would be finer so to speak if any of this resonates. We know it will for almost all talented software developers, not all the content perhaps but at least more then half. If your that person people offer feedback and we love vigorous argument if you disagree vigorously!
You should get made about the reasons why we must have this philosophy or we are deciding to sell our souls, and once you learn it cannot be undone (if I could go back I would not have taken the blue pill perhaps)….
The domain.dot.net team philosophy:
Why a Philosophy? Almost any complex and long-lasting endeavor (especially done in a group) is improved by concrete and explicit statements of shared morality, acceptable and expected behaviors and all the other fun things only ‘philosophers’ have really tried to tackle.
Software as a discipline and as an art has lacked much attention on these ideas and we believe that just might be a large reason why software is almost universally a disaster when getting beyond the individual. When you decide to learn the facts most wish they never started, We hold our standards to be something completely alien to what could be called ‘the norm’. What alternative is there but accepting mediocrity?
The difference between average and the best is astounding. Typically 2000-3000% (I kid you not) - studies available upon request and will be posted here
By almost any ‘business driven’ measure our industry is deeply broken, especially when compared to other disciplines (except perhaps pure research by that by definition expects large costs with returns if any to be way out in time)
As most ‘consumers’ of our work are not empowered to demand change in effective ways, we must change from within
The ‘invisible hand’ of markets does not exist for software engineering projects yet, and our non-technical stakeholders are not able to demand specifics therefore the power is biased to not change (and this by definition leads to no real improvements happening)
Now that transformation is possible it is often thwarted as these shift the power base as described. Organization behavior has explored this and nothing unique can be said here.
Our consumers are quickly BECOMING empowered, only much slower then is possible
Once the power has shifted we already have insight into what will happen based on past events in history
We know to expect a near reinvention of what the definition of ’software engineering’ is based on similar events in manufacturing, perhaps as dramatic as the industrial revolution.
What to look for when joining a team - hold out for quality
- An optimized software culture has predictable traits from many studies performed in the last decade (and even before)
- The strategic culture will quantify individual ‘effectiveness’ with a heavy bias to their production of reusable assets.
These assets are assumed to ‘work’ much like you assume a new toaster to just work.
- Instead the key metrics are for many and should be for all:
- Usability / Product Design / Semantic Integrity of Interface
- This is the ‘Web Service Contract’, Fluent API, Domain semantic correctness with proper levels of abstraction
- This is not ‘U.I’ design in any way. This has already been accepted as the norm. Also this point is discussing OTHER DEVELOPERS as the consumer
Expect far fewer developers. This could happen today but due to the balance of power waste is allowed to exist.
From exponential advances in ‘technology’ abstraction that hit the heart of general software development, by derivation we can nearly assert the above
As the past has shown, there will be a likely split into specially individuals focused more on deeply technical ‘manufacturing’ concerns and those focused deeply on ‘domain’ concerns and ‘assembling’ the work of the manufacturers.
In many ways it is an evolutionary leap from the component market we see today
Ease of Maintenance / Code Refactoring
How well is the abstraction produced able to make the hard work easier and the easy work no harder
The general engineer must move their skills to include ‘usability’, ‘designing for the customer’, and a constant process of outward in thinking rather then vice versa.
These factors are a large part of what drove manufacturing into Lean Design
There was so much waste to be removed for example in the Automotive industry that the entire competitive landscape changed when Japan executed what is basically smart ways to do the obvious
Things are arguably (however not an applies to apples comparison) , far worse in software then they ever were then for cars (based on many studies.. Just ask!), we simply lack the informed and influential consumers who feel they can demand change.
Today most cultures succeed only where individual superstars emerge.
Rarely are these teams driven by code reuse, refactoring, maintenance concerns, or other critical tasks not directly tied to short-term code production
A sure way to find a great team?
- They are driven to NOT write code unless necessary
- They will not accept letting their valuable work suffer from entropy over time
- The pride in their work mandates what most of ‘Agile’ popularized (however Agile as stated here is just common sense)
- Often when analyzed most of the Agile practices were always in place, regardless of their knowing what to call them
- Most software developers tend to value maximization of personal challenge/enjoyment coupled with an expectation of little to zero transparency on their internal work product.
- Until this change from above, why would the ingrained 30+ year history of ‘programmers’ working this way change?
|






[...] the domain.dot.net philosophy => start.here [...]
Pingback by Fun Code Challenge : C# 3.0 Linq APM Duplicate File Finder « damon wilder carr — 06.23.08 @ 1:04 am
[...] for the failures of the past and perhaps via a common morality, try to improve thing moving forward.http://blog.domaindotnet.com/the-domaindotnet-philosophy/Obama: ‘It’s time … to change America’ UPIDENVER, Aug. 28 UPI — Following are the remarks [...]
Pingback by moral philosophy — 09.17.08 @ 12:46 am