Pages

Wednesday, December 28, 2005

Good Development Practices for Open-Source Developers

Don't rely on proprietary code, languages, or libraries. Open-source developers don't trust code for which they can't review the source.Use GNU Autotools autoconf, autoheader, automake. Configuration choices should be made at compile time. People building from sources today expect to be able to type configure; make; make install and get a clean build. The software must be able to determine for

Monday, December 12, 2005

Design Rules for Textual Data Formats

Another set of rules from Eric Raymonds excellent "The Art of Unix Programming". Use textual data format instead of binary to store or transport your data:Easy for human beings to read, write, and edit without specialized tools.Easy to prepare test data and to debug.Future-proof your system. One specific reason is that ranges on numeric fields aren't implied by the format itself.Other tools and

Monday, December 5, 2005

Basics of the Unix Philosophy

From Eric Raymond's "The Art of Unix Programming" i picked here the 17 rules described as the Basics of the Unix Philosophy. For me these are also rules for writing high quality software:Rule of Modularity: Write simple parts connected by clean interfaces.Rule of Clarity: Clarity is better than cleverness.Rule of Composition: Design programs to be connected with other programs.Rule of Separation:

Sunday, November 20, 2005

Six Sigma Terms and Definitions

Jack Welch, former CEO of General Electric, and one of the most succesful corporate leaders ever, used Six Sigma as major Quality Improvement method. In his book Winning he writes:Six Sigma is one the biggest management innovations of the past 25 years. Six Sigma improves the development procedures, brings products faster to the market with less defects, and reduces cost. The biggest - but least

Sunday, November 13, 2005

Open Source Software Advantages

Besides the low license cost, open source software often have other advantages that are more important:The right to modify the software: reach a detailed understanding of how the system works, unlimited tuning and improvement, easier to isolate bugs, extend the lifetime of an applicationredistrubite modifications and improvements, shared by large communities, attract new developers. large market

Wednesday, November 2, 2005

Adding More People Decreases Productivity and Quality

The more people you add to a project, the lower your per-person productivity and the higher the defect rate.After fixing all the defects, the quality of the code written by the larger group will be much poorer, resulting in long-term increased maintenance costs.Since software spends the vast majority of its useful life in maintenance, getting the first version out faster at the expense of all

Sunday, October 16, 2005

Process Management Principles

How to deploy new processes ? Process approach, practitioners attention points, design principles for process documentation and success factors for deploying changes.Process Approach:1. end-to-end performance, with relation to customer requirements2. management of interfaces3. consideration of processes in terms of added value4. continual improvement of processes based on objective

Saturday, October 8, 2005

Is your website task-focused?

Three important hints to build more effective intranet websites:1.focus on how content helps people do their jobsbetter. Focus on specific tasks that people do. Isolate howintranet content can make these tasks faster and more efficient.2.become obsessive about metrics, about proving tomanagement that content does actually deliver value.3.keep your website lean and mean.Ideas taken from Gerry

Friday, September 30, 2005

5 mistakes from Linux IT Managers

Five common mistakes that Linux IT managers make and tips to avoid the mistakes.Mistake #1: Reactive, not proactive have disaster plans in place rather than trying to implement a disaster plan on the fly (hardware failure, natural disaster, compromised systems,...) plans for the future in terms of capacity planning, upgrades, and support. Mistake #2: Failing to emphasize documentation and

Sunday, September 25, 2005

Bug Priority and Severity

Differentiate Priority and Severity. The effect of a bug on the software does not automatically correlate with the priority for fixing it. A severe bug that crashes the software only once in a blue moon for 1% of the users is lower priority than a mishandled error condition resulting in the need to re-enter a portion of the input for every user every time.Therefore:Track priority and severity

Saturday, September 17, 2005

Law of Demeter (LoD), Low Coupling

One of the bigger challenges in software engineering is keeping the complexity of the design under control. Two major techniques to reduce complexity are reducing coupling and increasing the cohesion of the software components/objects/methods.The Law of Demeter is a style rule for designing object-oriented systems. "Only talk to your immediate friends". The rule was discovered at Northeastern

Saturday, September 10, 2005

SOA, 4 Steps, 7 Principles

Service Oriented Architecture (SOA) promises a number of benefits of which two stand out: reduced cost through reuse increased flexibility to adapt applications in order to meet changing business requirements Put simply, SOA is an architecture that enables the integration of multiple software services, creating applications and business processes that span multiple technologies and

Friday, September 2, 2005

Test Driven Project Management

Rather than limiting test driven development to unit testing (driven by development), the test organisation can explore product launch related issues such as packaging, system configuration, upgrade procedures, and documentation at the beginning of the project.Keys in a test driven project management process:Team building drive project issues, even it means picking up another department's

Sunday, August 28, 2005

Software Health versus Software Quality

Achieve accountability through developer testing. Create thrust and establish a healthy relationship with your customers.Software quality is often measured by the number of bugs remaining in the product, as an instanteneous view on the state of the system (also called external quality).When software evolution is important we better talk about software health, look at the state of the software

Saturday, August 20, 2005

ISO9126 Software Quality Attributes

ISO/IEC 9126 provides a framework for the evaluation of software quality.It defines six software quality attributes, also called quality characteristics: Functionality: are the required functions available, including interoperabilithy and security Reliability: maturity, fault tolerance and recoverability Usability: how easy it is to understand, learn, operate the software system

Monday, August 15, 2005

Scrum is easy, Scrum is hard

Scrum is a light weight management technique for iterative, incremental development. It produces a shippable set of functionality at the end of every iteration. Scrum is an agile process that controls the chaos of conflicting interests and needs, that improves communication and maximise co-operation, that helps in detecting and removing anything that gets in the way of developing and delivering