Managing an Agile Project Portfolio

Numerous articles and books have been written about proper project management techniques and how to steer a project from start to finish. Many of them offer help in maneuvering a floundering project back on track. What is mind-boggling, however, is that despite receiving so much help and advice, so many IT projects are considered failures, even those that were delivered on time and on budget. Furthermore, if you add the project evaluation criteria ?Did the stakeholders get what they initially asked for?? or ?Were the stakeholders? voices always heard?? to measure the success of IT projects, it?s likely that the list of success stories would shrink even further.

One reason for all this dissatisfaction is that many customers initially don?t even know what they want, or more importantly, they don?t know what they could get for their money.? Once a project starts, however, customer expectations often rise while scope creep and churn take the energy out of the project team.? On an individual project level, agile software engineering addresses these concerns and seeks to develop project iteratively as a way to better serve the customer?s true needs. But what about the projects themselves? Could applying agile concepts to how we balance the mix of a company?s IT projects ensure that we choose to work on the projects that will be successful and meet customer needs? Absolutely.

Find full article by Jochen Krebs

Posted in Agile, General, Project Management, Scrum | Leave a comment

DNN Upgrade to 4.5.3 and dasblog (virtual directory) crashing…

Recently I upgraded my DotNetNuke installation from 3.x to 4.5.3. Upgrade went smooth but I had tough time making dasblog work under DNN (running on virtual directory under DNN).

I googled for solution nearly full day but didn’t get the exact solution. All the solutions were for dnn 3.x though which I was using for around an year (on .Net 1.1). <Clear/> tag does not work to clear root HTTP modules and handlers settings which gets inherited to any .net applications under root. Hope this solution helps guys in similar trouble. This can be applied for any DNN 4.5.3 installation to have any virtual directory within the same…

1) add following entries in the beginning of <httpHandlers> section of web config file in dasblog.

<remove verb=”*” path=”*.captcha.aspx”/>
<remove verb=”*” path=”LinkClick.aspx”/>
<remove verb=”*” path=”RSS.aspx”/>
<remove verb=”*” path=”*.asmx”/>
<remove verb=”*” path=”*_AppService.axd” />
<remove verb=”GET,HEAD” path=”ScriptResource.axd”/>

2) Add entries in <httpModules> section.
<remove name=”Compression” />
<remove name=”RequestFilter” />
<remove name=”UrlRewrite” />
<remove name=”Exception” />
<remove name=”UsersOnline” />
<remove name=”DNNMembership” />
<remove name=”Personalization” />
<remove name=”ScriptModule” />

3) add following entries in <pages> tag.. (make sure, all attributes of <pages> tag (if exists) are same as before. Idea here is to clear the namespaces).

<pages validateRequest=”true”>
<namespaces>
<clear/>
</namespaces>
</pages>

All this and you’d have your web application working under DNN!!!

Cheers!!!

Posted in .Net, .NetNuke, ASP.Net, C# | Leave a comment

C# Design Patterns

In software development, a  design Pattern describes a general solution to a design problem that recurs repeatedly in many projects. Software designers adapt the Pattern solution to their specific project. Patterns use a formal approach to describing a design problem, its proposed solution, and any other factors that might affect the problem or the solution. A successful Pattern should have established itself as leading to a good solution in three previous projects or situations.

Here are 3 categories of the Patterns involved in software designing…

1) Creational Patterns

  • Abstract factory pattern: centralize decision of what factory to instantiate
  • Factory method pattern: centralize creation of an object of a specific type choosing one of several implementations
  • Anonymous subroutine objects pattern
  • Builder pattern: separate the construction of a complex object from its representation
  • Lazy initialization pattern: tactic of delaying the creation of an object, the calculation of a value, or some other expensive process until the needed first time
  • Prototype pattern: used when the inherent cost of creating a new object in the standard way (e.g., using the ‘new’ keyword) is prohibitively expensive 
  • Singleton pattern: restrict instantiation of a class to one object

    2) Structural Patterns
  • Adapter pattern: ‘adapts’ one interface for a class into one that a client expects
  • Composite pattern: a tree structure of objects where every object has the same interface
  • Aggregate pattern: a version of the Composite pattern with methods for aggregation of children
  • Bridge pattern: decouple an abstraction from its implementation so that the two can vary independently
  • Container pattern: create objects for the sole purpose of holding other objects and managing them
  • Decorator pattern: add additional functionality to a class at run time where subclassing would result in an exponential rise of new classes
  • Extensibility pattern: aka. Framework – hide complex code behind a simple interface
  • Facade pattern: create a simplified interface of an existing interface to ease usage for common tasks
  • Flyweight pattern: a high quantity of objects share a common properties object to save space
  • Proxy pattern: a class functioning as an interface to another thing
  • Pipes and filters: a chain of processes where the output of each process is the input of the next
  • Private class data pattern: restrict accessor/mutator access

    3) Behavioral Patterns

  • Chain of responsibility pattern: Command objects are handled or passed on to other objects by logic-containing processing objects
  • Command pattern: Command objects encapsulate an action and its parameters
  • Interpreter pattern:  Implement a specialized computer language to rapidly solve a specific set of problems
  • Iterator pattern: Iterators are used to access the elements of an aggregate object sequentially without exposing its underlying representation
  • Mediator pattern: Provides a unified interface to a set of interfaces in a subsystem
  • Memento pattern: Provides the ability to restore an object to its previous state (rollback)
  • Observer pattern: aka Publish/Subscribe or Event Listener. Objects register to observe an event which may be raised by another object
  • State pattern: A clean way for an object to partially change its type at run time
  • Strategy pattern: Algorithms can be selected on the fly
  • Template method pattern: Describes the program skeleton of a program
  • Visitor pattern: A way to separate an algorithm from an object
  • Single-serving visitor pattern: Optimise the implementation of a visitor that is allocated, used only once, and then deleted
  • Hierarchical visitor pattern: Provide a way to visit every node in a hierarchical data structure such as a tree

    Look for subsequent posts for clarification of each one from C# point of view…

    Cheers!!!

  • Posted in .Net, C# | 1 Comment

    About .Net Framework 3.0

    via netfxguide


    The Microsoft .NET Framework 3.0 (NetFX3 or WinFX), is the new managed code programming model for Windows. NetFXGuide presents the best resources about the .NET Framework 3.0 including videos, tutorials, articles, source code and much more.


    Posted in .Net | Leave a comment

    Surprising Pitfalls of Teamwork Training…

    via www.businessweek.com


    With a background in the Indian army, this Babson MBA student thought working in teams would be a breeze. He was in for a shock …


    Posted in General | Leave a comment

    Web 2.0 Color palettes and design

    via newsmotto


    Stuart Brown has grouped colors into three color sets -neutrals, muted tones and bold colours and called this Web 2.0 Colour Palette:


    Joseph followed the tip and made his wordpress blog theme web 2.0 like DC Media points to some more web 2.0 colors – Mile Burke?s The Web 2.0 Secret Weapon and a little more comprehensive web 2.0 Color palette. There is even a web 2.0 logo creator [Via Sticki Widgets ]


    And if you want to learn from the start – Web 2.0 Design From Start to Finish and Designing in Web 2.0


    Other Web 2.0 Links:
    Design, fonts, logos, blogs, etc.


    Web 2.0 Zen
    Jim Hobart on web 2.0 design and usability
    DIV & Pure CSS for web 2.0 design
    Web 2.0 Design Tutorials
    Web 2.0 Design Kit
    Top 10 Web 2.0 design
    Tag, You?re It
    Design, Font, Color, and Logo 2.0 from jeremiah
    Web 2.0 design for sale on Ebay!
    Corporate Web 2.0
    The Logos of Web 2.0
    Dion Hinchcliffe?s Web 2.0 Blog


    ……….


    Cheers!!

    Posted in General | Leave a comment

    Nice article on Asp.Net optimization

    Presented here is a nice article on Asp.Net optimization.. Via John Belthoff


    ************


    If you read all of the websites dedicated to Asp.Net you will inevitably read about the wonders of the DataGrid, DataList, and Repeater controls. While each of these has its place, if you are only displaying data there is a much faster and more efficient means to do so.

    Posted in .Net, ASP.Net | 1 Comment

    Harvard Business School Case Study on Wipro’s Factory Model

    To examine the advantages and disadvantages of software outsourcing, as well as the application of lean principles to software development, Harvard Business School has done a case study on Wipro’s innovative Factory Model approach. It specifically explores Wipro’s experimental use of lean principles as a source of new competitive advantage in software services.


    The case study addresses the advantages and disadvantages of software outsourcing and how to mitigate the effects of, for example, lock-in and hijacking. Explores how Wipro has helped its customers deal with these issues and looks at the changing competitive role of Indian outsourcers (from low-cost, to high-quality/rapid turnaround). Specifically explores Wipro’s experimental use of lean principles as a source of new competitive advantage in software services. Also addresses the issue of standardization in information technology, examining why companies progressively develop so many standards and how companies like Wipro can help them standardize, thus limiting one of the primary drivers of companies’ IT costs.


    A copy of the case study can be retained from either Wipro

    Posted in General, Project Management | Leave a comment

    Integrated ERP software uses Microsoft.NET

    VISIBILITY.net is one of the first Enterprise business applications to be written from the outset entirely using Microsoft.NET framework and Web services architecture. This methodology provides engineer-to-order (ETO) manufacturers with a distinct set of advantages when deploying the enterprise resource planning (ERP) application. VISIBILITY.net has a highly functional user interface, providing the user with a multi-document interface (multiple windows) in a single browser session.


    Visibility extended the standard Microsoft ASP.NET development environment by providing a highly intuitive, interactive user experience that would not usually be possible within an Internet application. This accomplishment is achieved with a zero client interface. VISIBILITY.net does not download any software onto client PCs to operate. Any client PC with Internet Explorer 5.5 or later is capable of operating with VISIBILITY.net.


    VISIBILITY.net is deployed as a true internet application – the system administrator need not know anything about the client hardware because no installation is necessary. In doing so it provides ubiquitous access for users inside the four walls of your organisation, for users at remote plants and sales offices, and for users ‘on the road’.


    * Internet Standards based – some ERP vendors have put a ‘tick in the box’ against industry standards such as HTTP, XML, .NET and Web services through the use of ‘bolt-on’ technology modules.


    The very core of the VISIBILITY.NET application makes use of this technology today, without the need for additional middleware or integration applications. Read Full article here

    Posted in .Net, ASP.Net, General | Leave a comment

    Embedded database supports C#, .NET Compact Framework

    Via windowsfordevices.com


    McObject has released a C# implementation of a dual-licensed object-oriented embedded database that can be used to develop Window CE and Pocket PC applications. Originally written in Java, Perst boasts “tight integration” with C# and support for the .NET Compact Framework (CF), along with high performance and a modest footprint, the company says.


    According to McObject, Perst’s tight integration with C# results in “exceptional transparent persistence and ease in working with objects.” The company adds that the database’s typical 30 to 300 KB run-time code footprint enables it to satisfy the resource constraints of many embedded applications, and also makes it suitable for C# applications requiring high-speed data management.


    Typical applications include mobile and embedded devices, industrial systems, Web services, and packaged software, according to the company.


    In contrast to object/relational databases, or tools that provide object/relational mapping, Perst stores data directly in C# objects, McObject explains. This eliminates the need for expensive (in performance terms) run-time conversions between the database representation of the data and the C# representation, the company adds.


    Additionally, “Perst ensures integrity via transactions that adhere to the ACID properties (Atomicity, Consistency, Isolation and Durability) with very fast recovery,” McObject said.


    Other Perst features include garbage collection, detection of hanging references, automatic schema evolution, XML import/export utilities, and master-slave replication support with the option to run read-only queries on slave nodes, according to McObject.


    The company is offering Perst under a dual-license model. Users can download and modify the database source code and use it freely in non-commercial applications that are neither sold nor used internally by a business, and for which source code is made available. A commercial license is required when Perst-based software is sold or used for business, or if source code will be withheld, according to McObject.

    Posted in .Net, .Net Compact Framework, C#, General | Leave a comment