Declaration
Granville Miller (rmiller@togethersoft.com)
Consultants and developers, TogetherSoft
August 2001
Granville Miller temporarily gave up the demand collection topic and started to discuss another fascinating topic: Child overall software programming. Let's look at how this method supplements and extends the flexible development movement principle, and how it may change the education and software development practices of software developers in mainstream development circles. Please share your thoughts on this article with the author and other readers in the Forum.
In the conclusions of my early column (see references), I promised that this column will specifically discuss the various methods for collecting requirements during flexible development. However, when I started that column, I realized that it might be worth starting with a big discussion about flexible software development. But when I started on that topic, I found myself eager to discuss the topic related to sub-overall software development.
This is not surprising, because I believe that sub-overall software development is the next step in flexible software development. I was very excited about this. I chose to change my path and introduced my very unique sub-overall Software Development Declaration. We will collect this topic for the next Response Request.
Flexible software development
The flexible software development movement has a huge impact on the theory and practice of software engineering. Its advocates successfully challenged and refuted the excellent System Development Principles proved by practice, and replaced them with their own. The basis of the Movement lies in four core values, which were first outlined in the flexible Software Development Declaration (see references ):
- Individuals and interactions are superior to processes and tools
- Useful software is better than comprehensive documentation
- Customer cooperation is superior to contract negotiation
- Responding to changes is better than following the plan
In fact, these values represent deviations from those that are supported by traditional software development methods. The highest goal is to create a software development environment that is more beneficial to success. Indeed, the flexible movement has left its mark in the history of software development. However, although flexible movement is revolutionary, it is only the first step in more complex and beneficial development practices. Sub-overall software development is the next step.
Is the process the first priority?
During the Industrial Revolution, Mr. Frederick Winslow Taylor studied the way people work. He studied time and action to optimize the use of physical skills and effectively create products. Taylor is famous for his persistence in efficiency principles. His famous quote outlines his feelings for Industrial Workers: "In the past, people were the first element. In the future, the system may become the first element ."
Efficiency follow-up and system first or process first principle are two basic components of quality management. Quality management is to study and implement those activities that will improve quality if they are correctly implemented. Key words:Correct implementation. These phrases form a Quality Management Security Port. Certainly, if your business, manufacturing, or engineering practices cannot improve quality, you will not implement them correctly.
Although I don't believe there is a quality management crisis in software development, I do see that failure is happening in our industry. These failures are often caused by processes and technologies because the process is not correctly implemented or the technology is not mature. However, I think the process and technology blame for failure is often an escape. Especially when you consider Alistair Cockburn's assertions that the process and technology in successful software development are the second element (see references.
People are the first element of any software development project. Any good front-line administrator knows that his or her team members are the primary and most useful assets of the project. A software development principle that will never be replaced is a good software developed by a good person. However, if this is the case, should we blame people for failed development projects? The answer is no!
Holon)
I believe it is impossible to find the best behavior that reflects excellent software development skills. Only the battlefield. The two most useful guidelines for a single soldier's success are training and initiative. The best army allows a single soldier to decide how to achieve their goals during the battle. Many combat victories are achieved through the individual thinking and actions of many soldiers, while at the same time fighting together as a team.
An entity that maintains its independence and acts as a whole at the same timeHolon). This term is used by Arthur KoestlerOverall(Holos or the whole) andPart(On or "the part. The child has been used to describe the behavior of society, cells, and organizations, as well as the recent manufacturing behavior. I believe that the sub-overall (holonic) behavior is practical for software developers and may be an ideal way of working.
The fact is that we continue to follow the concept of Frederick Winslow Taylor when developing software. The Research of time and Action puts forward the amazing law of academic Software Engineering cycle. However, software development has nothing to do with time and action, just like many other elements in the information age. It is related to creation, innovation, and people.
For software development, we have inherited the idea of the birth of the industrial age-adhering to the idea and environment of manufacturing-based assembly line production. In this environment, individuals cannot form a climate. He did not authorize the creation of changes, and therefore should not blame him for failing the life cycle of the change (software development cycle. Perhaps it is time to stop taking process and technology as the first element, so that the true first element-people-is the center.
Sub-overall software development
Software Engineering is a craft. It requires wisdom. Its principles are complex and require knowledge. The best principle is still under development. Because the field of software engineering is so extensive, no one can "master" it completely. It is also because this field is constantly developing and knowledge persistence requires constant efforts and learning.
If you are a good developer, modeler, or administrator, you should know what I mean. You have faced a variety of techniques and then routinely selected the best one for your work. You have adjusted and managed to find a solution during the crisis. You can make the sub-entity concrete. Do you need a software development process that specifies what you should do next at any given time? No.
The true sub-Software Development Organization recognizes that different people have different ways of thinking. Some people think in an abstract way, while others are specific. Some are strategic planners, while others are action-oriented. The technologies used by the sub-organizations allow people to work together while choosing the best working method. These organizations allow people to work in the best way they discover. In short, sub-overall software development requires continuous learning and individual adaptation. It encourages differences.
Training Model
I assert these warnings-our training is not as mature as it should be. In comparison, the training of soldiers can be traced back to thousands of years ago (the most conservative estimate ). It has developed and matured for many centuries. New technologies have changed some of our combat methods. However, many basic models of the war have not changed due to technological changes, as do the training of soldiers. As we embrace technological changes, we need to adapt to these eternal lessons.
Half of the effective combat training is to provide soldiers with an alternative battle tactical library. The other half involves teaching them to create their own tactics as they train. Similarly, I would like to solemnly announce that half of the effective education for software developers lies in the acquisition of knowledge and skills. The other half is to learn how to handle changes and quickly move forward in the ever-changing field. In short, let's innovate.
Software development without security network
Many software development processes provide almost no security net. Some people propose to repeat the process itself, as if they repeatedly view the same status chart and eventually get more information. Repeat our diagnostic documentation to improve them, but it takes effect only after the feedback method is introduced. Simple repetition is not enough when it is necessary to know where we may go astray.
Supplemental activities
An activity that can be combined to correct expected errors is becoming a growth trend. This activity is calledSupplement. For example, we use domain analysis to weigh case modeling to ensure that subsequent object models do not work. These complementary activities prevent us from making common mistakes.
Without additional activities, the second element, such as process and technology, is our only security net. If we are in trouble, we can blame them. Because most software development processes only have two dimensions at most, maybe they deserve the blame. Indeed, in addition to giving us a sense of control, the process has no other purpose. It is a false security net.
Process? What process?
Does this mean that you can discard the software development process and develop it without the support of the security net? Unless you are responsible for accepting project failures.
On the other hand, if you are not adapting, you will not try a new method for doing things. If you do not try new things, you will not learn, develop and become the best. This is a process of continuous exploration, and none of us can complete it immediately at any time.
Even if you select a security net that has been established, you may not follow it completely. This is not the case unless everyone in the group has the same idea. If you find the ultimate process that everyone in the group feels best and applies to all your projects, please send it to me. However, I don't expect to receive many processes that meet the above conditions, because the law of Jacob bson shows that this process does not exist. I believe that, even in a highly united group, no process is suitable for everyone's way of thinking. There are too many differences between us.
Conclusion
Child software development is a logical extension of flexible motion. It requires a high degree of understanding of the technology used to compile software and the developer's responsibility for the delivery and use system. The sub-overall software development team uses the process as a guide, not a pillar. The Group does not stick to the rules, or ignores the process when common sense plays a dominant role.
This document is not a definition, but a declaration. It presents an insight into a better way to deliver a software system method that utilizes many activities defined in a flexible process. Similarly, I have taken into consideration the best practices for software development and the urgent supplementary activities to correct incorrect methods during development.
We will continue to discuss this topic in the next column, where we will return to the promised discussions about use cases, functions, and user scenarios. I will show you how to make these elements part of your sub-software development toolkit, it also describes how these elements support A preload, balanced, or post-load programming software method. Do not leave.
References
- Please participate in the Forum on this article.
- For a comparison between the preload and post-load Software development Processes, see Granville Miller's article "Sizing Up Today's Lightweight Software Processes" (IT Professional, 2001 ).
- On the Agile Alliance homepage, you will find the Manifesto for Agile Software Development Declaration ).
- Alistair Cockburn's home page reflects his personal discussion about flexible software development (and his advance introduction to books published by Addison-Wesley Publishing later in 2001 ).
- Another flexible process, Extreme Programming, has received significant attention. Role Model Software Developers Roy Miller and Chris Collins put forward a comprehensive XP overview in their article XP (developerWorks, March 2001.
- For an overview of some holinic principles, see the research paper "Holonic Manufacturing Systems" (Peter B, Department of Electronic and System Engineering, University of Connecticut. written by Luh and Ling GouDepartment ).
- Intelligent Manufacturing Systems has successfully promoted the idea of sub-whole in the entire Manufacturing industry.
- Intelligent Systems Group is a collaboration Group between the Department of Mechanical and Manufacturing Engineering and the Department of Computer Science at the University of Calgary. The Group's research goals are to develop cooperative agents or sub-overall architecture, tools, and demonstration systems.
- An interesting preliminary understanding of how to plan and develop the best standards in a large-scale software development environment is presented on the IBM user-centric design homepage.
- IBM and other industry leaders have created XMI, a new open industry standard that combines XML and UML advantages.
- Read all sections of the Java modeling column.
- You can find more Java references in the developerWorks Java technology area.