quick SDLC lesson

24 12 2008

If you have never taught anything in your life, you should try teaching. Just make sure you teach something that you are passionate about. For example, I love to teach Software Engineering. I was a TA for a Software Engineering Fundamentals class for a year at my University. And I loved it!

The other day I gave a class that talked about the basic software life cycle, AKA SDLC. From the birth of a project til the death of it. Most of us don’t realize that the longest stage of any software project will (almost) always be the maintenance stage. However, in University we didn’t have a class about this stage! We had classes about every other stage there is, but not about software maintenance. I guess that’s what masters/doctorates are for, huh?

Anyhow, there is vast information about the software development process in the Internet. This is a little summary of what I talked about:

1. Requirements Elicitation: At this point you find out all you can about the problem, you just gather all the information you might need.

2. Requirements Analysis/Engineering: Here, you take everything from phase 1 and you process it to come up with a set of features (for the client to approve)

3. Design: After the clients approves the problem you defined, you design the solution (architecture + detailed design) – I’m not talking about just web/graphic design here!

4. Development: Here, you take whatever you designed and you write it down as code in whatever language you want.

5. Testing: After developing the solution you test the execution of your code (using the specification) – I know, as you develop, on stage 4 you test as well but it’s different.

6. Implementation: You deploy the solution to a beta environment or production environment (both of them different to the development environment)

7. Maintenance: After the client approves the solution (after testing it thoroughly), you have to maintain the code (correct future bugs and add possible improvements)

Well, basically that’s it. It was a brief introduction of all phases/stages of the software life cycle. There is also QA and project management tasks that happen through all phases of the life cycle. I did forget to mention this last point, I should write it down for the next class. But I guess I just did that with this post.

To sum up, remember, when you start a project do not jump eagerly into the development phase. First, try to understand the problem to build a solution.



software engineering and businesses

21 12 2008

As a Software Engineer and an IT Services entrepreneur, I run (and will always run) into this problem very often: The standards of quality that the client wants are (almost) never equal to the amount of money that the client is willing to pay. Luckily, sometimes they get very close and that way we can work day-to-day on varied projects for different industries.

However, you can’t get it right from the beginning. Every time you estimate a project, you need to take into account the last projects you worked on (with similar characteristics). For example, if the client complains about the quality of the software you produced the last few months, you need to correct your estimates. You need to improve testing (or quality assurance in general). Hence, the price is definitely going up.

Well, there are other ways of improving the quality of your software. You can also change the people who worked on the last projects for that client, you can train them on best practices, the technology, core programming concepts; among other things.

In Aycron, we always focus on the quality of our code. So, if we notice that the code we are producing could be better (according to the clients’ perspective), there is something that we need to correct. Yes, we are not perfect (although we try very hard to be perfect) but that is our goal: To be perfect (from our perspective and the clients’ perspective)

Even if trying to be perfect means that we have to increase the price of our proposals: So be it. If we need to increase the amount of testing for each solution, we will do it, no matter the cost. We will increase the quality of our software, we will focus on that, because that is what we are good at. We provide high-quality IT solutions. So, if someone has their doubts, we will go the extra mile to clear those doubts.

High-quality is our goal and it keeps us on our toes. It’s a huge challenge, but a nice challenge!



how to deploy a war (using Sun ONE Web Server 6.1)

16 12 2008

I have to write this down or I’ll forget. It’s not very simple nor intuitive to deploy a war package using Sun ONE Web Server 6.1; but it probably makes sense for experts. I don’t consider myself an expert, and I love quick links (that don’t exist in this web server)

So, I need to write down the steps to deploy a war file.

  1. Go to your web server admin port (for example: freedom.aycron.com:8888)
  2. Enter admin + password
  3. Select a server and click ‘Manage’
  4. Go to the Virtual Server Class tab
  5. Select a class and click ‘Manage’
  6. Select a Virtual Server and click ‘Manage’
  7. Go to the Web Applications tab
  8. Select ‘Local Machine’
  9. Find your war file in your local machine
  10. Enter the Application URI and click OK!

10 steps! Could it be any harder? I think it is an awesome tool, it’s super configurable but it’s not highly usable. I guess it’s supposed to be accessed by sysadmins and developers; and that’s the reason why it’s not highly usable.