IT Project Sanity Checklist
From my perspective as a software developer, a tool you could use to avoid some pitfalls when starting a new IT project. Sum up the points below. Higher score is better.
"Keep it Simple"
[#1] The lines of code would ...
- (+1) ... decrease
- (-1) ... increase
- TIP: Simplify and remove. You aren't gonna need it. Every line of code adds to the maintenance cost.
[#2] The amount of version numbers to keep updated would ...
- (+1) ... decrease
- (-1) ... increase
- TIP: Upgrading services and dependencies costs in maintenance time.
[#3] The proposed technology ...
- (+1) ... is already in use at the company
- (-1) ... would be introduced at the company
- TIP: To learn new technology takes time and increases the skill level required at the workplace.
[#4] Onboarding a new software developer will become ...
- (+1) ... easier
- (-1) ... harder
- TIP: Complex setups steals time and reduces innovation speed. Silo forming happens faster if learning how to run a pice of software is hard. Strive for plug and play. Will it just work out of the box?
"Not Invented Here"
[#5] The project is about ...
- (+1) ... improving upon an existing solution
- (-1) ... build a new and fresh solution
- TIP: Dig where you stand. Improve upon what you already have. The grass is usually not greener on the other side.
[#6] The technology is developed by ...
- (+1) ... programmers at another company (ideally large and well known)
- (-1) ... the programmers at the company itself
- TIP: Do not reinvent the wheel, it is often harder and takes longer than expected.
[#7] The users of this technology ...
- (+1) ... are many and there's plenty of online tutorials available
- (-1) ... are a few early adopters
- TIP: Save time by copy pasting snippets from engineering blogs.
[#8] We can not use that existing solution because ...
- (+1) ... it lacks crucial features we absolutely require
- (-1) ... it is not perfect and we strive for perfection
- TIP: Nothing is perfect. Even what you code yourself will have flaws.
[#9] The project delivers value ...
- (+1) ... very soon, already before everything is done
- (-1) ... at the end, only when everything is fully completed
- TIP: Suddenly the solution may have become good enough and something else proves to be more important.
[#10] Should the project has to be shut down halfway in ...
- (+1) ... the code written so far could be put to use anyways
- (-1) ... the code written so far would need to be thrown away
- TIP: Divide the project into multiple smaller deliverables. Each deliverable offers value as is.
[#11] The size of the project is ...
- (+1) ... small
- (-1) ... large
- TIP: If a project is estimated to take a lot of time, maybe it is too big to begin with.
[#12] The product release process will become ...
- (+1) ... simpler than before
- (-1) ... more complex than before
- TIP: If releasing is hard, then less releases will be made and agility decreases.
[#13] When you describe the project to a colleague from another department ...
- (+1) ... it sounds important to the company and and perhaps they become a little happy
- (-1) ... it sounds technical, difficult to understand, and unclear what it's good for
- TIP: Avoid coding something complex just for the sake of the technical challenge
[#14] The pay back time of the project based on time required and your salary ...
- (+1) ... is lower than a year
- (-1) ... it higher than a year
- TIP: Some things are not valuable enough to spend developer time one
[#15] If you play pretend that the company is at the brink of bankruptcy ...
- (+1) ... the projects feels like a potential life saver
- (-1) ... the project actually feels pretty unimportant
- TIP: As a company outgrows the startup phase and more people are employed it's easy to lose perspective.
[#16] When this feature is released the existing customers will ...
- (+1) ... feel the product was significantly improved
- (-1) ... probably not notice that anything changed
- TIP: Know your customers. What are their pains? What do they long for?
[#17] Our sales department says the project ...
- (+1) ... will be worth mentioning
- (-1) ... won't be useful in a sales pitch
- TIP: Occasionally code something really sellable. Getting new customers matter.
[#18] After completion of the project the employees ...
- (+1) ... will be happier at work
- (-1) ... will be more irritated at work
- TIP: Happy people are productive people. Decreases employee turnover and increases knowledge preservation.
[#19] The people involved in the project ...
- (+1) ... think the project sounds fun and important
- (-1) ... would rather be working on something else
- TIP: Leveraging personal interests can increase productivity.
[#20] The team tasked with the project ...
- (+1) ... exists since before, and the people have learnt to work well with each other
- (-1) ... will be newly formed, and the people have not previously worked with each other
- TIP: Team productivity increases over time. Team building takes time early on. People works better together as they get to know one another.