Jane Cleland-Huang PhD<br />DePaul University<br />jhuang@cs.depaul.edu<br /><a href="http://facweb.cs.depaul.edu/jhuang" target="_blank" rel="nofollow">http://facweb.cs.depaul.edu/jhuang</a>
Regards
Mcgill
Jane Cleland-Huang PhD<br />DePaul University<br />jhuang@cs.depaul.edu<br /><a href="http://facweb.cs.depaul.edu/jhuang" target="_blank" rel="nofollow">http://facweb.cs.depaul.edu/jhuang</a>
Originally posted by Anuj Upadhyay:
I am not sure if one will be able to adopt and implement one process, we are still far from standardizing the process like we have for the construction or automotive industry.
The soul is dyed the color of its thoughts. Think only on those things that are in line with your principles and can bear the light of day. The content of your character is your choice. Day by day, what you do is who you become. Your integrity is your destiny - it is the light that guides your way. - Heraclitus
Author - Software By Numbers<br /><a href="http://www.softwarebynumbers.org" target="_blank" rel="nofollow">http://www.softwarebynumbers.org</a>
Originally posted by Jane Cleland-Huang:
So I guess we avoided the issue that you mentioned. I personally like to see a flexible process that is fitted to the current project, organization, and developers' characteristics and skills.
Originally posted by Ilja Preuss:
Notice that as software developers it isn't our responsibility to reliably reproduce a defined product, as in car manufacturing. It is our responsibility to design new products - I am not sure that any industry has a standardized process for this, nor am I convinced that there would be value in such a thing...
Originally posted by Valentin Crettaz:
And so do I, as I'm afraid that there is currently no existing process or methodology that allows to take all involved parties' concerns into account... For this reason, it is currently not possible to use only one process for developing software.
All available processes and methodologies are almost never used as is, they are always somehow *adapted* to the organization that uses it.
The soul is dyed the color of its thoughts. Think only on those things that are in line with your principles and can bear the light of day. The content of your character is your choice. Day by day, what you do is who you become. Your integrity is your destiny - it is the light that guides your way. - Heraclitus
How would you map this "construction/automotive industry approach" into software development?Originally posted by Anuj Upadhyay:
What I meant by the example about construction / automotive industry was to reflect the way we approach something, like before we build something we make a plan - drawing - which includes detailed and measurable specification of the finished product based on know standard in the industry.
Yes, we learn to factor commonalities within a problem domain into "standards" which are realized in product offerings from vendors. That's a cycle that will never end -- a feature that's competitive advantage today is a commodity of tomorrow...Software processes tend to provide ways to achieve these objectives apart from some specific issues local to our industry. What we lack is know standards and that is the core.
I am happy that some people are concerned and write books on engineering topics. Maybe one good idea may become a standard.
Author of Test Driven (2007) and Effective Unit Testing (2013) [Blog] [HowToAskQuestionsOnJavaRanch]
What about the customer perspective? After all, a software is always made for someone or some organization who pays for it. Usually, when I pay for something I would like to see my requirements properly and accurately implemented. When the software is developed in-house, the customer is the company itself and this is where ROI usually comes in. Does your method provide some way of verifying that the customer can also measure its ROI? If not, how do you think the method could be amended or augmented to make this information available. Valentin Cretazz
Jane Cleland-Huang PhD<br />DePaul University<br />jhuang@cs.depaul.edu<br /><a href="http://facweb.cs.depaul.edu/jhuang" target="_blank" rel="nofollow">http://facweb.cs.depaul.edu/jhuang</a>
Don't you fear that the ever-recurring willingness to reduce time to market of a feature (or group thereof) negatively impacts its quality? Valentin Cretazz
Jane Cleland-Huang PhD<br />DePaul University<br />jhuang@cs.depaul.edu<br /><a href="http://facweb.cs.depaul.edu/jhuang" target="_blank" rel="nofollow">http://facweb.cs.depaul.edu/jhuang</a>
Originally posted by Anuj Upadhyay:
I agree with you that it is not our responsibility to reproduce a defined product but what I meant was that we should have a minimal level of conformance.
What I meant by the example about construction / automotive industry was to reflect the way we approach something, like before we build something we make a plan - drawing - which includes detailed and measurable specification of the finished product based on know standard in the industry.
I am happy that some people are concerned and write books on engineering topics. Maybe one good idea may become a standard.
The soul is dyed the color of its thoughts. Think only on those things that are in line with your principles and can bear the light of day. The content of your character is your choice. Day by day, what you do is who you become. Your integrity is your destiny - it is the light that guides your way. - Heraclitus
Originally posted by Jane Cleland-Huang:
I guess there is no easy answer here except to say that each organization has to set their own priorities. However, if we can decompose a system into MMFs, then we can deliver parts of the product early - and invest the necessary time into them to get the quality right.
I think there will always be some organizations that favor speed of delivery over quality, and others that are willing to invest a little extra time and effort to get the quality right.
The soul is dyed the color of its thoughts. Think only on those things that are in line with your principles and can bear the light of day. The content of your character is your choice. Day by day, what you do is who you become. Your integrity is your destiny - it is the light that guides your way. - Heraclitus
Originally posted by Valentin Crettaz:
I'm not even convinced that, if done right, delivering quality *does* need more time... --Ilja Preuss
That's an interesting point you raise here, Ilja. Agreed, today people majoritarly think that producing quality (software or whatever else for that matter) costs more. I wouldn't bet on that, though...
The soul is dyed the color of its thoughts. Think only on those things that are in line with your principles and can bear the light of day. The content of your character is your choice. Day by day, what you do is who you become. Your integrity is your destiny - it is the light that guides your way. - Heraclitus
Originally posted by Ilja Preuss:
Conformance to what - and why?
[ April 28, 2004: Message edited by: Ilja Preuss ]
You could make the argument that we are actually doing this - that the source code we write *is* the plan, which is then executed by the compiler to build the real product, the actual runnable system.
Anyway, we need to understand *why* in many industries it is good practice to do a detailed plan before starting construction. In my understanding the most important force is that construction is expensive - if after construction you need to change a detail and start over, much time and money will be wasted. Fortunately, today this force is *much* weaker in software development.
Originally posted by Jane Cleland-Huang:
Another great question! Of course this could always be a danger - and we've seen it time and again in the software industry. Organizations willing to deliver early buggy software in order to beat their competitors to the door.
[ April 28, 2004: Message edited by: Jane Cleland-Huang ]
Don't hold your breath...![]()
Originally posted by Anuj Upadhyay:
What would one want to conform to when developing mission critical systems i.e. medical equipment - heart and lung support m/c or systems for an aircraft?
quote:
--------------------------------------------------------------------------------
You could make the argument that we are actually doing this - that the source code we write *is* the plan, which is then executed by the compiler to build the real product, the actual runnable system.
--------------------------------------------------------------------------------
I would not if I were to develop a system similar to the ones mentioned above.
Also, I would say it is weaker because we don't know what quality we must have. There is no reference to compare to; we accept software no matter how bad it may be.
The soul is dyed the color of its thoughts. Think only on those things that are in line with your principles and can bear the light of day. The content of your character is your choice. Day by day, what you do is who you become. Your integrity is your destiny - it is the light that guides your way. - Heraclitus
The only reason for time is so that everything doesn't happen all at once.
- Buckaroo Banzai
Originally posted by John Wetherbie:
Having proof beyond your own experiences would greatly help convince people that quality is worth the effort.
The soul is dyed the color of its thoughts. Think only on those things that are in line with your principles and can bear the light of day. The content of your character is your choice. Day by day, what you do is who you become. Your integrity is your destiny - it is the light that guides your way. - Heraclitus
This is (once again) a question of vocabulary... I would say that the code is indeed the design, and that people sometimes need to see different views (abstractions) of that design in the form of UML diagrams etc.Originally posted by Valentin Crettaz:
To me, the design is something that has the capability of giving an abstract view of the system in a much better way than the code. The design should be something very intuitive to a human being. Code is not intuitive to me.
Author of Test Driven (2007) and Effective Unit Testing (2013) [Blog] [HowToAskQuestionsOnJavaRanch]
Originally posted by Anuj Upadhyay:
I wanted to compare the contraction process to software systems development process, this is a high level view and that is what I feel the book also addresses - a more global view of the process.
The soul is dyed the color of its thoughts. Think only on those things that are in line with your principles and can bear the light of day. The content of your character is your choice. Day by day, what you do is who you become. Your integrity is your destiny - it is the light that guides your way. - Heraclitus
Originally posted by Valentin Crettaz:
Also, I would say it is weaker because we don't know what quality we must have. There is no reference to compare to; we accept software no matter how bad it may be. --Anuj Upadhyay
What matters is that the software satisfy the quality requirements of the person who pays for it. And customers should not accept software how bad it may be...
Well, I actually tend to believe that I know quite well what internal and external quality my software must have. And I can create a reference if I care to, for example in the form of automated acceptance tests. I don't have to accept bad software, if I don't want to. --Ilja Preuss
Well, ideally, yes. But how do you deal with time pressure and hard deadlines then? If the software has to go out by some date, you might have to accept letting some *minor* flaws stay in your software until the next maintenance or corrective release.
The soul is dyed the color of its thoughts. Think only on those things that are in line with your principles and can bear the light of day. The content of your character is your choice. Day by day, what you do is who you become. Your integrity is your destiny - it is the light that guides your way. - Heraclitus
Originally posted by Valentin Crettaz:
Yes, happiness of the customer is the final reference that counts. The art then is to get feedback from this reference as detailed, objectively and early as possible... --Ilja Preuss
...and to be able to incorporate the feedback in the software in a reliable and productive way. Today, I'm afraid we lack the proper tools for achieving that.
And may I ask what kind of means do you use to "manage quality"? To be aware of what is happening is one thing, to do something about it is another.
I think, human beings are not dumb, we can all be aware of what is happening, we are just helpless when it comes to dealing with complexity because the appropriate tools don't exist yet.
The soul is dyed the color of its thoughts. Think only on those things that are in line with your principles and can bear the light of day. The content of your character is your choice. Day by day, what you do is who you become. Your integrity is your destiny - it is the light that guides your way. - Heraclitus
Originally posted by Valentin Crettaz:
Agile methods go in the right direction. But we also need agile "tools" that automate agile methods
Well, when you have to care about too many things, the danger of stopping to care about some tiny details is not that far. That's why we need intelligent tools that does most of the mechanical (non-business related) work for us. I say non-business related because in the end the thing you (should) care most about is the business logic. All the rest is plumbing, and that plumbing has nothing to do with the business the software is made for. That plumbing should be the responsibility of smart tools, not humans who have to care for it and forget half the screws and bolts along the way.
the impossibility to build exhaustive test cases for testing 100% of your application
As soon as the design grows (or the code base for that matter), developers, architects, programmers, whoever is working on the project, start to loose the overall view of the system and this lost is a big danger for the resulting system because you have no way to guarantee that it correctly implements the requirements and no way to assess its correctness regarding to the original specification.
I have yet to see one single project on earth where the resulting system was considered 100% compliant with its specification. Maybe we do not want systems to be 100% compliant, but then why do we specify the system in the first place?
The soul is dyed the color of its thoughts. Think only on those things that are in line with your principles and can bear the light of day. The content of your character is your choice. Day by day, what you do is who you become. Your integrity is your destiny - it is the light that guides your way. - Heraclitus
Did you see how Paul cut 87% off of his electric heat bill with 82 watts of micro heaters? |