A closer look into Stage Delivery (Part III)

--Originally published at Don't Trust Humans, Trust Computers

This post is part of a series of writings about my point of view on some chapters of the book Software Project Survival Guide by Steve McConnellThis is going to be a three-part post, where I talk about the stage delivery methodology. 

Software Release

So our software has been written and tested, now what? Well we can say that we are almost done with our stage, but there are just a few things we need to do before we can pass to the next stage. Is time to decide if we the code that was made can be release to the public, to the client, to the team, to whoever needs to be released. When we say that the code is in release state, not only we say that is done, but also that it has the expected level of quality (if all the correct things have been properly done, obviously). Sometimes this decision is make while the detail design of the next stage is being made, but if theres trouble deciding whether or not to release the team needs to help out in the decision. But when can we say with confidence release it? If you are a little insecure about it, there are several techniques that helps you detect how many defects are in the project, and base on that you can make a decision. The techniques that McConnell propose are:

  • Defect Counts
  • Statistics on effort per defect
  • Defect density prediction
  • Defect Pooling
  • Defect Seeding

Each one of this techniques have different levels of complexity and time consumption. Some are more accurate than other and each one of them has their pros and cons. But I recommend that you do, at least, two of this techniques in your release stage. Beside this techniques, you also

Continue reading "A closer look into Stage Delivery (Part III)"

A closer look into Stage Delivery (Part II)

--Originally published at Don't Trust Humans, Trust Computers

This post is part of a series of writings about my point of view on some chapters of the book Software Project Survival Guide by Steve McConnellThis is going to be a three-part post, where I talk about the stage delivery methodology. 

Construction

Now that we have check the first two important steps in stage delivery, let’s talk about something that every developer likes (well, almost everyone), coding. This part is all about bringing the project to life. Before we have only being making the preparations to make this step correctly. Writing good code is of vital importance in this phase, because good code can bring many benefits, and of course, when we talk about good code, we are also talking about quality. To be sure that the code that is going to be written has the quality level the team desires, is important to have a coding standard. I know, many of us have our own way of writing code and understand it, but when we are working in a team is important to have a certain standard of how to write code. I have been in teams were the code that my teammates wrote, were almost impossible to read and understand. Of course it did what it was suppose to do, but the rest of the team couldn’t understand it AT ALL. Other ways to maintain the quality of the code is to write code as simple as possible, don’t try to make thing very complex. There are some exceptions to this rule, but in general keep it simple.

33473204734_f2642221a9_z
“Coding” flick photo by Code Life https://www.flickr.com/photos/code_life/33473204734

When developers have finished their parts its time to integrate their codes with the main part. To make this in an organize and correct matter, McConnell recommends

Continue reading "A closer look into Stage Delivery (Part II)"

A closer look into Stage Delivery (Part I)

--Originally published at Don't Trust Humans, Trust Computers

This post is part of a series of writings about my point of view on some chapters of the book Software Project Survival Guide by Steve McConnellThis is going to be a three-part post, where I talk about the stage delivery methodology. 
Screen Shot 2017-03-07 at 12.44.35 PM
Fig 5-2 from Steve McConnell book “Software Project Survival Guide”

In his book, McConnell recommended to use the stage delivery approach. This approach consist of dividing the project into smaller projects and deliver each mini project in a consecutive way until the project is complete as a whole. We have to take in mind that each stage needs to converge with the last one and so on. But each mini project or stage has to pass through 5 major steps that are the same in every stage. This steps are:

  • Detailed Design
  • Construction
  • System Testing
  • Software Release
  • End-of-Stage Wrap-Up

But before you start with the stage delivery approach, you need to plan how you are going to organize and make some preparations.

Planning Stage Delivery

To make the stage planning easier, here are the activities that need to be taking in consideration, when making the plan (according to McConnell):

  • Requirements updates: The team needs to check the requirements that are going to be implemented in the stage, and also, look if the requirements have change. 
  • Detailed design: Make the design, that will be use in the stage.
  • Construction: The team codes the stages. Usually the persons in charge of the design code the part.

  • Test case creation: Test the code that has been made.

  • User documentation updates: Update the documentation.

  • Technical reviews: check the design and the code.

  • Defect corrections: thanks to testing, the team can locate errors and correct them.

  • Technical coordination: make the schedule to coordinate the team.