I recently came across a job description for Software Engineer position at a startup which read –
Join us as a Software Engineer if you believe in this –
You don’t take pride in the code you write but the software that you deliver.
That’s when it just struck me.
That’s what the missing piece is.
I figured that it is one of the reasons I miss on deadlines I set for myself. (I missed one yesterday which I’d set a week ago for a feature release. It’s disappointing and I am determined to work upon it.)
I realised that all I was doing was just thinking about the
“CODE” and estimating the timelines. I was missing out on the
Whenever I am working on a feature release, I try to start with a Design Document and an Information Flow Diagram. That’s an awesome practice that I try to follow. It helps me plan my code’s structure really well and helps me visualize how different components of my stack would interact. What I miss out is the “DELIVERY” part.
My Thoughts on Missing Software Delivery Component
- Being a finisher – Software Delivery requires a key ‘feature’ which most of the software developers lack – ‘Being a finisher!’. I think most of us face this problem and it’s hard to overcome. John Sonmez from Simple Programmer talks in-depth about it in this blog post. Highly recommended read.
- Feedback inclusion time – Post software delivery, try to reserve sometime to iterate over the feature released based on the initial feedback from early users of software. Try to keep this feedback loop as small as possible. Eric Ries in his book Lean Startup talks in depth about this feedback loop. More concrete thoughts with context to my work were a result of my recent discussion with Amarjeet, CTO and Co-Founder at Zenatix.
If you’re like me and struggling with estimating software timelines, I highly recommend this book – Software Estimation by Steve McConnell
If you’re not a reader type of person, listen to this podcast by Steve on “Estimating Software“ at Software Engineering Radio
If you’ve got thoughts on software delivery, do comment on this blog post to discuss and provide feedback.