Pages

Tuesday, October 3, 2006

Risk based selection for agile iterative lifecycle methods

This overview helps project management and teams in selecting the best iterative method(s) for their projects, based on the major risks they want to tackle. The overview highlights the focus of the different methods, ie. which risks are mainly addressed. This is not a detailed course on all the methods, but references to literature are provided.During the last decade agile software development

Monday, August 14, 2006

Pair Programming Benefits and Rules

Pair programming is one of the more successfull technique from the agile movement. However it may require a cultural change in traditional software shops. Paying attention to explain the benefits and giving some guidance will help:General benefits:Produces better code coverage. By switching pairs, developers understand more of the system.Minimizes dependencies upon personnel.Results in a more

Thursday, August 3, 2006

Most Useful Requirements Processes

Understand and communicate requirements that align yout IT prioritieswith your business needs.No process is more fundamental than the process of defining and managing business and technical requirements. It's no surprise that studies cite inaccurate, incomplete, and mismanaged requirements as the primary reason for project failure.The Requirements-engineering process consists of two major domains

Thursday, May 11, 2006

Outsourcing: Rationale, Criteria, Concerns, Challenges, Lessons Learned

Diamondcluster did a study on the Global IT Outsourcing, here are the highlights:Top 3 Outsourcing Rationale1. Reduce or Control Cost2. Better Manage Variable Capacity Needs3. Free Up Internal Resources for more Critical PurposesTop 3 Key Selection Criteria1. Technology Expertise2. Cost3. Flexibility in Structuring Operating Model (offshore, onshore, ...)Top 3 Outsourcing Areas1. Application

Wednesday, May 3, 2006

10 Continuous Integration Best Practices

Frequent integrations with automatic build and test leads to significantly reduced integration problems and allows a team to develop cohesive software more rapidly. Since the first publication of Martin Fowler's article on Continuous Integration the method fastly gained popularity. In the latest version he focusses more on the best practices: Maintain a Single Source Repository. Automate the

Friday, April 21, 2006

5 Truths About Code Optimization

1) Start with working code and good tests or you are doomed.First make it work and have good unit tests to tell you so.2) Rest assured, you don't know where the problem isYour best guess as to what is making this program a pig is usually wrong. The only way to know is to run your code with a profiler and see which bits are the slow ones.3) There is always a long pole in the tent, but it is not

Friday, March 31, 2006

Handling Late Requirements

Many of project issues are related to bad requirements management. One particularissue which is hard to tackle is the handling of late requirements.Coping with new requirements after the development has started often leads to problems in the project:schedule, cost and scope of the running project become unknowndelays due to unsufficient impact investigation, which may propagate to other projects

Tuesday, January 31, 2006

Software Distribution Making

An important process in software development is the making of the distribution.Here are some good practices: Make sure tarballs always unpack into a single new directory (not the current directory!).Include a README with: A brief description of the project. A pointer to the project website (if it has one). Notes on the developer's build environment and potential portability problems. A

Friday, January 20, 2006

Best Practices for Writing Use Cases

Are your use cases clear both for your users and for your developers ? Here are some tips:Be careful with UML diagrams. Only use them for a high level model to show relationships between actors and use cases. Use case descriptions are textualMain scenario 3-9 steps. Bird's eye viewNo IF-statements, but main scenario's plus extensionsBrainstorm on goal failures evaluate, eliminate, mergeManage