Showing posts with label Projects. Show all posts
Showing posts with label Projects. Show all posts

Tuesday, 10 October 2017

Learned Lessons – Developing a MVC 9V2.0 Full Stack ASP.NET Application called MulderbertPX

A full stack experience from being on the team at College for V1.0 and then doing V2.0 as a solo developer! 



So, yesterday I was a very satisfied Software Developer for finishing the development and launching MulderbertPX, the V2.0 release of the full stack ASP.NET application. This release brings it to the next stage of its development as a project. You may have seen this trailer for yesterday’s application launch on Github and Azure, which was going around Social Media sites.



The application’s stack is a nice full stack iteration I would recommend to anybody developing a Minimum Viable Product (MVP) and is as follows:

Application Layer:
ASP.NET in C# using cool features like @Razor

Database Layer:
Native XML DB for Contacts & SQL Server for Customer Details/Transactions

Network Layer:
Azure Cloud Deployment with configuration at Storage and Network layer making the application more efficient and secure

So, yesterday’s launch was totally awesome but what’s new in general terms for V2.0?

Application Reengineered from a Database First design I re-engineered the application with data modelling (database) tables moved up-to the application layer as modelling Enums. The V2.0 code first approach and MVC design pattern made sense as a redesign decision given the decreased pressure on database calls for information in processing transactions in particular.

More Structured DataData generation for transactions has been mainly transferred from database tables to app layer Enums, which also provides flexibility for future development direction keeping data accuracy high and customer effort low.

Database Redesigned - As I’m still a poor student in spirit (and pocket), I could not afford to have a larger SQL Server instance on Azure so a thrifty architecture for the application made sense making the SQL Server instance as small as possible. By Microsoft Azure’s pricing tiers go, I cannot make the database resource any smaller, which is good news for my empty pockets and also good direction for anybody looking to develop an Minimum Viable Product (MVP)!

The new features for this re-engineering orientated release is as follows:

Responsive Design – Two stages (768px/500px) of responsiveness are styled so this MVC application can render just enough resources to be presentable at screen sizes less then a general desktop. This includes a hamburger menu in the restricted states, which is run on JavaScript functions.

Login Box – Whilst technically a developed feature, the use of customer details (e.g. Customer ID) in a box like presentation along with options applicable to the logged in and logged out state are a basic but useful feature to have.

As the project is Open Source, you can check out my code on Github at at Project MulderbertPX. Below is a 7 minute 50 second feature movie demonstrating the application’s features with wonderful ambience music from Pytor Ilyich Tchaikovsky… hope you like it!!



The main lessons learned from this experience has been that:

ASP.NET still has great abstracted functionality to do cool things concisely such as @Razor Enums helper methods, which streamlines “View” code immensely.

Good Software Architecture is incredibly important, as you don’t want to struggle with technology access like I have done. I completed my SQL Server instance on Azure using a Mac and had no view of my DB internals. I started developing this project on Windows machines at Dublin Business School (DBS) working on SQL Server Management Studio  (SSMS) with full view of my DB internals. When my access to DBS resources finished 29th of September, the last part of the project was done on Azure’s brand new SQL Server Query window. I enjoyed the SQL coding BUT missed looking at how many tables, attributes, views, stored procedures and indexes I had. So please consider this my “Dear Santa” letter as Christmas is coming…   “Dear Microsoft, I would like SQL Server Management Studio for Mac please? Will you be my Secret Santa this year???”

Good Programming Practices like abstraction, encapsulation, inheritance and polymorphism are kernels that support clean, neat and reusable code! Considering these concepts was how I developed the application so its understandable that mirroring the service and product’s coding paths may look like an inefficient implementation. However, future development may see the customer journey diverge on goods versus service products or maybe a phased introduction of an online payments service is required. Both scenarios are likely making separate implementation paths in this release a good idea. It’s a judgement call based on the V1.0 frontend design, which hopefully will prove useful in future developments.

Version Control is your friend. The extensibility of the application was apparent to me and working as part of a multi skilled team would be the only way to develop larger and scaled future versions of the application. Also, if everything goes up in smoke on my Mac (I call her “Debs!”), using version control like Github is the only option!

SEO Counts. It’s a good idea to ensure your metadata is working and you register the application with Google and Bing especially if it’s a real e-Commerce site. There is an impressive array of API options available for Facebook and Twitter so taking time to understand what they are is a good idea! 

I guess as I start my next application (ASP.NET Core app) to showcase my projects to date, I will remember this application as a fun development experience that was loaded with learning for the future!




Wednesday, 21 May 2014

Organisational Flexibility, the rise of the Matrix Management Structure

Today's silo, tomorrows competitive edge!!..



I once asked about the profitability of a product when considering extra payment terms to indirect suppliers in a cross functional meeting, and the Marketing Manager looked at me like I had just killed his first born son! I thought I best not pursue the issue at the time for fear that I be accosted by twenty sword yielding ninjas on my way home making it an even fight!

Upon more serious reflection of such defensiveness and numerous subsequent articles on Matrix Management structures, I have reviewed the core vertical management structure/silo concept as established over time by classical management theory and wondered if a need for simple accountability has become an inhibitor to organisational flexibility in today’s increasingly dynamic marketplace?

Source: Vertex 42
http://www.vertex42.com/ExcelTemplates/organizational-chart.html
Considering this, it is not hard to see why others have sought a solution to this problem, which has arisen in recent years due to the rise in technology as an integrated platform operating in business. Matrix management’s rise has also being aided by globalisation and the integration of advanced marketing strategies into big data models identifying market threats and opportunities much earlier then has been in times past. The need for responsive change through project management has become the norm in industries like technology, construction and government agencies that have dealt with fast changing market places for some years prior to other industries.

Matrix Management Structures have arisen initially through these industries but as technology based disruptor's reach more and more markets, the need to be more flexible in today’s marketplace creates a competitive edge and can become a matter of survival if left too late to plan for and adopt organisational structures like the Matrix Management structure.  It makes vertical structures less ‘silo’ and more ‘contributor’ to common goals set by the senior leadership in a dynamic marketplace. Matrix’d management should be managed by a cadre of high calibre functional and programme managers working together to common objectives rather then at odds, which often arises when perceived centres of power are challenged by often well-intended colleagues trying to do their jobs as they perceive them.

It sounds simple right? Well when thinking about the ‘vertical management silo’ we think of the following:

  • ·      Good accountability
  • ·      Good downward communication of goals, objectives and tasks
  • ·      Good visibility of ‘vertical silo’ activity


When we think of ‘matrix management structures’ we think of:

  • ·      Good project charters and functional modus of operation
  • ·      Flexibility to handle organisational and/or market change quickly
  • ·      Close collaboration on a horizontal level with layered visibility from the top down


It is reasonable to think if we lay out our expectations, the organisational benefits would be directly responsible for a world-class organisation? If so, then why are so many struggling with the need for more organisational flexibility and the matrix management structure as a model? The reasons vary from organisation to organisation but I would offer the following points to consider when looking at one’s company in a matrix management model.


ü  People make or break organisations, the matrix management model is people centric, so consider the model in terms of talent management, corporate culture and how accepting functional managers are to the influence and responsibilities a project manager would have in any change initiative. Without awareness and acceptance by all parties, the matrix management structure becomes dysfunctional and ineffective over time.
ü  Ensure the whole organisation is on board, not just one silo or a group of silos. The sponsor of a matrix management structure needs to be at the very top and the follow through needs to be executed at the same level downwards to successfully re-orientate the vertical silos to the matrix management structure in a planned manner so everybody feels secure and accepts their organisational roles into the future.
ü  Ensure the programme/project management structures are appropriately positioned to effect change and improvement in support of, rather then in conflict with functional silos.
ü  Matrix Management structures offer flexibility but make accountability difficult in complex areas of the business. Make sure the accountability is executed collaboratively using technological means to secure progress and milestone metrics on project and functional areas of operation. The synergy of accountability means projects are managed clearly and collaboratively, as are functional areas. Change management from autocratic management can be difficult but it’s necessary if matrix management structures are to work effectively.
ü  Never consider matrix management structures as an end, but a means to a new modus of operation. The requirements need to be carefully considered against internal readiness, market place dynamics and the strategic plans for the future. Engaging matrix management structures against a narrow window of project management need only will prove problematic and subject to a very high fail risk.


The need to be focused on people in such an increasingly dynamic marketplace has never being so apparent since the 1980s when the last “big push” was on moving the landscape in business. This time, its faster, more dramatic and more impacting leaving those whom balance vision and flexibility with organisational dogma standing into the future. The key always has and always will be people. To quote Debra J. Devine “If we are going to live with our deepest differences then we must learn about one another”. In order to do that we must saddle collaborative leadership practice and culture with a customised matrix model transforming the way we live, work and interact with each other building sustainable business into the future.