Any fool can write code that a computer can understand. Good programmers write code that humans can understand.

Wrapping up the last requirement … Tagging stories

Posted: August 30th, 2010 | Author: Matt Ruma | Filed under: Software Development | No Comments »

So I would like to tag my stories with additional pieces of information, e.g. module, area, and possible release. This type of information will allow me to group like features and be able to provide better reports to customers on how much time and effort we spent on certain parts of their software systems.

Here is the updated database diagram with the new StoryLabel table:

Tags, or what I call them, labels, can only be added or deleted to a story and the actual name and the primary key of the story will make up the primary key of the table.

In a future release I will add support for a tag cloud.

I updated my EF Entities, generated my business logic, and whipped up the user interface. I toyed around with how I wanted to handle entering tags, there are A LOT of different options out there. For this release, I opted for ease of implementation … here are my results:

I even made it so you could click on the tags and, at a minimum, view all the stories with that tag for that project. I would say things are coming along … and with this … I am officially releasing the application into production.

Release 5

  • Done. As a user, need to be able to tag a requirement (2 pts)

I’ll keep you informed on how things go … any major bugs that creep up or any new features that I, or my users, would like to add!


Whoops! Forgot a requirement … story category

Posted: August 29th, 2010 | Author: Matt Ruma | Filed under: Bug, Feature Request, Software Development | No Comments »

Setting up my new requirement tracking application for production and noticed I have no way to categorize a requirement!

I need to know whether a requirement is one of the following:

Feature Request (Feature) - According to the Institute of Electrical and Electronics Engineers defines the term feature in IEEE 829 as “A distinguishing characteristic of a software item (e.g., performance, portability, or functionality) … basically something that is going to improve a software system.

Bug - A software bug is the common term used to describe an error, flaw, mistake, failure, or fault in a computer program or system that produces an incorrect or unexpected result, or causes it to behave in unintended ways.

Task - Everything else, e.g. Make sure the database backups are working correctly.

Thanks www.wikipedia.org for some formal definitions.

Time passes … feature done … took me about 15 minutes to put it in there … the steps I took:

  • Added the field to the database.
  • Updated the Entity Framework model … oh I wish I could move the field up where I put it in the table, but alas, it just appends.
  • Add a enumeration for Category.
  • Updated my CSLA business objects, root, list and criteria.
  • Updated the user interface/presentation layer … went with an orange color scheme for the category.

Here is what it looks like:




Almost Done!

Posted: August 29th, 2010 | Author: Matt Ruma | Filed under: Software Development | No Comments »

It’s been a pretty crazy week … our department had a few loose ends with a couple of projects that I just needed to get wrapped up.  Then I had several customer meetings and hosted some of our customers at the Detroit Economic Club to hear the Joint Chiefs of Staff, Adm. Mike McMullen speak.

Lastly, had a camp out with the kids and then some friends over … which was a blast … kids loved it! And somehow I managed to squeeze some coding in!

I have all the business objects coded (thank you CSLA and CodeSmith) and pretty much completed with my user interface. My tests run flawlessly … it’s expected when you have no unit tests!  I know that’s bad … lame excuse coming … but this application needed to be done quickly so I opted for just testing the user interface.

Our code generation is pretty solid, so it’s a safe bet that most of the basic business objects are going to test fine.

Here are some of the current screenshots … you’ll see that my user interface got tweaked a bit once I started the application construction. The changes were driven from usability. The way I had the application original designed and the way I wanted to use and see the application were different as evidenced by the screenshots.

All in all, I’m pretty happy with the application, have a few more tweaks I need to make … I will put together that list later today after church and a nap!

Here is where I stand on the current list:

Release 1

  • Done. As a user, need to be able to register (2 pts)
  • Done. As a user, need to be able to login (3 pts)

Release 2

  • Done. As a user, need to be able to create, edit and delete projects. (3 pts)
  • Done. Projects consist of name and description.
  • Done. Projects can be archived. (1 pt)
  • Done. Users can be assigned to projects. (2 pts)

Release 3

  • Done. As a user, need to be able to create, edit and delete requirements for a project (3 pts)
  • Done. Requirements consist of description, status, assigned to, scheduled date, completed date, duration, difficulty and priority.
  • Done. Requirements can belong to one of the following statuses: submitted, accepted, in progress and done. (1 pt)
  • Done. Requirements can be archived. (1 pt)
  • Done. A number should be auto generated for each requirement, and displayed as an R-####. (1 pt)
  • Done. As a user, need to be able to see a complete list of requirements (2 pts)

Release 4

  • As a user, need to be able to filter the complete list of requirements by project, assigned to and status (4 pts)
  • Done. As a user, need to be able to quickly filter lists by one option, e.g. status, priority and difficulty (4 pts)
  • Done. As a user, need to be able to quickly filter lists, for a project, by one option, e.g. status, priority and difficulty (4 pts)

Release 5

  • As a user, need to be able to tag a requirement (2 pts)

Looking forward to this week as I’ll start working with the application in production!

Keep coding and God bless!


Still Behind, but Making Progress

Posted: August 23rd, 2010 | Author: Matt Ruma | Filed under: Software Development | No Comments »

I stayed up a little later tonight … was able to get the application scaffolded.

I also created the data entities (using Entity Framework 4.0), generated the business objects (using CSLA and CodeSmith) and created the user interfaces for registering a new account and logging into the system.

Also, set up basic stylesheets for the site (Site.css) and support pagess (Support.css)

Here is the Login page:

Here is the Register page:

Lastly, here is the beginnings of the Home (Dashboard) page:

Oh … and a nice and simple error display … in other forms the exact error message will be displayed, in the login form I try to be a bit general, don’t want to tell the user exactly what the problem is … another level of security.

Looking forward to tomorrow … going to tackle the projects at lunch.


Behind

Posted: August 23rd, 2010 | Author: Matt Ruma | Filed under: Software Development | No Comments »

I’m behind … had every intention of getting the previously mentioned application completed … instead … my day was filled with church (great service) and gaming!

Not to get side-tracked, but I would heartily recommend Defenders of the Realm and Thunderstone… two games with different mechanics, but what a blast!

Enough about that … though I can’t wait until our next gaming session!

On to more important things … had some time over lunch today, while feasting on some Qdoba, to create the story cards for the requirements.  I opted not to create tasks for each story as the unit of work is small enough and clear enough for each story to just double as the task.

I gave each story a level of difficulty, or points, on a scale of 1 to 4, with 4 being the most difficult and I split the requirements into the following iterations:

Release 1

  • As a user, need to be able to register (2 pts)
  • As a user, need to be able to login (3 pts)
Release 2
  • As a user, need to be able to create, edit and delete projects. (3 pts)
  • Projects consist of name and description.
  • Projects can be archived. (1 pt)
  • Users can be assigned to projects. (2 pts)

Release 3

  • As a user, need to be able to create, edit and delete requirements for a project (3 pts)
  • Requirements consist of description, status, assigned to, scheduled date, completed date, duration, difficulty and priority.
  • Requirements can belong to one of the following statuses: submitted, accepted, in progress and done. (1 pt)
  • As a user, need to be able to tag a requirement (2 pts)
  • Requirements can be archived. (1 pt)
  • A number should be auto generated for each requirement, and displayed as an R-####. (1 pt)
  • As a user, need to be able to see a complete list of requirements (2 pts)

Release 4

  • As a user, need to be able to filter the complete list of requirements by project, assigned to and status (4 pts)

I’m going to shoot to have all these iterations done in a couple of days and demo the application to our Executive Management team in preparation for an important customer meeting next week.

Signing off for now … have to get coding!

Keep coding and God bless!