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

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.