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.