Centraldev blog

October 20th, 2009

SCRUM for clients

UPDATE: this post has evolved into the About Our Work Methodology page in our website.

This post is intended for customers to understand the implications of using this methodology and how we implement it in our daily work.

Scrum is an agile development methodology based in the following principles:

  • The customer or Product Owner has an important involvement in the development process.
  • Product requirements are defined with the Product Owner (usually as User Stories) and put together as Product Backlog Items. It is a desired practice that Product Owner actually writes requirements.
  • Product Owner prioritizes the Product Backlog Items in accordance with its business value.
  • Product Backlog Items are estimated, whether by time or relative weight, only by the development team. This estimation is adjusted constantly, usually at the start of each Sprint.
  • The development cycle is divided into time-boxed Sprints of a fixed duration (typically 2 to 4 weeks). Each Sprint has a clear Sprint Goal and produces a working product increment.
  • Before each Sprint starts, a Sprint Planning meeting is done to choose which requirements are implemented and the details on each are discussed. The whole development team and Product Owner participate.
  • The requirements that are implemented in a Sprint constitutes the Sprint Backlog.
  • Once a Sprint starts, no changes are accepted for the Sprint (bugs could be an exception).
  • A Daily Scrum meeting is held every morning only between members of the dev team. This is a short-stand-up meeting where each member communicates: what he did yesterday, what he will be doing today and any impediment he is facing.
  • At the end of each Sprint a Sprint Review or demo is held where the team demonstrates the product increment to the Product Owner and any other involved stakeholder.
  • At the end of each Sprint, a Sprint Retrospective is held to discuss what it is working and what it is not.

How we define what to do

It is important for us to clearly understand what you want to do. We usually like to put this on a Project Vision document. Customers often think that, as we developers we are not interested in the business background for a project. Well, not only we are very interested but we strongly need to know all the aspects of the business related to a project in order to understand the project and to make key decisions in the design and implementation stage of the development cycle.

A Project Vision document contains all available thinking about what a project will be. It defines the goals of a project, why they make sense and what the high-level features, requirements or dates for a project will be.

The most important points to cover in the Project vision are:

  • Vision Statement. This is usually a once sentence that describes this specific release of the project. This is also known as the problem statement because usually projects are planned to solve a specific problem.
  • Project Goals. Describe how this project contributes to the goals of the organization, customer or final user.
  • Business Opportunity. Describe what is the current business situation, what users’ or customers’ needs are not being satisfayed, what competitors are doing or offering and how we can change the world with our solution.
  • Users Description. Describe who are the customers, what problems does this software solve for them and why they would use or buy the software.
  • Stakeholders Description. Who are the stakeholders (people with power on the project but not necessary the users/customers) and what role they have in the project.
  • Product Features. This section describes the high-level features for the system. We prefer not to employ use cases here because they are too detailed and usually people reading the Project Vision just want a short overview identifying the key functions. User stories could be a list too long to describe in the Project Vision. That’s why prefer to write it as a list of features. It is important to differentiate between essential features (priority 1) and desired-but-not-essential (priority 2).
  • Other topics could be Risks and Assumptions being made and Dependencies on other projects, companies or organizations.

How we define requirements

Requirements also define “what to do” in a project, although, with a deeper level of detail than what can be found in the Product Features of the Vision document.

There are several types of Requirements. We classify them as Functional and Non Functional (Usability, Reliability, Performance, Supportability, Implementation, Interface, Operations, Deployment and Legal).

Functional Requirements are among the most important because they define the core of the system, what the system must do, its features and capabilities. Functional Requirements are usually defined as User Stories or Use Cases.

We strongly think that requirements should be written by the customer with one or more members of the development team or, at least, participate actively in the requirements definition.

The best method to involve the client in the definition of the system requirements is by using User Stories because they are easier to conceive and because they are formulated in a more natural and spoken language.

User Stories

User Stories define a goal that a specific type of user has when using the system, in a natural language. Although it is not necessary to follow it, we use this format to describe the User Stories:

As a [type of user], I want/can/need/etc. [goal or need], so I can [reason].

An example of a User Story, for an e-learning web site could be:

As a Teacher,I want to create an online test, so I can measure the level of the students.

User Stories have a more important advantage. They are an easier method to have non technical involved people define requirements. For example, it is easier for a Product Owner to write a list of requirements in this format than in the format of a Use Case diagram or a list of Use Cases.

User Stories emphasize verbal communication, in comparison to written language. The use of the first person to describe the goal make them sound more natural and tend to avoid misunderstandings typical of a written document.

We strongly prefer to define Functional Requirements as User Stories or inspired by them (because sometimes they could be too long) because they are a lot much easier to discuss with clients and users.

All the User Stories (or Use Cases or Features, depending on what we decide to use), along with any other requirement that is expressed in any different way are put together in the Product Backlog. This constitutes all what has to be done to complete the product.

We define the Product Backlog in a System Requirements Specifications (SRS) document and we manage it (time and resources) using a spreadsheet. The SRS document could contain additional information about each User Story. The Non-Functional requirements are also described in the SRS.

Acceptance Criteria

While the Product Backlog defines all what has to be done, sometimes it is risky to give the customer a fixed estimate or quote based only in simple User Stories or Features.

To solve this we sit together with the customer and go through each User Story and define what we call the Acceptance Criteria. This describes the high level features a User Story has to meet and the Tests it has to pass in order to be accepted as complete either by the development team or by the customer.

Examples of Acceptance Criteria for the above User Story could be:

As a Teacher,I want to create an online test, so I can measure the level of the students.

Description

  • Multiple choice type test
  • Hints for wrong or good answers (not required).
  • Defaults to 3 answer options.
  • Ability to add as many answer options as needed.
  • Ability to remove unwanted answer options (e.g. I may want only 2)

Acceptance Tests

  • Submit empty form should show a warning message to user, indicating required fields.
  • Created test is only visible in the class for which it was created.

Resources

Scrum Video: http://www.youtube.com/watch?v=Q5k7a9YEoUI
Scrum Presentation: http://www.mountaingoatsoftware.com/scrum-a-presentation

Bibliography

The Art of Project Management – Scott Berkum

UML and Patterns – Craig Larman

Posted in Development | No Comments »

Compartir

October 6th, 2009

Software Development Top 10 Content Sites

Centraldev was mentioned in Latin IT Marketing as one of the Top 10 Content Sites of Software Development. The list includes the best sites in Latin America that offers relevant content to their target audience.

The list was created based in 9 different aspects:

  1. Clarity in its benefit message and unique service difference.
  2. Clarity in the following steps: “What do I do now? Where do you want me to click?”
  3. Not confusing site.
  4. Enough information so I can take an action and call them.
  5. Use of my 5 senses: video, images, emotions, etc.
  6. A blog which give valuable information and educates me about the industry or something that helps my company.
  7. Reports, white papers or virtual books that I can download.
  8. A newsletter to learn about the news of the company.
  9. Links to social media: Twitter, Linkedin, Facebook, etc.

Link: http://latinitmarketing.com/10-mejores-sitios-web-desarrolladores-software

Posted in Uncategorized | No Comments »

Compartir

August 11th, 2009

Wednesday Worst Day for Traffic in BA

Centraldev has worked closeley with C2DataOnline and Microsoft Argentina to develop a traffic information system for Buenos Aires city that’s currently in use as a layer of MSN Maps Argentina, Microsoft’s online map application.

Our work has been the development of a Ruby on Rails web application that’s used as a backend for C2DataOnline to continuously monitor and update Buenos Aires traffic information. On the other hand, we also provide a PHP webservice that is queried during the day by MSN Maps Argentina, in order to obtain the updated traffic information.

Our last project has been the development of traffic reports to obtain statistic information about the worst traffic incidents in Buenos Aires. Analysts at Microsoft have concluded, thank to these statistic reports, interesting data about the traffic in Buenos Aires. One of the most concluding facts is that if you want to drive through Buenos Aires, Wednesday is the worst day to do it.

Buenos Aires is usually freezed by demonstrations and this data is logged to the C2 traffic system. It appears to be that demonstrators usually prefer Wednesdays for their acts. Other incidents that affect transit are reparations, accidents and fog.

Posted in news | No Comments »

Compartir

May 26th, 2009

Outsourcing IT Services to Latin America

Latin IT Marketing specialized blog has published a very interesting and accurate article about outsourcing IT services to Latin America. Fernando Labastida, its author, has a very good background as a sales and marketing professional in the IT services industry and points out some of the most important advantages of Latin America over other asian or west european countries for american companies.

Among these important points we’d like to highlight:

  • Time zone: it is true that most Latin America is in a more comfortable time zone than other continents. If you outsource to Argentina, for example, average work time and lunch is usually delayed one hour with respect to USA, what leads to almost working at the same time.
  • Meeting your team: travelling to any Latin American country is much more accesible, cheaper and secure. In the case of Argentina, where we are located, we are a secure country; no wars, no terrorist attacks, no earth-quackes, no-floods, no-tsunamis.
  • We speek english: that is an important point, because I think most companies look for countries like India because they know they speak english, but in Argentina most profesionals do speak it too. English is taught at school.

One point that is a total truth is when Fernando says “Somebody who will disagree with you and provide you with creative ideas“. Specially in Argentina, we are used to discuss a lot, so you will find us disagreeing with our clients more than often, and proposing our point of view and better ways to do the work.

Another aspect not mentioned by Fernando is that we have very talented profesionals. We have a good academic level in Argentina because there are lots of private and public universities of excellent international level.

So, wether if you are company willing to outsource to reduce costs but not quality or a internet start-up planning a new web application, you can contact us at contacto@centraldev.net and know more about outsourcing with us.

Posted in Outsourcing | No Comments »

Compartir

May 16th, 2009

We are good with smart cards and HSM development too!

I’d like to let prospects viewing our site that we are good doing things with smart cards. We have a lot of experience working with MULTOS and MPCOS smart cards. We are currently working in a project for a state of USA (that we can’t disclose) that uses smart cards for transfering benefits electronically to Women, Infants and Children (WIC). We have also just won a new project that will use a smart card for password management.

Finally, we are also good with HSM development, including development of functionality modules. Our experience is based in SafeNet’s HSMs, like ProtectOrange or ProtectGold, but it is easily extensible to other brands.

Remember, if you want to outsource your HSM or smart card developments to Argentina, we have the resources, the skills, the knos-how and very good prices.

Posted in centraldev | No Comments »

Compartir

April 7th, 2009

About us

When we started in the web design business, back in 2002, we were one of the very first young Argentinian companies that realized that, due to the recent devaluation of our currency, the Peso, it was a good idea to sell our services to the rest of the world, specially to countries like USA and to Europe.

The business seemed easy, in that time one could live well with a monthly income of 2000 pesos (666 US dollars, in that time). I even remember a small meeting I had with someone who wanted to associate with me whose goal was to earn 1000 pesos per month! So, in 2002 you could sell your services very cheap to USA and earn a good amount of pesos.

But these young companies were not all very good. Most were very inexperienced and the quality of the service was usually bad. I used to work for one of these companies and it was basically a project hunter. They used to collect as much projects as possible, we, as programmers and designers, often found ourselves with 4 or 5 or more projects at once. And you can’t give a good service like that. Today that company is dead, and so are many more.

These is because the situation in our country changed and also changed the way other countries see us. The inflation in our country moved many of our costs up. When you could live with 2000 pesos in 2002, now you need 5000 to 6000 pesos in 2009. So it is not that good business as it was in the past for companies that decide to go offshore with Argentina. On the other hand, clients are now more experienced in looking for an offshore country. Back in the beginning of this century, an American company may have thought that an Argentinian companies had more or less a minimum of principles, sense of responsibility, service quality and respect for the clients as the rest of their vendors. Well, it is sad to say that, specially me being Argentinian, but it is not often like that. So clients now are more warned about this and they look up better for an offshore vendor.

You have to be careful of the project hunters. Those who spam and try to do as much websites as possible. It is impossible to get a good service like that. Today, you can find cheap web design shops that will do your website (maybe template-based) for 150 US dollars or less.

Then, how we are different?

We take every project seriously. Every project is unique and so should be the design and treatment. A style-sheet doesn’t fit for all, a CMS module does not work the same in every site, so we take the necessary time to analyze every detail of every project.

Your project is Unique

We believe that a website or application is only successful when users actually use it. If they don’t find it easy and exciting we believe it’s a failure. Users are usually the visitors of a website, the administrators of a CMS and the client’s employees using a sales application. We work very close with end users. We interview them, we profile them and we work for them. We could say that our work is user-centered.

UI Usability care

We also take the needed time to design user interfaces. We don’t work with User Interface (UI) frameworks, UI generators or templates because usability is totally absent there. We usually don’t do every web form of a web application the same style. We think about every page and we give it the best design it could work, based on what we know from the users and our own usability analysis and test. User Interface Usability is very important for us.

Fit to be used

Another feature we care a lot is to deliver our work as “fit to be used” as possible. This simply means that we want to make life as simple as possible for the people who will be using our work. They may be administrator deploying the website we did or users installing a software system. If they have to follow one thousand steps to configure something, install different drivers according to their operating system, install and configure a database engine or more, ALL before they install our stuff, then we are not happy. We try to simplify as much as possible the installation, configuration and early usage of our sites and applications. That’s what we call Fit to be used.

Maintenance slot

Finally, we know that no web or desktop project is perfect. There always will be changes and we are always prepared for that. One of the worst errors in project management of any area is to assume that there’s no more work when the project is finished and delivered to the client. Wrong! Almost every finished project will need maintenance. A building, a road, a website, a program. We consider a prudential maintenance slot for every project, so we are always ready to respond in case of need. Failure to respond rapidly when a client asks a change in a finished project is seen as a bad sign for our reputation. We don’t want to be seen as project hunters who simply disappear when we get paid.

But what about common websites?

It is true that some special kinds of sites, like shopping-carts, product catalogues, blogs and social network sites work more or less the same way. That means that they all could share the same base code while we just focus in the unique design, user centered, UI analysis of the frontend.

What we are working on at this time is in common framework that should work for common sites like the ones we mentioned above, that will probably help us offer our better services for less.

We think that’s the next way of doing things. It doesn’t have any sense to charge for analysis, design and implementation of a complete e-commerce or blog site when they are all the same and they all share the same code.

In a next article we’ll be describing better this new project. Keep reading us!

Posted in Articles | No Comments »

Compartir

April 4th, 2009

Centraldev to Start Three New Challenging Projects

Yesterday, we have been notified that we have earned three challenging new projects that should keep us bussy for the next months. We are really excited for this projects because they represent important oportunities to grow and to learn.

One of the projects is a Windows application that will require to use Windows Presentation Foundation (WPF) and Windows Communication Foundation (WCF). It will also require extremely easy administration and configuration, since it is going to be used by non technical personnel. That’s a challenge and we like it.

We have another project to do on a Windows Mobile PDA, using the .NET Compact Framework. This application should sync data with another desktop application. We had already done a prototype of this app back in November, and now it was approved. Also very interesting.

Finally, we are doing another project with smart cards, which will use the Key Diversification System we have finished in January. This may be the biggest project of the year.

Tags:
Posted in news | No Comments »

Compartir

April 1st, 2009

Portfolio also updated

One of the most important updates we published today, and maybe the reason why we went online so early with the new version is our portfolio section. Our previous site didn’t give the portfolio the importance it needed. As a web design and programming services company, our portfolio should always had to be our most important section because it is expected that there it is where prospects will go when they want to learn what our capabilities are.

Sincerely, we have never done the job of looking back through the projects we have done in the past and that was the only way we realized that we had a lot to show! What you will now see in portfolio is only the most important projects, but we have lots more.

Most of them are websites, because they are easier to show. But we have also done lots of desktop applications, like RFID, Smart Card and FingerVein applications. Some of the most important ones that come to my mind now, that we left outside are:

  • The Raffle application: this was an application that was used by Hitachi in a trade show in Las Vegas. It was used to make a raffle and it had a colorful spining wheel done in Flash.
  • The EPC reader controller: this was a configuration tool also done for Hitachi to control one of their RFID readers remotely.
  • The RFID demo application: we did this application to demo the functionalities of the Hitachi RFID readers.
  • The Finger Vein GINA: this was one challenging project. It was a complete Windows Logon screen replacement (GINA) that used Hitachi’s FingerVein reader. With this application you could log on to Windows with your finger vein pattern.
  • The Card Management System (CMS): this was a web and desktop application we did for smart card issuing and management.
  • The Smart Bio Authentication System (SBAS): this was a three-factor authentication system for medial applications that used finger print, smart card and PIN. The system was composed of a server application for authentication, an issuing application and a client application. Transactions were done with webservices and it had a challenge/response security mechanism that used a SafeNet Hardware Security Modules (HSM) for cryptograpy and random number generation.
  • The ProPay HSM functionality module: we did a functionality module for a SafeNet HSM that it is currently used in ProPay payment transactions. It implemented the DUKPT algo.

I’m sure I’m still forgeting something but, so far, that’s the most important that it is NOT in the portfolio with a picture.

So, don’t forget to visit our portfolio!

Tags: , , , ,
Posted in news | No Comments »

Compartir

April 1st, 2009

Site update

Today we have updated our site. You will notice a new fresher design. Simpler, more white, more space for content and more flexible for us. We’ll continue working on it during April, so it’s not finished work, but it works better than the previous, at least, for the kind of content we want to publish.

Why did we change the design so soon? As a web design shop, I think we owe you an explanation.

We ordered the previous design to Dario, one of our designers. Unfortunately, over the months, we were still not convinced. Too much HTML and CSS hacks, too much styles. We wanted something simpler. We thought that it didn’t really transmitted the style that Centraldev always put in their clients sites!

The new design is a lot simpler. Just a white rounded box where you can put anything you want inside. We don’t have to follow a fixed template for every page. Each page can now have its own personality, since this is more neutral, as we see it.

Remember, it is still work in progress. We still have to create the WordPress template for this blog, what should happen next week. We also have to describe more about our services, specially web design and programming.

Now, you can let us know what you think about the new design. We promise we’ll listen to you!

Tags: , , ,
Posted in news | No Comments »

Compartir

Tel: (+5411) 6380-6725 - Email: contacto@centraldev.net
© 2009 Centraldev. Todos los derechos reservados.