The beauty of Agile is the fact that its just about a few principles. – which we also summarized in a few words. Everything else is under your control. And on your way from classic waterfall practices to adopting those principles, you are likely to encounter some serious blockers. I’m attempting to list out the top 5 along with the Agile principles that they block.
1. Large teams
Blocks: Velocity, Working together
It is uncommon to have a cross-functional team of teams with 30-50 folks working on the same product. While the Agile deliverable is a few days of work, large teams working on a single release will generate a huge deliverable that is more coupled, has wider impact and demands extensive testing.
2. Fixed-scope planning
Blocks: Working software, Simplicity, Accepting change
Teams that have a fixed-scope mental block start off by committing a scope for the next release, and then estimate a future release date. Since estimates are often incorrect, the release is delayed to deliver the committed scope – which is just not Agile. Forget about changing requirements, folks won’t even drop a few stories or acceptance criteria at the very end, to meet the committed date (time-box) – at the cost of Continue reading The Top 5 Deterents to Agile→
Everyone in the software industry, has at some point of the other, been part of a delayed project. The result is often a war room where all the big shots put their heads together to save face. Imagine one such meeting where everyone is focussed on crashing time. Management is willing to compromise margins and the project manager has been given the authority to do anything it takes to deliver the project sooner.
All eyes are on the development team to see what they can do to expedite. Desperate, the project manager thinks he has an offer the Dev manager can’t refuse. He takes pride in offering to add more resources to the project. The Dev manager, however sane otherwise, goes ballistic on hearing this and yells out: ‘9 Women Can’t Make a Baby in a Month’. There is a moment of silence. Then, the noobs giggle, the big shots calm down and the PM walks out of the room.
This is Brooks’s law, and every software engineer gets exposed to this mantra/joke – whichever way you take it – in the very first years on the job. If Pressman was as bold as Fred Brooks, he would’ve added it to his Software engineering bible. This is 100% true Continue reading Don’t be desperate to crash time→
Aditi had done her bit of making our wedding cool by getting me to do a pre-wed photo shoot – that turned out awesome thanks to Frames of Mind. It was my turn and I had to prove to the lady (who had agreed to risk her life with me) that as a Product Manager I was creative enough, and thought of surprising her with our own “wedsite”. When the question of build-or-buy came up, I couldn’t find anything that matched my needs and the flexibility I needed to fiddle with it. So without much thought, I created a sub-domain, grabbed a copy of Bootstrap and got glued to NetBeans. I released the first cut online in less than 8 hours of work, and improved it over the next couple of weeks part-time (24 hours in all I guess). And yes, it really cost me $0, because I had already purchased hosting space and the prasadgupte.com domain.
In the last couple of years that I’ve owned an Anrdoid, I’ve tried everything from ColorNotes to Any.Do to store small bits of information. Trivial stuff such as
daily medicine dosage
recipe of my favorite sub (which my wife needs me to text every time)
frequent flyer / loyalty membership numbers
utility / bank account numbers, etc.
Such information that needs to be handy is usually lost under complex navigation menus. I’ve seen folks saving this information as draft messages (SMS) or even using memos which does not allow tags & full-text search. And that’s precisely the problem I tried to solve with Bitstore.
Configurability is the ability to change application behavior (functionaility) and the interface by changing application parameters, without the need to rewrite code. This can either be done in the front-end by users, or through back-end configuration. On the other hand, customization requires making change to the application code to modify existing or support additional requirements. Sophisticated application design (e.g. web hooks) can permit customization by externalizing the new functionality. But modifying existing functionality in a multi-tenant application is really not advised.
Top 3 / All-time favorite requirements
Web forms / Custom fields: Customers may require the flexibility to add additional fields to a particular document/record (object). Moreover, there would be a need to validate the input to the field based on data-type, or a script. For example, tenant A may require tax-ID as an additional integer field on the customer information object, and also make it a mandatory input. This has grown to be complex enough to support attachment fields, link to master data, controlling access to specific roles/user, etc.
UI customization: Customizing the user interface involves matching the look-and-feel with the customer’s branding: corporate color scheme and adding their logo. Allowing users to customize their own data views (record lists, reports) is just assumed to be there. Sometimes controlling data elements could also be a requirement. (E.g. End-users wont know certain information, so a section needs to be hidden for them. But the next user in the workflow Continue reading Top 3 configurability needs in B2B apps→
I am sure that the way I have configured my mail client or tablet’s home screen is different from yours. The reason we love modern-day apps and operating systems is because they let us configure the product to match our specific needs. Configuration is not a new concept – even old radio transformers allowed listeners to tune into the station of their choice without having to open any screws. Configurability isn’t a feature; its a vision. And it doesn’t come free; too much of it will also backfire. There are at least 3 compelling reasons why product managers need to plan configurability around every feature:
No product is designed for a single customer. And it would be rare that 2 customers had similar business processes. To adapt to the difference, without having to create customer-specific code bases, an application needs to be customizable. Gone are the days when customers would 200% of license fees on getting the product customized to match their business needs. In today’s scenario, solution providers need to cover the cost of customiztion through one-time implementation fees.
2. Rapid Implementation
Besides, customers are not looking at multi-year transformation projects with huge budgets. Project managers need to create compelling business cases and promise hard dollar recovery through the proposed solution. Every project is like a turn-key project and a vendor has no chance unless they can promise rapid implementaiton and unlock the RoI in stipulated time. Continue reading Why PMs should consider product configurability early on→
Every Product Manager is a ninja when it comes to dealing with functional requirements. But it doesn’t end there in the B2B space. You may not be a technical product manager, but you still need to understand and address some non-functional requirements without which your product isn’t ready to sell – especially if its transactional in nature, holds sensitive data or requires integration with the client’s IT eco-system. By ‘address’, I don’t mean you need to plan these as features or get involved in the R&D – it’s just about getting answers to what has been done in this regard.
What makes non-functional requirements so important?
Good question! If your product touches any of the 3 aspects mentioned above, the client’s decision to buy the product is incomplete without involvement of the IT team. You might have the CXO’s approval, but even if a single IT executive deems your product unfit for the IT security standards the client is committed to – the sale is likely to fold. You need to make a compelling offer, not just to the functional decision makers, but also to these non-functional evaluators whose buying is equally important. And there is a fair reason to it. Imagine, if you’ve worked hard to keep a floor clean, and someone wants to walk in with their own shoes – no matter how clean they claim to be, would you let them in? IT doesn’t want to risk their network either. I really don’t see this coming in the way of B2C sales – a LinkedIn premium membership or even Online Banking for that matter.
What needs to be taken care of?
Here at at-least 7 areas for which you will need clear answers.
Software requirements: With SaaS, customers have fallen in love with apps that railed on web browsers. But IT remains unsatisfied with the ‘my app runs in a browser’ response. They need to understand whether it runs ‘best’ on a particular browser or a specific version. As a product manager, you need to know the share of each browser version and build support accordingly. Dependency on components (e.g. FLASH) can cause the deal to hit a road-block.
Data Security: Customers always question the security of their data while using hosted services. And this becomes all the more critical when you’re selling a multi-tenant application. If you’re able to help them get over the SaaS phobia, the next questions could be around data security & access control, data center certifications, third-party quality assurance reports, etc. Apart from this, customers solicit information about user authentication and authorization capabilities, user management from the application console and integration with existing user management solutions like LDAP. Don’t be surprised if a client demands a sandbox for a hands-on verification.
In the last 2 posts, I detailed the market needs, and the itinerary planner user story. Continuing with more features around maintaining content, creating a transactional marketplace for revenue generation, and finally some integration ideas to piggy-back on the success of others.
Search public itineraries based on destination
System should suggest ‘hot’ holiday options – not in a salesy way – but genuine, recent itineraries that are verified for feasibility, cost estimate, etc.
Suggestions/searches should be based searches based on demographic information: age, gender, marital status, profession, origin city
Being a product manager is about not being content with what is around. I looked all around the place for a complete vacation planner app and finally created a wish list of what such an app would constitute. Continuing from the previous post on the topic, here is a high-level user story for each of my needs:
Start with a destination of my choice and add places to it [content]
Each place can be placed on an interactive itinerary map
Add category, description, images, comments, expenses (entrance fees, meals), attachments (bookings, etc.), hyperlinks, mark them as optional
View ratings [integration]
Auto-insert the place on the interactive calendar based on best-time-of-day information [content] and allow me to adjust
Plan the journey between places by specifying mode of transport, journey time & estimate cost [content, integration]
Add meals to places & journey with preferred joint & cost estimate
Validate if too much is planned for a day based on visit duration [content] and highlight optional places from the ‘Going to’ bucket that can be moved to a ‘May be’ bucket
When moving places around, system should remind to update the journey between places
Total itinerary cost should be constantly updated and displayed in local currency so I can budget; highlight places & journeys without estimates
Filter places on the by category, expense
Share my itinerary with others on the website; email the web link
Collaborate with co-travellers on the itinerary [roadmap]
Print/Email the itinerary with selected elements
Allow including embassy information, emergency numbers, weather, etc.
Mobile site to rate places, enter actual cost & time, add public & private notes
Update current location, upload photos & add notes that loved ones can view on a shared link
Mobile app [roadmap], share location on social media [integration]
In Part 2 of this post, we talk about more features ideas and concept’s strengths and challenges.