|
SubscriptionsSites I Read
|
|
|
|
| Summary from: http://www.codeproject.com/books/SoftwareProjectSecrets2.asp
Software is unique in that its most significant issue is its complexity.
- Software is the most abstract product that can be created in a project.
- It is uniquely difficult to define a complete set of requirements for software before beginning development.
- Software development technologies change faster than other construction technologies.
- Most software development technologies are not mature enough to have a set of proven best practices.
- Software development has far more technologies, and its technologies have far more complexity than a single individual can hope to gain expertise with.
- Expertise with particular software development technologies is very quickly outdated, and therefore most specific skills are learned on the job.
- Software development isn't just a process of creating software; it's also a process of learning how to create the software that is best suited for its purpose.
- Software development has been automated to a greater degree than other project-based activities.
- Unlike other products, software is not constructed, but rather designed into existence.
- Software can be modified rapidly, and this pace is expected, but it's better to implement the changes properly.
- No software is perfect as first envisioned; it will always require changes to make it best suit its role.
What do you think about the importance of software project management in this aspect?
The importances of Software project management are communication and changes on techology. Through communication, no matter client or programmer would know there procces of the project and what they need to concert. From programmer, programmer would know the client do not think the project requirement on practical way sometimes, programmer need to use their knowledge to duel with it. From client, client woud know what are the technology limit to their project requirement. If a new technology appear, client would like to use it on the project. However, programmer would tell client that technology cannot implement to the project. | | |
|
- What is the main idea of test-driven development?
- What is the goal of test-driven development?
- How does a test-driven development cycle look like?
http://en.wikipedia.org/wiki/Test-driven_development
http://www.agiledata.org/essays/tdd.html
1. What is TDD?
The steps of test first development (TFD) are overviewed in the UML activity diagram of Figure 1. The first step is to quickly add a test, basically just enough code to fail. Next you run your tests, often the complete test suite although for sake of speed you may decide to run only a subset, to ensure that the new test does in fact fail. You then update your functional code to make it pass the new tests. The fourth step is to run your tests again. If they fail you need to update your functional code and retest. Once the tests pass the next step is to start over (you may first need to refactor any duplication out of your design as needed, turning TFD into TDD).

Figure 1. The Steps of test-first development (TFD).
What is the primary goal of TDD?One view is the goal of TDD is specification and not validation (Martin, Newkirk, and Kess 2003).In other words, it¡¦s one way to think through your design before your write your functional code.Another view is that TDD is a programming technique.As Ron Jeffries likes to say, the goal of TDD is to write clean code that works. | | |
| To me design patterns are successful cases for designing coding with proven on efficiency. I just remember the observer pattern in behavioral patterns because I just know the concept of how it operates such as if a interface has change, interface will notice observer to update the changes, but I don¡¦t know how to convert this pattern in to coding. On other patterns, I just remember the name of them. | | |
| Clear naming of variable and writing comment for the program code would make good program code.
These two factors would let the reader easy to catch up the control flow of the program code and modify the coding more easily. | | |
| DTSTTCPW
Do The Simplest Thing That Could Possibly Work
Ref: http://xp.c2.com/DoTheSimplestThingThatCouldPossiblyWork.html
Implement a new capability in the simplest way you can think of that "could possibly work". Make the code pass the UnitTests for the new feature (and all features, as always). Follow the rule of OnceAndOnlyOnce and the other code quality rules to make the system as clean as it can possibly be. With each increment of an IterativeDevelopment one should do the simplest thing that could possibly work. To do this, you have to know at least two ways to do the thing. That way, you can at least pick the simpler, if not the simplest. You need to be pretty sure it will work, but you don't have to prove it. Why? Because when you try to implement it, your implementation will tell you whether it does work. Your tests will run, or they won't. It will feel good, or it won't.
JsUnit
Ref: http://www.edwardh.com/jsunit/
http://sourceforge.net/projects/jsunit
JsUnit is a Unit Testing framework for client-side (in-browser) JavaScript. It is essentially a port of JUnit to JavaScript. Also included is a platform for automating the execution of tests on multiple browsers and multiple machines running different OSs. | | |
|
|