Les pièges des projets client/Server de développement


  Share  
|


La gestion des projets client/server comporte des pièges uniques dans des catégories traditionnelles de développement de systèmes. Cet articl adresse les caractéristiques uniques des projets client/server de développement dans les catégories suivantes :

- conditions d'affaires de Defining/documenting

- détermination des conditions de hardware/software/network

- estimant

- cheminement de projet

- définissant charge

- estimer des heures a exigé

- estimer le pourcentage de l'accomplissement

- Timekeeping

- cheminement d'issue

- qualifications se développantes avec la technologie et les outils

- sécurité

- processus de Testing/QA

- documentation se développante

- stabilité d'organisation

- Prototypage

- fins de connexion et approbation

DÉFINISSANT ET DOCUMENTANT DES CONDITIONS D'AFFAIRES

Comme avec un projet traditionnel de développement, la documentation des conditions devrait être le début d'un projet client/server de développement. C'est ici que les exigences d'utilisateur sont définies comme base pour l'analyse coûts-avantages d'évaluation et de projet. Le document de conditions devrait être détaillé et inclure des écrans d'entrée, des cycles de traitement, et des rapports de rendement. La conception de base de données devrait également être incluse, définissant des rapports de données. Est non seulement les conditions d'affaires de defining/documenting importantes pour estimer l'effort initial du projet, il est également critique pour déterminer des changements de portée et déterminer ce que “fait” est. Beaucoup de fois ce qui est en passant passé en revue au début d'un projet devient en critique importante en déterminant un accomplissement’du projet s. Les éléments typiques d'un document de conditions incluent :

- objectif du project/system

- conditions d'affaires

- conditions d'entrée-sortie

- secteur d'activité affecté

- traitement des conditions

- conditions de sécurité

- données ou dossier manipulant des conditions

- impacts d'organisation

- conditions de documentation

Il est difficile que un auditeur détermine si les toutes les conditions sont complètes et en juste proportion définies. Cependant, à un minimum, l'auditeur devrait vérifier que les conditions sont définies à un niveau suffisant de détail et qu'il y a autorisation appropriée de gestion d'utilisateur.

DÉTERMINATION DU MATÉRIEL, DU LOGICIEL, ET DES CONDITIONS DE RÉSEAU

Une fois que des exigences d'utilisateur sont définies, des conditions de hardware/software/network peuvent être établies. Ces conditions sont utilisées comme moyen de déterminer la plateforme et la gestion de réseau de traitement pour le système. Les facteurs qui déterminent le platform(s) approprié sont infrastructure de réseau d'existing/strategic, nombre d'utilisateurs concourants, taille de la base de données, et volume de transactions. Il n'y a typiquement aucune “bonne” plateforme à employer et beaucoup EST personnel ont des avis différents. En outre, les fournisseurs annoncent toujours de nouveaux dégagements avec de nouveaux dispositifs, la rendant difficile de distinguer les caractéristiques du produit existantes contre le vaporware. Prenez garde des technologies et des méthodologies qui présentent les nouveaux limites et vernaculars qui fournissent un écran de fumée par gestion de projet et manque faibles d'expertise. Si tout va bien, une meilleure approche est choisie considérant le coût, l'exécution de systèmes, et la facilité du développement. Typiquement, les conditions sont documentées dans un document d'architecture qui incluent :

- conditions d'affaires

- considérations tactiques

- considérations stratégiques

- interfaces avec d'autres systèmes

Unique plateforme de hardware/software “n'adaptera” toutes les applications, juste comme seul un marteau ne construira pas une maison. Cependant, être aucune petite partie du choix de plateforme ne devrait avec ce que les plateformes les réalisateurs sont familières. La connaissance des plateformes choisies améliorera l'exactitude des évaluations et aidera à s'assurer que “des problèmes de tueur” de système ne seront pas produits plus tard. Il est trop risqué d'employer des technologies improuvées comme plateforme pour de grands projets de développement.

Un goulot d'étranglement potentiel avec les systèmes client/server est la capacité et le trafic de réseau entre le poste de travail d'utilisateur et le serveur. Beaucoup de fois, on s'attend à ce que ces systèmes exécutent les réseaux étendus finis (WAN) qui peuvent ne pas fournir à temps de réponse conformés de réseau.

ESTIMER

Une utilisation de l'évaluation de projet doit déterminer si la gestion veut placer le projet basé sur une analyse de cost/benefit. Évidemment, si les évaluations ne sont pas précises, la gestion ne peut pas prendre de bonnes décisions dessus si elles veulent faire le projet, affectent des personnes à charge, ou plan dessus quand les deliverables seront disponibles. Essentiellement, sans évaluations de marchandises, les chefs de projet ne peuvent pas contrôler. Les facteurs qui entrent dans des évaluations de bon sont :

- expérience avec les outils de hardware/software/network/development : Si les réalisateurs ne sont pas éprouvés avec le platforms/tools, la gestion devrait se rendre compte que l'évaluation n'est probablement pas très bonne et être prête à dépenser beaucoup plus sur le projet et prévoir retarde.

- connaissance des conditions : Les réalisateurs ont-ils été impliqués dans la définition de conditions ? Si pas, encore l'évaluation n'est probablement pas très bonne ; et soyez prêt à dépenser beaucoup plus sur le projet et prévoir retarde.

- systèmes existants : La nouvelle application est-elle une réécriture des systèmes existants où les conditions de rapports et de données sont définies ? Si oui, l'évaluation peut être assez précise. Autrement, l'effort additionnel peut être exigé aux Re - faites le système pour répondre à des exigences d'utilisateur.

Si tout va bien, une expérience professionnelle des efforts semblables de développement peut être employée pour fournir un contrôle de réalité pour les évaluations. Ceci peut également être employé pendant qu'une commande pour les lotisseurs de gestion qui peuvent capitonner leurs évaluations. Un facteur ou une gamme de confiance devrait être une partie de cette évaluation. Ceci donnerait à gestion un meilleur-cas et un scénario des cas les pires. Ceci permettrait à gestion la capacité de décider de ne pas faire le projet si ce pourrait être pas des dates-limites trop chères ou probables de rassemblement. Un piège final à observer dehors pour est un ensemble de date de cible par la haute direction à engager avec par la équipe de projet. Si une date de haut en bas de cible est fixée, il y a pression sur le personnel de développement à “de nouveau dans” les évaluations qui ne sont pas basées sur ce qui est exigé ou pression de ne pas avoir des évaluations du tout.

CHEMINEMENT DE PROJET

Comme avec tous les projets de développement, essentiels à éviter ou à contrôler des pièges client/server de développement est la gestion de projet efficace. Les éléments ont énuméré ci-dessous sont employés pour identifier où le projet est, ce qui est laissé, et la quantité d'effort restante.

- définissant charge : Le développement charge devrait être défini à une taille qui est assez petite pour être facilement dépistée et signicative. Le chef de projet peut efficacement contrôler un projet s'il y a les deliverables spécifiques avec des heures clairement définies et fréquente les dates dues. Grand charge avec les deliverables ambigus le rendent difficile de savoir si le projet est dans l'ennui à temps de contrôler efficacement les pièges. Chargez les interdépendances et l'attribution des responsabilités sont particulièrement importante pour des projets avec les équipes relatives multiples où il peut être difficile de déterminer qui est responsable de ce qui.

- estimant heures requises : Ceci devrait être fait par quelqu'un qui est éprouvé avec ce qui est exigé — si tout va bien le réalisateur qui exécutera le charger. Ceci fournirait une certaine propriété ou engagement pour charger l'accomplissement.

- estimer le pourcentage de l'accomplissement : Ceci peut être une conjecture imprécise si basé sur la quantité de travail qui a été déjà dépensé pour accomplir un charger. Elle devrait être basée sur les deliverables définis tels que le nombre de charge, des écrans, ou des rapports accomplis.

- Timekeeping : Timekeeping fréquemment n'est pas employé efficacement. Beaucoup de réalisateurs n'enregistrent pas régulièrement leur temps ou ne maintiennent pas une évaluation précise des heures dépensée. Ceci le rend difficile de déterminer le statut de projet. En outre, le manque d'enregistrer toutes les heures pour ce projet peut causer d'autres projets d'être sous-estimé si les heures enregistrées sont employées pour de futures évaluations.

CHEMINEMENT D'ISSUE

Le cheminement d'issue peut être employé pour raffiner des conditions de projet en documentant et la résolution des décisions qui n'ont pas été contemplées pendant la définition originale de conditions. La notation d'issues est également un bon véhicule pour des problèmes en suspens de cheminement et s'assurer qu'elles sont résolues avant que le système soit mis en application dans la production. Un piège commun avec les systèmes client/server est le manque de stabilité dû aux incompatibilités de logiciel, aux erreurs de réseau, et aux faiblesses avec la base de données manipulant les mises à jour concourantes. Des issues devraient être pesées dans la sévérité “des taquets d'exposition” “aux perfectionnements gentils” pour donner la priorité à l'effort de développement. L'utilisateur de possession du système devrait être celui pour déterminer si un problème a été résolu, aussi là qu'une tendance pour que les réalisateurs réclament la résolution pr3maturément. Comme avec n'importe quelle notation de problème, la notation d'issue devrait contenir qui a identifié l'issue, la date où l'issue a été identifiée et communiquée, la sévérité, une description de l'issue, et si résolu, le texte de résolution. Ceci peut également servir une vérification rétrospective des décisions faisait.

Des issues devraient être maintenues après qu'elles soient résolues pour être employées pour futur tendre. L'analyse de tendance devrait être exécutée pour dépister les issues de formation, aussi bien que des problèmes avec le matériel, le logiciel de logiciels d'exploitation, et tout autre logiciel d'application. Si chaque erreur est notée, la notation d'issues peut également être employée pour dépister la stabilité globale du système. La notation d'issues peut être employée pour diagnostiquer des problèmes en indiquant exactement les situations où le problème s'est produit. L'information de problème peut également être utile en obtenant l'aide de fournisseur dans la résolution de problème en fournissant l'évidence claire de la corrélation entre les problèmes et les produits de fournisseur.

QUALIFICATIONS SE DÉVELOPPANTES AVEC LA TECHNOLOGIE ET LES OUTILS

La formation sur le tas n'est pas la manière d'apprendre de nouveaux outils et techniques de développement client/server. Un réalisateur devrait certainement prendre la salle de classe ou l'enseignement assisté par ordinateur (CBT). Cependant, les lotisseurs ne devraient pas s'embarquer sur des projets à grande échelle sans d'abord avoir accompli avec succès de petits projets. Ceci réduirait le risque de projet en permettant aux lotisseurs de se prouver sur une plus petite échelle et de leur donner les capacités plus exactement à l'évaluation l'effort impliqué. Des chefs de projet devraient également être formés en contrôlant des projets progressivement plus grands se concentrant sur les équipes multiples, chargent des interdépendances, et des utilisateurs multiples.

Sur de plus grands projets avec de nouvelles technologies, il peut y avoir beaucoup de gens avec différents niveaux d'expertise essayant de prendre des décisions. Il y a beaucoup de niveaux de la connaissance. Ceci peut s'étendre quelle personne a lu dedans un magazine, à ce qu'ils ont eu des nouvelles de quelqu'un d'autre, à ce qu'elles savent de la formation, à ce qu'elles savent de travailler avec un système ou après l'expérience de développement.

Les trois premiers niveaux de la connaissance sont assez faibles mais assez communs. Les gens’des rôles que de s devrait être contrôlé, basé sur une identification de leur niveau de la connaissance pour assurer que charge sont convenablement assignés, les évaluations sont fiables, aussi bien que celle les décisions prises et les directions prises sont bruit. Des contrôles de référence devraient être faits pour de nouveaux employés et consultants en matière d'extérieur qui prétendent être “des experts” pour vérifier leur niveau d'expertise.

SÉCURITÉ

Une exécution réussie de sécurité peut être difficile dans un environnement client/server dû aux nombreuses couches de traitement qui doivent être fixées :

- poste de travail de client. Historiquement, c'a été un PC qui a la restriction faible de commandes qui a accès aux programmes et aux dossiers. Cependant, avec l'introduction des logiciels d'exploitation tels que le poste de travail’de Windows NT de Microsoft s, les commandes disponibles rivalisent le niveau de la sécurité disponible sur une unité centrale.

- application. Ce niveau de sécurité commande typiquement les menus et les champs qu'un utilisateur peut accéder. Les niveaux de l'accès sont typiquement lus, mettent à jour, et suppriment.

- réseau. Ceci traite fixer l'activité sur le réseau. Les outils tels que des renifleurs de réseau sont disponibles pour indiquer et changer les données qui sont transmises au-dessus du réseau. Il y a en général deux types de commandes de réseau employées pour empêcher la révélation ou le changement inadéquate de données. Le premier limite l'accès aux segments ou aux secteurs d'un réseau. Ceci est habituellement fait avec les systèmes de mur à l'épreuve du feu ou les couteaux de criblage qui limitent le trafic basé sur la source et les adresses de destination. Des raccordements d'Internet devraient être commandés par des murs à l'épreuve du feu. L'autre méthode pour fixer le trafic de réseau est chiffrage. Ceci empêche la capacité de lire ou changer des données allant à travers le réseau. À un minimum, des mots de passe devraient être chiffrés.

- serveur. De serveurs commande typiquement qui peut entrer au réseau et qui peut accéder à des bases de données et à des dossiers sur le réseau. Le degré de sécurité de serveur est les la plupart

type commun de sécurité utilisé dans un réseau local. L'accès au réseau est en général commandé par une identification de l'utilisateur et un mot de passe correspondant. L'accès aux dossiers est alors accordé basé sur l'identification assignée d'utilisateur ou de groupe. La plupart des serveurs prévoient l'activité de notation d'administration et de violation de sécurité. Dans de grands systèmes du client /server, une unité centrale exécute la fonction de serveur.

- base de données. Le système de base de données peut également exécuter des fonctions de sécurité, exigeant une identification de l'utilisateur et un mot de passe et puis assignant l'accès aux données basées sur l'identification d'utilisateur ou de groupe. En outre, les bases de données peuvent noter l'activité d'administration et de violation de sécurité.

La coordination des niveaux multiples de sécurité est difficile, et beaucoup de systèmes présentent des faiblesses de sécurité en ignorant des contrôles d'accès sur certaines plateformes ou scripting des ouvertures sur les plateformes qui peuvent être facilement évitées. Un autre problème typique avec les systèmes client/server est qu'ils sont encombrants, exigeant des ouvertures multiples avec les userids multiples et les mots de passe.

Dans le meilleur des cas, l'application devrait être conçue avec un sign-on simple au lequel les commandes accèdent sur l'ation, le poste de travail, le serveur, et les systèmes applic de base de données, avec les commandes de réseau qui limitent l'accès aux segments appropriés du réseau et chiffrent le trafic sensible.

ESSAI

Tandis que les éléments du processus traditionnel de la qualité assurance/testing s'appliquent à l'environnement client/server, cet environnement contient des défis uniques exigeant un essai plus rigoureux bien que les réalisateurs puissent ne pas prendre l'essai en tant que sérieusement parce que c'est “seulement un système de PC.” Le procédé client/server de développement de systèmes devrait inclure des plans d'essai avec le résultat prévu, le résultat réel, et la disposition des différences. Si les conditions de système ont été bien définies, elles peuvent être employées pour développer les plans d'essai. L'essai devrait inclure toutes les plateformes, aussi bien que les interfaces entre elles et la capacité manipuler les utilisateurs concourants. En plus de manipuler les mises à jour multiples par les raccordements concourants, beaucoup de systèmes client/server incluent la capacité de fonctionner sans raccordement de réseau direct par la synchronisation de base de données en utilisant une réplique appelée de processus. Ceci exige des étapes d'essai uniques de vérifier que des additions, les mises à jour, ou les suppressions repliées sont manipulées correctement par le processus de réplique aussi bien que travailler avec le système fonctionnant dans un multiple - mode d'utilisateur. Les mises à jour concourantes aux bases de données (deux personnes essayant de mettre le même disque en même temps) peuvent créer des conflits de base de données. Comment le système manipule des conflits devraient être documentés et contrôlés par le logiciel d'application ou les procédures manuelles.

Le temps de réponse faible est souvent une issue avec les systèmes client/server. Des goulots d'étranglement peuvent être corrigés en augmentant la capacité de réseau, les questions d'accord de base de données, ou optimiser la conception de base de données.

La gestion client/server de changement crée également des défis uniques avec la commande de version. Le code mming de Progra est typiquement distribué à travers les plateformes multiples aussi bien qu'incorporé dans des bases de données. Tandis que des paquets de commande de version de PC sont fréquemment employés, changez les systèmes de gestion qui incluent la synchronisation de source/object ne sont pas aussi sophistiqués que les systèmes utilisés dans l'environnement d'unité centrale.

DOCUMENTATION SE DÉVELOPPANTE

Tandis que le but d'un système client/server est d'être facile à utiliser et de fournir des fonctions en ligne d'aide, ces systèmes devraient en plus avoir les types traditionnels de documentation disponibles à fonctionner, maintiennent, et emploient le système. Les conditions de documentation devraient inclure ce qui suit :

- vue d'ensemble de système

- codes de l'utilisateur instructions/transaction

- organigrammes de système

- interfaces de système

- fonction de traitement, organisation et courte description de mme. de progra.

- caractéristiques du dossier descriptions/dataset (conception de base de données si c'est approprié)

- conditions de sécurité et de commande de système, et exécution de ces conditions dans le système

- conditions de protection et de conservation de dossier - erreurs et messages d'utilisateur

Des conditions de documentation devraient être incluses dans le plan de projet, aussi bien que des contrats si travaillant avec un fournisseur extérieur.

STABILITÉ D'ORGANISATION

Il est difficile contrôler des réorganisations et le chiffre d'affaires de personnel, en particulier dans de grands organismes. Ces impacts peuvent facilement tuer un projet. Un bon chef de projet prévoira la possibilité de perdre des membres d'équipe avant “les deux semaines où la notification” est donnée. Évidemment, la gestion devrait faire ce qui elles bidon pour maintenir les personnes principales. Cependant, le personnel perdant est inévitable — particulièrement si le personnel est formé sur “les technologies chaudes” qui sont très commercialisable. Les choses qui peuvent être faites pour réduire l'impact des changements de personnel sont :

- formation : s'assurant qu'assez de personnes sur le personnel sont bien informées avec les technologies pour s'assurer que l'équipe n'est pas terminée dépendante sur aucune une personne. Ceci pourrait également être employé pour aider à contrôler le personnel qui sont résistant au changement et ne veut pas traiter lui.

- établissement des protections : l'identification qui pourraient remplir position’de la personne s, ce qu'ils prendraient pour obtenir à l'individu jusqu'à la vitesse, et mettre en application un plan avant lui est exigée. Il peut se comprendre pour avoir indiqué les individus de secours écrivent des parties du système pour s'assurer qu'elles ont les qualifications nécessaires pour le soutenir.

- Tutelle : identifiant des occasions pour que des individus plus aînés aident d'autres en répondant à des questions, assistant le raisonnement, et le fonctionnement par des problèmes.

- normes de programmation : couvertures comment le code doit être écrite et documentée pour s'assurer qu'il peut être soutenu par d'autres.

- revues de code : implique de passer en revue des systèmes pendant qu'ils sont développés pour s'assurer qu'ils sont logiquement écrits, compréhensible par d'autres, et pour adhérer aux normes de documentation.

- écrans d'entretien : si soyez construit pour permettre la modification du système principal functions/parameters sans intervention de programmeur.

CONCLUSION

Il n'est pas facile de contrôler les projets qui dépendent des systèmes client/server complexes. Les problèmes techniques peuvent se produire qui “tuent un système” qui n'ont rien à faire avec la gestion de projet. Cependant, on peut présenter des commandes de gestion de projet qui atténuent les risques de ces problèmes. Tandis qu'apurer la gestion de projet que les commandes diverge de l'approche traditionnelle d'audit, ressources de corporation peut être sauvé par l'escalade aux situations de haute direction où ces commandes ne sont pas en place. Comme précédemment discuté, les commandes les plus importantes pour observer dehors pour pour inclure :

- expérience avec la technologie et les projets semblables - en juste proportion définissant et documentant des exigences d'utilisateur - dates réalistes estimantes et d'établissements précises de cible - cheminement du progrès et des issues

- mettre en application la sécurité efficace

- efficacement documentant et examinant le système - obtention de l'approbation d'utilisateur

Si ces commandes sont en place, le chef de projet et les auditeurs ont une certaine assurance que les risques liés aux pièges client/server sont efficacement contrôlés.

c'est un article supplémentaire par Marrie Hopper


Share  

© 2005-2010 E-articles.info All Rights Reserved - Terms and conditions