среда, 24 апреля 2013 г.

Software Project Management Is Extremely Important (especially in Russia)

In case of oil company (or related to that business) almost nobody cares of software project management efficiency. Even many project managers don't. Sometimes top managers care. As soon as top managers start to care of projects progress they start to kick PM's asses and finally they may fire PMs. This should be some regular process in any kind of company even in oil - related industry. And it should take place not only after shareholders meetings :-)
Otherwise shareholders have losses quarter by quarter.
The reason for that is very low top managers' competition in IT sphere and bad staff policy.
There are some steps to avoid the pitfall:
1. hire (top) managers that got excellent financial results and best reference letters; test the candidates using 3-rd party agency, no other better way; diplomas mean nothing in the country of curruption;
2. set measurable goals for the managers; check achievements every quarter using transparent data;
3. hire very good IT professional; test coming candidates (using 3-rd party agency or internal test policy); also see #1.

The truth is that best companies hire best professionals to stay the best.

понедельник, 3 декабря 2012 г.

Why you should not use Devexpress XAF for midsize projects

In this short post I want to share my personal experience with Devexpress XAF (eXpressApplication Framework). The preface is - you think that this "famous magic box" can help you to build high class enterprise - scale software system. Because XAF has rich "modules". Because it targets Windows desktops and ASP.NET "platforms". Because it has online docs and the user community. Did I miss something? Oh yeah! Case studies and user comments... A lot of them are connected to XAF and might make you sure that XAF is the "magic thing" you are looking for...
OK, let's look inside of that super thing. The library (or framework) you use should be reliable and high performance. Otherwise your customers have to buy new computers (or servers).
1. Memory leaks:
http://www.devexpress.com/Support/Center/Question/Details/Q444882
http://www.devexpress.com/Support/Center/Question/Details/S39277
Our application has over 40'000 lines of C# code and the built application could occupy over 1GB of the computer memory (!!!!???) during some hours of user activity in the XAF application. GC doesn't help.

2. Ugly Insecurity:
In case you built an application connected to any type of SQL database service (MS SQL, Oracle etc.) you have to:
1. take care of setting security to each role of users inside the database (add users to logins and roles) OR provide full access to the database to all XAF application users.
2. you have to set users and roles in your XAF application to hide protected functions.
In order to prevent users to have direct full access to your database you have to build mid-tier application service:
http://www.devexpress.com/Products/NET/Application_Framework/features_middle_tier_service.xml
Read the page: "XAF applications can now obtain data from the application server, thus preventing the client application from direct database connections. "
In other words XAF security is a kids' toy and admins' headache if you do not use an application server!

3. Unreliable code of modules:
Workflow module is unreliable. I tested Workflow with hundreds of runs. From time to time it doesn't resume "Idle" processes if you restart Workflow.

4. The XAF application is extremely slow.
We have computers with Intel Core i5 and i3 CPU and 4-6 GB of RAM. Our XAF application starts in 15-25 seconds. Any XAF "view" appears in 100 times slower then classic "Windows Forms" or ASP.NET page. If you have low-end "Celeron" or "Atom" CPUs it is a real pain.

_____________________________________________________________
The verdict is: avoid Devexpress XAF in your upper-beginning enterprise projects. It is good idea that is not mature yet. Use cross-platform JavaEE + GWT, Python + Django. Or pure ASP.NET for Windows only.