Skip to main content

Posts

The High Cost of Low Software Estimates

Estimating too low on a software development project can destroy your budget and ruin your project schedule. Here's the reason why. I have been developing software for more than twenty years, and I have experienced first-hand the consequences of estimating too low (and estimating too high). Estimates at the beginning of a software project are rarely accurate, given the team's limited knowledge of the project. More often than not, users don't yet know all of their own requirements for the system to be developed, and developers don't yet know everything about the domain in which the solution will operate. Building software is a process of continuous improvement, and a well-run project attacks the areas of highest variability first in order to reduce uncertainties as quickly as possible. Ideally, your estimate for a software project should be allowed to evolve along with the software itself. And remember: the potential for an exponential overrun on cost and/or sche...
Recent posts

Code of Ethics and Professional Practice

This code of ethics was developed by the IEEE-CS / ACM joint task force on Software Engineering Ethics and Professional Practices . It was jointly approved by the ACM and the IEEE-CS as the standard for teaching and practicing software engineering. This summary version of the code of ethics summarizes aspirations at a high level of abstraction. The clauses included in the full version of this code give examples and details of how these aspirations change the way we act as software engineering professionals. Without the aspirations, the details can become legalistic and tedious; without the details, the aspirations can become high sounding but empty; together, the aspirations and the details form a cohesive code. Software engineers shall commit themselves to making the analysis, specification, design, development, testing, and maintenance of software a beneficial and respected profession. In accordance with their commitment to the health, safety and welfare of the public, software ...

How to Download Messages from an IMAP Server Using C#

This article provides a solution to automate the download of email messages (including embedded files and attachments) from an IMAP server using C# and MailBee.NET. Download Source Code - 10 KB Introduction This week I completed an interesting year-end assignment for another software company, InSite Systems . For the purposes of safe-keeping and due diligence, copies of all email messages sent from (and received by) team members had to be downloaded from the company's IMAP mail server and stored on an offline file system. I created a simple C# console application to do the job, and I thought I'd share the source code with readers here. You will need an IMAP class library for this solution. I found a great set of components from a company called AfterLogic: MailBee.NET Objects The solution downloads only one folder for one user at a time, so if you want to automate the download of multiple folders and/or multiple users then you'll need to roll some additional...

The 28 Principles of Attraction

1. Become incredibly selfish Without you, there is nothing, and attraction isn't possible. 2. Unhook yourself from the future Attraction works in the present, not in the future. 3. Overrespond to every event By over-responding instead of overreacting, you evolve, which is very attractive. 4. Build a super-reserve in every area Having enough is not nearly enough for you to be irresistibly attractive. 5. Add value just for the joy of it When you add value because you enjoy it, people are naturally attracted to you. 6. Affect others profoundly The more you touch others, the more attractive you'll become. 7. Market your talents shamelessly If you're embarrassed about what you do well, you won't be very attractive. 8. Become irresistibly attractive to yourself How can you attract others if you don't feel irresistibly attractive to you? 9. Get a fulfilling life, not just an impressive lifestyle A great life is attractive; a lifestyle is usually s...

The High Cost of Low Software Estimates

Estimating too low on a software development project can destroy your budget and ruin your project schedule. Here's the reason why. I have been developing software for more than twenty years, and I have experienced first-hand the consequences of estimating too low (and estimating too high). Estimates at the beginning of a software project are rarely accurate, given the team's limited knowledge of the project. More often than not, users don't yet know all of their own requirements for the system to be developed, and developers don't yet know everything about the domain in which the solution will operate. Building software is a process of continuous improvement, and a well-run project attacks the areas of highest variability first in order to reduce uncertainties as quickly as possible. Ideally, your estimate for a software project should be allowed to evolve along with the software itself. And remember: the potential for an exponential overrun on cost and/or sche...