Here is another viewpoint from another contractor: http://blogs.techrepublic.com.com/project-management/?p=195&tag=rbxccnbtr1, speaking about education versus experience. And once you finish reading that great article, figure out how to put real world experience testing into Brain Bench or ProveIt. It just can't be done. That is why they don't work.
Sunday, March 9, 2008
Testing your Prospects
This will be a short one. This subject is easy. Brain Bench versus Prove It versus What? How do you test for skillset? Answer: Ask your candidates to write a project, similar to what they will be asked to do when working for you. Take note of the amount of time it took for them to return the result to you. Review their code for coding standards and poor coding techniques. Read the rest of this blogg for current techniques and coding standards required to create a current standards web site. You will not find these methods tested by Brain Bench, Prove It, or any other testing site using textbook exam methods. It is a waste your money and your candidate's time. If you are not sure how to test the skillset of your prospective staff, then I might even suggest that you are the wrong candidate to be managing them or selecting them.
Which Platform Pattern should I be using for my business?
This past week I had three interviews for new contracts. All three were with major established companies asking if I would fill the part of LEAD developer and drive the development. All suggested deadlines and goals to be obtained with a reassessment of the future thereafter. In other words, no commitment of a total product solution from an Agile development viewpoint; but rather a waterfall approach to interim expectations for customer driven requirements and an acknowledgement of the current state of the market. A recession will turn any Agile solution into a waterfall production everytime. Directors and managers simply don't have the promise of new sales to guarantee employment of anyone, including themselves. So they typically make decisions 3 months at a time with no promise of thereafter. So now the decisions you make, as a contractor, become even more important as you bet your family income on their business decisions, the company's ability to market and sell their products and services, and their apparent interest and motivation to keep you.
During these last interviews, I found it interesting that all were telling me their current dilemmas and asking my opinion about possible solutions. Now although I love these kinds of intelligent discussions to assess my knowledge and contributions for the current position; I always leave there wondering if I should have charged a consulting fee. Another point I noticed about all three was they had all bought into some flavor of Microsoft Model and Practice and were asking about security and extending the models.
Now there is little doubt in my mind that Microsoft (with the release of 3.5 Framework) has finally gotten to the point where they are writing a large percentage of the backend business logic and business entities pages. I am not sure of their marketing strategy of this other than to get developers more hooked on free Microsoft work and dependant to the point they can never let go of the Microsoft offerings. Likewise, I advised one of those interviewers (who develops and maintains banking software products) that if I were accountable for this software development and support, that last thing I would ever want to tell my boss is how the Microsoft patches now need to be applied because Microsoft missed this or that security issues. His next question to me would likely be, why did you expose us like that? Do you think Microsoft would take an interest if I called them? Here is the answer: Why customization beats source code modification.
I know one thing for sure. If I am responsible for the success of this web site as LEAD, Manager, or Director; then we will be doing the production my way. And it will be architected as a good solid foundation for classification and layering and optional client features will be extensions of current foundation layering. I talk about this with suggested examples in my book (due for release, next month). But I want to know every line of code, its purpose, and its costs.
Here is the point and purpose of this discussion. I prefer to put the root functional files in the root directory of the web application. Images go under a folder called images. Scripts go under a folder called _ScriptLibrary. Middle tier and all other classes go under the App_Code folder. And the backend libraries that offer data separation and layering, utilitarian functionality, and error and events logging are all compiled separately into their own DLLs and reside in the bin folder. If I need to add another feature to the web site (in essence, another web application), then I may put it in a subfolder if it is only applicable to that web application; or if I have several clients looking to use this new feature, then I will put it in a new web application folder. It all depends on required functionality, customized settings per clients, and how generic I can make it for everyone's purpose. But these are decisions you, as a developer or architect, need to make to mirror your business processes. You should not be listening to anyone tell you that you need to follow this pattern or that one because everyone is doing it that way. My book tells the details of this discussion and makes suggestions for design.
During these last interviews, I found it interesting that all were telling me their current dilemmas and asking my opinion about possible solutions. Now although I love these kinds of intelligent discussions to assess my knowledge and contributions for the current position; I always leave there wondering if I should have charged a consulting fee. Another point I noticed about all three was they had all bought into some flavor of Microsoft Model and Practice and were asking about security and extending the models.
Now there is little doubt in my mind that Microsoft (with the release of 3.5 Framework) has finally gotten to the point where they are writing a large percentage of the backend business logic and business entities pages. I am not sure of their marketing strategy of this other than to get developers more hooked on free Microsoft work and dependant to the point they can never let go of the Microsoft offerings. Likewise, I advised one of those interviewers (who develops and maintains banking software products) that if I were accountable for this software development and support, that last thing I would ever want to tell my boss is how the Microsoft patches now need to be applied because Microsoft missed this or that security issues. His next question to me would likely be, why did you expose us like that? Do you think Microsoft would take an interest if I called them? Here is the answer: Why customization beats source code modification.
I know one thing for sure. If I am responsible for the success of this web site as LEAD, Manager, or Director; then we will be doing the production my way. And it will be architected as a good solid foundation for classification and layering and optional client features will be extensions of current foundation layering. I talk about this with suggested examples in my book (due for release, next month). But I want to know every line of code, its purpose, and its costs.
Here is the point and purpose of this discussion. I prefer to put the root functional files in the root directory of the web application. Images go under a folder called images. Scripts go under a folder called _ScriptLibrary. Middle tier and all other classes go under the App_Code folder. And the backend libraries that offer data separation and layering, utilitarian functionality, and error and events logging are all compiled separately into their own DLLs and reside in the bin folder. If I need to add another feature to the web site (in essence, another web application), then I may put it in a subfolder if it is only applicable to that web application; or if I have several clients looking to use this new feature, then I will put it in a new web application folder. It all depends on required functionality, customized settings per clients, and how generic I can make it for everyone's purpose. But these are decisions you, as a developer or architect, need to make to mirror your business processes. You should not be listening to anyone tell you that you need to follow this pattern or that one because everyone is doing it that way. My book tells the details of this discussion and makes suggestions for design.
Friday, March 7, 2008
C# Language Features new to v3.0
I have not personally had the chance yet to use v3.0. Who knows, I may fall in love with it. I have reviewed this article from 15 seconds (http://www.15seconds.com./issue/080228.htm) talking about these 3.0 enhancements. It is a well written article. My hat is off to the author. However, I am not so impressed with the features. Seems to me we are taking another step backwards in programming technique. We seem to be in this endless loop of programming ideas and features. First we use a language, like Java or Javascript, where we don't have to do anything but describe all variables as generic variables and the compiler will figure out the rest for us (classic ASP v2.0/3.0). Then we move to the .NET languages where everything must spelled out in great detail from case (in C#) to datatype to initialized values. And now in v3.0, we are back to letting the compiler figure it out again. Perhaps someone at Microsoft is looking down the road and saying, in v4.0, we will go back to demanding GREAT detail and definition for every variable, but this time it will require an XAMELV xml file to describe all variables and controls.
OR perhaps the reorg that Microsoft practices every year to shake up the chicken coop has finally taken its toll; no only Microsoft and but all Microsoft users. I don't see Microsoft contributing to the community anymore but back to their practices of trying to change the world. And their product output is looking like that of a spoiled child. FOLKS, it may be time for a new vendor and a new language that builds in a common sense way and compiles the old stuff as well as the new stuff, when it is four versions down the road. Give it some thought. I know I will.
OR perhaps the reorg that Microsoft practices every year to shake up the chicken coop has finally taken its toll; no only Microsoft and but all Microsoft users. I don't see Microsoft contributing to the community anymore but back to their practices of trying to change the world. And their product output is looking like that of a spoiled child. FOLKS, it may be time for a new vendor and a new language that builds in a common sense way and compiles the old stuff as well as the new stuff, when it is four versions down the road. Give it some thought. I know I will.
Tuesday, March 4, 2008
Developing a Content Manager System
Every good business web site that is the center of your business should be founded on a good content management system (CMS). I recently entered CMS into myUltraSearch site, looked through the major search engines and found something in excess of 2500 possible links promoting various kinds of content management. And then of course there is always Sharepoint portal that Microsoft gives you for free in your Windows 2003 servers. We even offer our own flavor of CMS which originated in classic ASP in 1997 and offers more features than Sharepoint or many of the others called The Frameworks.
The overall mission statement of a content management system is to provide a web based home from which the departments and personnel of your company may operate to share documents, post reports, and enter data. This system should offer security so when a user logs into the system, they only see what they are allowed to have access to; both in documents and database tables or reports. The layout of the business or private pages of the web site should intuitive so there is not much training required; especially for the average computer user. And it should offer total administration so new departments can be created, users may be enabled or disabled, and access groups may easily be created and assigned to departmental folders and subfolders. It is always nice to have a system that allows departments to manage themselves; even in menu enhancements and folder or document access rights. And certainly the system should cater to the ability to house other web based applications or links to important vendor sites offering services in use by the company or department.
In my opinion, any CMS requiring programmers so the system may operate normally for the business, is not a well designed CMS for the user or community in mind. Examples of these would be Sharepoint Portal, DotNetNuke, Joomla, among MANY others. And then there are many addon packages out there just for the developer (i.e. Iron Speed Designer) to enhance or speed up development.
A good CMS on the other hand, can be the center for speedy communications, reports, company status overviews, accounting, accountability, time tracking, project status, and global company assets management. Easy to access. Quickly get to what you need when you need it. For instance, a manager who is prone to micro-manage his staff can easily make assignments to his staff, tell them to drop their finished product in their assigned folder within the CMS, and the micro-manage the folders rather than hang around looking over the staff member's shoulder and asking if it is done yet.
Salesforce.com is not a CMS. It is a web based framework that houses thousands of other plug-in applications that you can subscribe to and try to make work for your company purposes. Let me point out to you that most business processes are composed of a database table for saving data, templates to present the data and for data entry, and backend pages that do the work. It is much the same thing, over and over again, pertaining to many different processes. As an IT group, we just need to start thinking in terms of database driven web pages, editor, and presentors, using variable templates, and reporting for every purpose required by users. We need to get past the Get-R-Done web development mentality and start designing and programming for support and growth, mirroring the company business centered around the CMS.
The overall mission statement of a content management system is to provide a web based home from which the departments and personnel of your company may operate to share documents, post reports, and enter data. This system should offer security so when a user logs into the system, they only see what they are allowed to have access to; both in documents and database tables or reports. The layout of the business or private pages of the web site should intuitive so there is not much training required; especially for the average computer user. And it should offer total administration so new departments can be created, users may be enabled or disabled, and access groups may easily be created and assigned to departmental folders and subfolders. It is always nice to have a system that allows departments to manage themselves; even in menu enhancements and folder or document access rights. And certainly the system should cater to the ability to house other web based applications or links to important vendor sites offering services in use by the company or department.
In my opinion, any CMS requiring programmers so the system may operate normally for the business, is not a well designed CMS for the user or community in mind. Examples of these would be Sharepoint Portal, DotNetNuke, Joomla, among MANY others. And then there are many addon packages out there just for the developer (i.e. Iron Speed Designer) to enhance or speed up development.
A good CMS on the other hand, can be the center for speedy communications, reports, company status overviews, accounting, accountability, time tracking, project status, and global company assets management. Easy to access. Quickly get to what you need when you need it. For instance, a manager who is prone to micro-manage his staff can easily make assignments to his staff, tell them to drop their finished product in their assigned folder within the CMS, and the micro-manage the folders rather than hang around looking over the staff member's shoulder and asking if it is done yet.
Salesforce.com is not a CMS. It is a web based framework that houses thousands of other plug-in applications that you can subscribe to and try to make work for your company purposes. Let me point out to you that most business processes are composed of a database table for saving data, templates to present the data and for data entry, and backend pages that do the work. It is much the same thing, over and over again, pertaining to many different processes. As an IT group, we just need to start thinking in terms of database driven web pages, editor, and presentors, using variable templates, and reporting for every purpose required by users. We need to get past the Get-R-Done web development mentality and start designing and programming for support and growth, mirroring the company business centered around the CMS.
Sunday, March 2, 2008
Modeling vs Real World Programming
This is a topic that honestly leaves a thorn in my side. I have taken two formal post-graduate classes whose primary topic was Modeling via UML Designs. These classes included an intense discussion about actors and objects sending and receiving actions. All in all, I must tell you that in my opinion, there is no real way to represent a 3D object oriented world in a 2D space no matter what program you may use to manage it. The best you can ever do is consider single issues presented within your projects and manage them with your choice of tools (VISIO vs MS Project Manager or other of your choice) and calculate their ROI over time. There truly is a need a good 3D modeler that works hand in hand with VS2005 and later and allows Project Management reporting, Developer scheduling and tracking, and truly brings a global 3D view to the solution. Were this tool available and truly enhanced for the purpose, I believe 2D or flat modeling (as I call it) offered by the aforementioned programs or by web sites (i.e. http://www.softmetaware.com/oopsla2004/mdsd-workshop.html) would instantly become obsolete. And most of all, perhaps this would be a tool that instantly gave meaning and understanding to the relationships between objects, processes, classification, and layering. Certainly the finest tools available today for solution management for the developer and project manager alike, make solution management a full time job on top of actually doing the real work of programming a solution.
Subscribe to:
Posts (Atom)
