Architects & PM Guide – project Kick-off template/checklist

Repeatability is the key for the success of IT projects and this can be otherwise termed as “well-defined process”. In this post, I am sharing what I follow in all of my greenfield software development projects as simple checklists which I and my team are following nearly a decade. I am continuously refining, refactoring or tweaking the checklist as per the changes in the technology and infrastructure.

I would strongly recommend trying if you don’t have one. I tried listed in chronological order without any supporting explanations but for anyone who is Project / Account Managers, Solutions / Technical Architects or Software engineers can easily understand

1. Project Code

2letter client name + 3 letter project name + D or M or T + 1 to N

D – Development
M – Maintenance
P – Porting
T – Testing

1 – N = Phase 1, 2 … N

Example: CWCMPD1 [Chance World Car Market Place D 1]

2. Git Hub Repository

  1. <appname>.web
  2. <appname>.mobile
  3. <appname>.wireframe
  4. <appname>.web.html
  5. <appname>.mobile.native.IOS
  6. <appname>.mobile.native.android
  7. <appname>.mobile.web
  8. <appname>.mobile.web.html
  9. <appname>.server
  10. <appname>.devops

3. CI/CD & Infra setup

  1. Web.Build
  2. Mobile Android
  3. Mobile iOS
  4. Test flight set up
  5. Buddy.works
  6. Appliance setup – Dockers in virtual box (& direct install in the PC or EC2 Linux)
  7. AWS / AZURE cloud configuration (As applicable)
    1. IAM
    2. Access permission
    3. VPC
  8. Monitoring
    1. Infra Cost
    2. Servers & Disk space
  9. Failover
  10. Backup and restore
  11. Vulnerability patch management

4. Rest Endpoint links with some naming conventions (Start with dev first then Test or Staging and Production)

  1. api.<appname>.dev.helenzys.com
  2. api.<appname>.stg.helenzys.com
  3. api.<appname>.prd.helenzys.com
  4. web.<appname>.dev.helenzys.com
  5. web.<appname>.stg.helenzys.com
  6. web.<appname>.prd.helenzys.com
  7. m.<appname>.dev.helenzys.com
  8. m.<appname>.stg.helenzys.com
  9. m.<appname>.prd.helenzys.com

5. Paper work

  1. NDA
  2. MSA
  3. SOW / Work order

6. Database (in Postgres)

  1. dev.<appname>
  2. stg.<appname>
  3. prd.<appname>

Username: user

Password: password

Admin user: admin

Admin password: password

7. Collaboration

  • Slack named as <ProjectCode>

8. Team structure

  1. Designer
  2. Front-end developer web/mobile
  3. Test engineer (functional, Security, performance,)
  4. DevOps Engineer
  5. DBA
  6. Project manager
  7. Architect
  8. Technical writer

9. Tools used

  1. Bitrix / JIRA / Github Projects etc.
  2. Invision
  3. Github
  4. AWSCloud/docker
  5. Docker
  6. Mockaro /faker
  7. Virtual box

10. Project Setup in PM tools like Github Projects / Bitrix / JIRA

  1. Project Creation
  2. Team member allocation
  3. Client contacts
  4. Sprint or Milestone setup (For each sprint)
    1. List all Business functions
    2. List all test casesi. Functional

      ii. Security

      iii. Performance

    3. Defects / Bugs (Cycle 1, Cycle 2, Cycle 3)
    4. Devops Tasks
    5. Wireframe Tasks
    6. HTML Tasks
    7. Backend / Server / API Tasks
    8. Front-end tasks – Web
    9. Front-end tasks – Mobile website
    10. Front-end tasks – IOS Mobile
    11. Front-end tasks – Android Mobile
  5. Wiki page setup (in GitHub as markdown pages or Bitrix template)
    1. Getting Started
    2. Environment Setup
    3. Release links
    4. Business Architecture
    5. Process Flows
    6. Technical Architecture
    7. Software & Hardware Requirement
    8. Open Source Libraries & Frameworks
    9. Technical Deep Dive
    10. Data dictionary
    11. Project Dashboard in Kibana (as bitrix in-app)
    12. Weekly Status Reports
    13. Steering Committee Reports
    14. User Guide
    15. Releases (with release notes)
    16. References

11. Miscellaneous

  1. Project wiki
  2. Rest end points
  3. Mock data creation
  4. Kibana reports
  5. Repo permissions

How we built our cloud based physician portal web, mobile and HL7 Interface engine – 01

AZ-Tech Radiology is one of the leading medical imaging organization that provides the highest quality imaging services utilizing state-of-the-art equipment and technologies in Arizona.  Our primary goal is “Keeping the referring physician happy”, all roads lead to the ease of delivery of “radiology reports” to them and their sending of orders to the lab”

In order to meet the goal, we have to have state of the art technological solution which drove us to build the new cloud based connected IT systems:

  1. Radiology Information System
  2. HL7 Interface Engine which connects all of our modalities, external EMR and Insurance companies, pushing data to the cloud in a secure manner.
  3. Promotional Website @ https://www.aztechradiology.com
  4. Physician Portal to delivering the reports @ https://provider.aztechradiology.com/
  5. Physician mobile app @ https://m.provider.aztechradiology.com/

In this blog post I would like to share the Architecture we came up with which powers our IT systems.

HL7 Interface of our Modalities (Imaging equipment) with RIS

 

AZ-TECH HL7 ARCHITECTURE

Industry standard HL7 messages going out from RIS & coming in to Helen RIS

ADT A28 Add person information
ADT A31 Update person information
ORM O01 Order message
ORU R01 Unsolicited transmission of an Observation message
SIU S12 Notification of new appointment booking
SIU S14 Notification of appointment modification
SIU S15 Notification of appointment cancellation

End-to-end HL7 interface engine – on-prem to cloud connectivity

AZ-TECH INTERFACE ARCHITECTURE

Industry standard HL7 messages going out from RIS & coming in to Helen RIS

  1. Available On Web And Mobile
  2. Highly Secure With Two Factor Authentication
  3. Immediate Near Real Time Access To Reports
  4. Text/Email Notification When Stat Report Is Ready
  5. Reports Can Be Searched By Dob, Patient Name, Date Etc.
  6. Reports Can Be Filtered By Stat
  7. Lightning Fast Free Text (Natural Language) Search Against Reports Powered By Elasticsearch & Lucene Index
  8. Cross The Border – (we call Inter State) : Multi Location Clinics Can Search Reports /Patients Across Their Locations Served
  9. Cross The Border – (we call Inter Country) : Providers Can View Reports Of Other Providers With Online Consent
  10. Reports In Hl7 Format Can Be Exported To Import Into Their EHR System
  11. Orders Can Be Placed Online – Hl7 Upload And Forms Based Upload
  12. High Resolution Diagnostic Images Can Be Viewed Online Without Any Client Tools Installation.
  13. Real-Time Analytics / Kpi Dashboard For Clinic Administrators
  14. Create And Manage Your Users & Roles Online
  15. View Who Did What, When?
  16. Free Integration With our partner’s EHR / EMR Software’s For Orders And Reports
  17. HIPAA Compliance ready

 

End result

After we implemented the solutions in phased manner starting from Jan 2018 uptil now, following are the benefits we gained

  1. Average speed of our report delivery time reduced from days to minutes
  2. Cost of the delivery of reports reduced multi-fold otherwise we enagened half a dozen employees faxing the reports to the physician office manually
  3. We can deliver the reports to physican hands thru our mobile solution
  4. We automated the sending of Fax (reports) to the clinics who still needs paper copy of the reports
  5. Customer satisfaction thru enhanced user experience in the form of simple to use web and mobile application
  6. Powers 1000’s of reports per day with ability to auto-scale to handle more reports in the future

Elegant & Re-usable diagrams for Architecture, System Design, Pre-Sales & Proposal activities etc.

If you are a Solution Architect or Presales team members then I am sure you would have prepared numerous diagrams for proposals, system design, Business Process flows etc. using varieties of tools i.e. MS Visio, Excel, Word and online tools like draw.io, lucid chart and many more…

I use all of these above tools but most predominantly Excel for stunning diagrams. Some of my diagrams I made it as excel template for re-usability which you can get it here and modify as per your need.

Sample Diagrams of mine…. [ Inspirations of the diagrams are from internet, reference books and some are my own ideas but I usually create it as fresh] . Download the excel template here.

Application Architecture

image

 

Layered Architecture [MS Patterns & Practices]

 

image

Release Management

image

 

Inter-layer / Component Flow of data [Martin Fowler’s EAA]

image

 

Schedule & Release Plan

image

 

Shift Coverage Matrix

image

Documents Collaboration

TBD

Enterprise Service Bus [Service Agents]

TBD

Stay tuned to check for numerous business process flow [Swim Lane] Visio diagrams soon.

If you get benefit from this template, please drop me an email @ senthilsweb@gmail.com or post it in the comments section which will encourage me to contribute more like this.

My recommended (IMHO) Books & references for Enterprise Application Architecture (EAA), SOLID Design Principles & Miscellaneous

In the past and now, people close to me, worked with me and working with me keep asking for good reference reading materials (meaning books, articles etc.) for object orientation, design principles, design patterns, Enterprise Application Architecture, Layered Architecture, Loosely Coupled Architecture etc. and how I designed Enterprise Application Architecture in my various client implementations.

Also in contrast to above many a times when I meet my peers who works in the same line of mine, I do talk about what I read & learnt new things in the architecture or what I referred for specific design problems as knowledge sharing. This is like a repeat and redundant occurrences in my day to day life hence thought of sharing some of the excellent evergreen Books, Blog Articles, Video Tutorial sites which Inspired me and helped me to address many design problems I came across.

Some of the materials are highly precious, valuable and eternal wealth like Gold…such references I listed here for others to gain knowledge which I term “My recommended (IMHO) Books & references for Enterprise Application Architecture (EAA), SOLID Design Principles & Miscellaneous

Note: All of these are in C# flavours but technology agnostic (Applies to any programming languages and technologies)

I organized in the following

  • Object Orientation
  • SOLID Principles
  • Loose coupling
  • Dependency Injection
  • Aspect Oriented Programming
  • Domain Driven Design
  • Multi Layer Architecture [Onion Architecture]
  • Miscellaneous

A Twisted Look at Object Oriented Programming in C#

From college days we are are reading about OOP but this one is very good and I liked it very much

https://www.dropbox.com/s/bmugu0e9dk78ybt/A%20Twisted%20Look%20at%20Object%20Oriented%20Programming%20in%20C%23.pdf?dl=0

Pablos SOLID E-book

It is from LostTechies.com. and the author explains SOLID principles with real life use cases and code samples in a simpler manner.

https://www.dropbox.com/s/jn9b3jm8ddhlq7x/pablos_solid_ebook.pdf?dl=0

WroxProfessional.ASP.NET.Design.Patterns.Sep.2010

image

The tile of the book says design patterns but this books mostly about design principles like DDD, DI, ORM, View Model, Request Response View Models, Facade / Services Layer, View Mappers, MVC, Multi Tier & Layered Architecture, Onion Architecture, Cross Cuttings & separation of concerns etc. He explains that how the above principles can be implemented using proven Design Patterns (I think the author felt Design Pattern title is more reachable than Principles for marketing reasons…)

In other words I would say, this books implements Martin Fowler’s  principles from his ever popular book “Patterns of Enterprise Application Architecturein a easily understandable way for any novice coders who wants to venture into Enterprise Architecture or want to be an elegant programmer who can write highly scalable and less friction codes. It is a ALT.NET (Alternate way of doing mainstream dot net…in other ways JAVA / RoR way of doing main stream .Net) book.

31DaysRefactoring

imageThis is also from LostTechies.com and it talks about code refactoring and writing elegant code using proven design patterns and principles

 

 

 

Applying Domain Driven Design and Patterns With Examples in CSharp and .NET

imageThis book is very special to me from my favourite and eminent author Jimmy Nilsson. Chapter 7 & 10 in this book are eye opener for me to learn and implement Rules Engine & Aspect Oriented Programming (AOP) in specific to the design & architecture I involved in.

 

The Spring.NET Framework

We  heavily depend on using Spring Framework for all of our development in MS.NET & JAVA. Though it has various modules but we depend on the following

  • Dependency Injection
  • Aspect Oriented Programming
  • Web/RESTful Service exporting from Plain Old C# Objects (POCO) i.e. Convert the Facade / Service Layer as .asmx / Restful Webservices
  • Expression Evaluation
  • Quartz Scheduling
  • nVelocity Templating (Recently we migrated to Razor Templating engine)
  • RabbitMQ Client library

I strongly strongly recommend anyone to read the Spring documentation.

Omar Al Zabir’s “Build Truly RESTful API and Website using Same ASP.NET MVC Code”

He blogged about how to write clean and neat RESTful Services especially the route naming conventions.

As the title says, he also talks about how to use the Controllers, the C in the MVC as Restful API (Specific to ASP.NET MVC) instead of writing an additional API layer i.e. ASP.NET Web API.

I recommend the the Route Naming Conventions for any technologist but the Controller to RESTful API is for my team members and any ASP.NET developers.

Programming asp.net mvc 4

image

As the name says, It is not about OOP or Design principles but about ASP.NET. Though many books are available for ASP.NET but this one is excellent and very practical for anyone who wants to build enterprise class web application. It is written in such a way that the followers will not miss anything in the website development i.e. Infrastructure, ORM, DI, Security, Caching, Deployment etc..

Pluralsight Online Video Tutorials (Paid Tutorial)

image

Worth paying USD $15 per month for pluralsight. It has everything and releasing new stuffs to keep us up-to-date in the technology and other soft skills.

My recommendation to all who would want to use pluralsight is; follow this tutorial generously on regular basis i.e. every day for 30 mins. to 1 hour for best results.

I usually watch every day before go to sleep, during weekends and leisure time through my iPad. I often follow the author coding (pause & stop the video) for my hands on and real life client projects.

Light bulbSome of the books I mentioned here are available for free to download from http://it-ebooks.info/tag/programming/ 

Finally……….

Being an Architect, I read a lot like any others in our profession and look for opportunity to implement what I learnt in theory, yes I am hunger for new things, proven way of solving problems, look for simple solutions, want to write elegant and maintainable codes, never shy in continuous refactoring etc. in order to do so, I must equip hence I read and refer many different programming languages,frameworks & technologies than the one I mostly into (C#, Object Oriented JavaScript, Node.JS, Ruby on Rails, Mobility) and how they address same problems differently.  Usually while reading for first time (or second, third) ,  I will (or may) not understand all of it which I simply skip and keep going the rest which I feel helped me a lot. Also during my go though I never forget to bookmark important references.

Vmoksha’s Mobile Enterprise Application Platform (MEAP) Architecture

A well defined Architecture is critical for any development. Having architecture in place, we can implement technical governance across the team in terms of coding style, standards etc. and also this will help to refactor the code in a centralized place on a continuous basis a.k.a continuous re-factorization.

Having said that, we developed our our MEAP architecture and all our mobile application development honours this. This is the tweaked version of our Web application development architecture, the major difference lie in the tools & technologies used for developing the UI layer. In a nutshell most of the mobile development follows similar pattern i.e. RESTful Architecture using JSON(P) is the primary content type to transfer the payload (data) between client and server. This architecture is Technology Agnostic, predominantly we use the following technologies to develop our Server Components i.e. Back end layers (Facade, Data Access, RESTful Services)

    • .NET (WCF, NancyFx)
    • Ruby On Rails
    • PHP

 

Architecture

MEAP

Flow of dataFLOW-OF-DATATechnology BackboneTechnology Platform