Atom feed

19 March, 2007 / TargetProcess 2.3 Release

So we are releasing TP 2.3 tomorrow. It was quite hard release for several reasons (we even increased release duration from 5 weeks to 6):

  • We’ve started Selenium tests creation and it took time. Sure it will save a lot of time in future, but for this release it was additional burden since we created regression tests for old functionality as well as implemented some automation.
  • Performance improvements took a lot of time. We’ve removed Ayende generics (major changes in overall architecture) and dramatically decrease CPU usage on server, so scalability improved greatly and TP can work with 100+ concurrent users without problems. I am really happy that we are using code generation, without it such changes in business layer should take several weeks instead several days.
  • Many old bugs have been fixed.

If you take into consideration that new functionality still appeared (Web Services API and People Allocation Management) you will understand why the release was not easy. It is quite large achievement for us and TargetProcess becomes more and more enterprise-ready.

Two major additions in TP 2.3 are Web Services API and People Allocation Management. Both features are must have in any serious project management solution. Integration is a key for many companies and now public API enables almost any required integration. API is powerful and you may even create custom queries based on HQL syntax.

Effective people management in large departments is hard without good tool support. The common practice is to use Excel to control load and people availability. You understand that it is hard to maintain the document in actual state. The typical process is:

  1. Ask all PMs about
    1. Who will be free and when
    2. Are there any staffing problem and who they need for the project?
  2. Put the data from PMs to the spreadsheet(s).

Top manager usually does not have much time for manual updates and for large department it may take up to 2-3 hours to have complete actual data each week. TargetProcess eliminates this burden. The process is simple:

  1. Each PM specify allocation for each person in the team as well as allocation end date
  2. Each PM submit allocation requests if he needs more people
  3. Top Managers just clicks Allocations link and see all the data on one screen. He may filter data, sort data, see details if required and resolve conflicts right there. Then he may click Allocation Requests link and see all requests for people (prioritized and commented).

So the only mandatory thing for PMs is to set correct allocation % and allocation end date for each team member. Not a hard task that will take just a few minutes.

In general TargetProcess became faster, more scalable, more powerful and open for integration in last release. Hope you will enjoy the results!

Labels: , , ,

27 February, 2007 / Web Services API in TargetProcess 2.3

We've almost finished web services API implementation for TP 2.3 release. It looks quite powerful and provides huge integration capabilities. With web services API you may do almost anything: add, edit and delete new entities, retrieve entities and even execute custom queries based on HQL (Hibernate Query Language). Of course you need to know HQL syntax (close to SQL in fact) and understand TargetProcess domain model to create complex queries. So we share entities description, class diagrams and NHibernate mapping files. You may check Web Services Developers Guide (PDF - 0.4M) for details.

Here are some examples that shows web services abilities.

Add new bug into TargetProcess.

BugServiceWse bugService = new BugServiceWse();
TpPolicy.ApplyAutheticationTicket(bugService, "admin", "admin");

BugDTO bug = new BugDTO();
bug.Name = "New bug";
bug.CreateDate = DateTime.Today;
bug.Description = "Bug Description";
bug.ProjectID = 1;
            
int bugId = bugService.Create(bug);

Console.WriteLine(bugId);

Add comment to existing user story.

UserStoryServiceWse service = new UserStoryServiceWse();
TpServicePolicy.ApplyAutheticationTicket(service, "admin", "admin");
int storyId = 98;

CommentDTO comment = new CommentDTO();
comment.Description = "New Comment";

int commId = service.AddCommentToUserStory(storyId , comment);

Exampe with complex HQL query. Select all user stories assigned to user

string userName = "admin";
string userPassword = "admin";
UserStoryServiceWse userStoryService = new UserStoryServiceWse();
TpServicePolicy.ApplyAutheticationTicket(
userStoryService, userName, userPassword);

string hqlAssignedUserStoryQuery =
@"from UserStory as us where us.UserStoryID in 
       (select team.Assignable.AssignableID from Team as team 
            where team.User.UserID = ? 
            and team.Actor = us.EntityState.Actor 
            and team.Assignable.AssignableID = us.UserStoryID)";
UserStoryDTO[] stories = userStoryService.Retrieve(
hqlAssignedUserStoryQuery, new object[] {users[0].UserID});

Labels: , ,

25 January, 2007 / TargetProcess: What's Next?

With TP 2.2 release general project management and QA areas will be covered quite good in TargetProcess. Of course there are many, many things to improve and we will work on continuous improvements through iterations, however we have a new strategic goal — company wide operations support. In general there will be four areas that will be supported in TP 2.3 and TP 2.4:

  1. Peoples management (in traditional PM science it is called Resources Management, but we don't want to use term 'resources' when working with people)
  2. Integration needs (public Web Services API)
  3. Programs management
  4. Custom process needs (terminology support)

In TP 2.3 we will focus on first and second areas, while in TP 2.4 on third and fourth.

Peoples management

There are several questions that top managers (who are in charge for allocations) asks quite often:

  • Who will be available for upcoming project?
  • When developer A will be free for upcoming project?
  • Who is overloaded?
  • Who can be re-allocated without huge negative impact on project?

We hope that TargetProcess will provide answers on all these questions (or information that will be used to ask proper person). If you feel that you need something like that and have specific requirements, leave your comments.

Integration

Public API is a must-have for any life-cycle management system. There are so many third-party tools, in-house applications and data import/export needs. Such integration can't be done without public API.

Labels: , ,

 

We are developing new version of TargetProcess and blogging about our progress.

TP 2.0 online demo
TP 2.0 quick tour